159 Commits

Author SHA1 Message Date
Zahary Karadjov
75c1c6a95c Enable Snappy by default (using LibP2P steams for now)
This refactors the newly added Snappy streaming back-ends trying to
make them more similar and to reduce the code duplication to a minimum.
2020-05-13 12:18:42 +03:00
Zahary Karadjov
f055fad08a Make the Snappy FastStreams integration optional by duplicating it for LibP2P streams 2020-05-13 12:18:42 +03:00
Zahary Karadjov
15f0153441 Cosmetic improvements 2020-05-13 12:18:42 +03:00
Zahary Karadjov
9538b60704 Integrate the async Snappy implementation 2020-05-13 12:18:42 +03:00
Zahary Karadjov
a739d7e8d6 Adapt SSZ to the latest FastStreams API 2020-05-13 12:18:42 +03:00
Eugene Kabanov
da0b1a4993
Fix status handling. (#1008)
* Fix status handling.
Add log map of received blocks.

* Fix review comments.
Fix UnusedImport in sync_protocol.nim
2020-05-13 08:37:58 +02:00
Jacek Sieka
592d6f65c3
bump (#1001) 2020-05-09 16:47:14 +02:00
Ștefan Talpalaru
fc9d6bc1b3
enable SO_REUSEADDR in libp2p transports 2020-05-08 21:50:20 +02:00
Eugene Kabanov
3ffd0d7216
Fix gossip messages not delivered. (#983) 2020-05-06 15:42:59 +00:00
Zahary Karadjov
7237a370ba Implement https://github.com/status-im/nim-beacon-chain/issues/872
Please see the newly added 'schlesi-dev' Makefile target.
It demonstrates how the log level can be specified for individual topics.

Additionally, when connecting to testnets like 'schlesi' there will be
two additional log files produced in the working directory:

* json-log.txt
* text-log.txt (in the textblocks format)
2020-04-28 13:49:30 +03:00
Viktor Kirilov
dcc70c5259 resolved final comment from review 2020-04-27 22:10:35 +03:00
Viktor Kirilov
8ef28c905d fixed commets from review 2020-04-27 22:10:35 +03:00
Viktor Kirilov
5ecba6df49 broadcasting and listening to the '_snappy' topics as well 2020-04-27 22:10:35 +03:00
Zahary Karadjov
740b76d152 Spec-compliant implementation of Eth1 monitoring; Eth1-enabled local sim
BEWARE! This commit will trigger a stack overflow during local sim
2020-04-26 13:04:53 +03:00
Eugene Kabanov
be89a3c54d
Add "drop by score" ability to PeerPool. (#917)
* Add "drop by score" ability to PeerPool.
Add tests.
Fix syncmanager queue to start from most fresh data.

* Fix endless cycle at the end of syncing process.
2020-04-23 17:31:00 +02:00
Eugene Kabanov
3d42da90a8
Syncing. (#909) 2020-04-20 16:59:18 +02:00
Jacek Sieka
8b6c51e78d
secp: convenience api (#897) 2020-04-17 15:29:49 +02:00
Zahary Karadjov
a4830976ab
hotfix: fix the selecting of the syncing protocol handlers 2020-04-16 15:01:19 +03:00
Zahary Karadjov
672f690bf6 Implement most of the v0.11.1 networking changes 2020-04-16 01:01:18 +03:00
Zahary Karadjov
22e5f8165e Don't use defer in eth2_network to avoid https://github.com/nim-lang/Nim/issues/13899 2020-04-16 01:01:18 +03:00
Zahary Karadjov
f34fd46e3a Add snappy and protobuf-serialization; Use the latest FastStreams API 2020-04-16 01:01:18 +03:00
tersec
31bf8fa408
remove all but one UnusedImport warning (#881)
* remove all but one UnusedImport warning

* bump a few more spec version references from v0.10.1 to v0.11.1

* more v0.10.1 spec reference updates/removals

* yet more v0.10.1 spec reference updates
2020-04-10 16:06:24 +02:00
Jacek Sieka
04cf6d30eb
vendor: bump nim-eth + fallout (#861) 2020-04-05 11:50:31 +02:00
Jacek Sieka
d180724d41
Bump eth (#857)
* vendor: bump stew
* vendor: bump nim-eth
* vendor: bump web3 too
2020-04-03 11:12:38 +02:00
kdeme
fc2fff249b Discv5: Don't pass ip address when external ip is not known 2020-04-02 00:52:34 +03:00
tersec
cd388bc9bb
extended validation (#812)
* initial extended validation setup

* flesh out all TODO items for attestation and beaconblock verification

* fix finalization and add chronicles debugging messages

* directly use blockPool.headState rather than pointlessly updating it and document this constraint

* fix logic relating to first-attestation checking; support validating blocks across multiple forks
2020-03-31 18:39:02 +00:00
Ștefan Talpalaru
97abe77398
close unused PeerInfo instance
Should not be needed from the GC's point of view, but needed when
gathering Future.state statistics, due to `PeerInfo.lifefut`.
2020-03-30 00:23:01 +02:00
Zahary Karadjov
46e395c647 Switch to GossipSub 2020-03-25 23:32:05 +02:00
Zahary Karadjov
86a3bea1ec Use the latest Chronos and Libp2p 2020-03-24 22:14:40 +02:00
kdeme
b80a5b90df Adjustments to store bootnode enrs in discovery object + bump nim-eth 2020-03-24 22:14:40 +02:00
Zahary Karadjov
f2434139e9
Hotfix: Don't report failure to connect to bootstrap node due to the initial sync taking more than 30 seconds 2020-03-23 22:29:50 +02:00
cheatfate
d63e4870e6 Fix Stream EOF problem. 2020-03-23 22:21:27 +02:00
Zahary Karadjov
46a3009c63 Restore the address file feature (and use it for synchronization in local sim) 2020-03-23 14:59:33 +02:00
Zahary Karadjov
4623aa81ec Clean up some obsolete code 2020-03-23 14:59:33 +02:00
Zahary Karadjov
d5e4e640b4 Merge libp2p_backend into eth2_network 2020-03-23 14:59:33 +02:00
Zahary Karadjov
0c018cb68a Mechanically remove all mentions of the daemon from the code 2020-03-23 14:59:33 +02:00
Zahary Karadjov
d2b7ee27de The RPC service listens on localhost by default 2020-03-22 19:00:09 +02:00
Zahary Karadjov
19847bbd20 Remove some warnings 2020-03-22 19:00:09 +02:00
cheatfate
d802fa593c Add pubsub message logging.
Initial commit of logtrace tool.
2020-03-11 17:26:30 +00:00
cheatfate
ab1a08084b One more attempt to fix compilation error. 2020-02-28 14:44:41 +02:00
cheatfate
dd316e04d1 Fix one more compilation error. 2020-02-28 14:44:41 +02:00
cheatfate
547c8a44d0 Replace Table[PeerID, Peer] with PeerPool.
Add `score` Peer.
2020-02-28 14:44:41 +02:00
Zahary Karadjov
fa0f3b4468
Use the specified extip address in the advertised ENR records 2020-02-22 20:54:15 +02:00
Dmitriy Ryajov
08915ed597 bump libp2p and increase bootstrap timeout 2020-02-21 12:03:19 -06:00
Zahary Karadjov
880b981a0a
Don't wait for 10 seconds when connecting to the network 2020-02-19 12:45:34 +02:00
Zahary Karadjov
55886ff0ac
More proper fix replacing hotfix 052a6ac3bcfa8c45428e8823ae808c5e301c3de9
nim-eth was bumped to take advantage of a fixed `==` for public eth keys
2020-02-19 11:59:38 +02:00
Zahary Karadjov
3b9e9fefa8
Make the persistent network keys compatible with the Go daemon
The daemon requires its key file to be encoded as ProtoBuf value
with a proper `key scheme` discriminator.
2020-02-19 10:58:10 +02:00
Zahary Karadjov
1b1cd915db
Support ENR boot records with the Go daemon 2020-02-19 10:26:32 +02:00
Zahary Karadjov
052a6ac3bc
Hotfix: disable the bootstrap node connectivity check
This used to behave properly before the rebase, but currently
it forces the bootstrap node to exit, because it ends up being
launched with an ENR list telling it to connect to itself.

The root cause will be investigated in a follow-up PR.
2020-02-18 20:42:25 +02:00
Zahary Karadjov
57811dce89 Don't log unwanted lines in beacon_node --help 2020-02-18 12:53:49 +02:00