16 Commits

Author SHA1 Message Date
Zahary Karadjov
7828ef0481 Initial implementation of the LES protocol and its flow control.
This also restores the old module structure of having separate
`peer_pool` and `rlpx` modules. This is made possible by the
new Nim package `package_visible_types` (please refer to its
README for an explanation).

Also introduces more error handling in the low-level RLPx routines.
All detected errors will result in immediate disconnection of the
corresponding peer, which may be detected in the protocols though
the `onPeerDisconnected` event handler.
2018-10-16 02:52:11 +03:00
Zahary Karadjov
b38804f873 This commit only moves files around (no need for review)
In the next commit, I'm going to squash all the changes in the LES.
This commit just sets the directory tree to its final state, so the
diffs in the follow up commits are easier to review.

Please note that eth.nim was renamed to eth_protocol.nim, because
it's not advisable to have a module name that shares the name of
a protocol identifier (this creates hard to figure out ambiguity
errors)
2018-10-15 16:49:49 +03:00
Yuriy Glukhov
7f14c435d6 Proper sync part 1 2018-10-01 14:33:59 +03:00
Zahary Karadjov
badc616be8 Deal with the refactoring in status-im/nim-rlp#20 2018-09-26 17:21:49 +03:00
Yuriy Glukhov
d808d9dc1a P2P fixes, optional discovery 2018-09-25 17:42:10 +03:00
Yuriy Glukhov
f89d2eee5f Specify debug enode through env var. Fail less often in discovery 2018-09-20 22:28:53 +03:00
Zahary Karadjov
d30dce9d53 Fix compilation issues when using peer.networkState 2018-09-12 18:28:50 +03:00
Yuriy Glukhov
892467b5a8 Less verbosity about some errors 2018-09-07 13:37:11 +03:00
Yuriy Glukhov
2c3a183445 Compatibility with newer nim 2018-08-29 18:28:01 +03:00
Zahary Karadjov
20033b499b Use chronicles instead of 'echo'; Cosmetic renames 2018-08-14 16:45:08 +03:00
Yuriy Glukhov
253bea9c8e More fixes. Block headers download works! 2018-08-14 16:45:08 +03:00
Zahary Karadjov
be7ca479b3 more fleshed out implementation of the blockchain sync procedure 2018-07-24 00:39:41 +03:00
Zahary Karadjov
41e92ca8df The ETH and LES protocols now compile as part of nimbus 2018-07-23 00:32:45 +03:00
Zahary Karadjov
4335052e9f Move the code from rlpx.nim in the base module as it now represents
a wider set of APIs.
2018-07-12 14:14:22 +03:00
cheatfate
66ff278f33 Fix server.nim was not exported. 2018-06-20 14:41:04 +03:00
Zahary Karadjov
812c6284c0 rename package to eth_p2p to make it consistent with our naming scheme 2018-06-16 21:58:41 +03:00