Commit Graph

196 Commits

Author SHA1 Message Date
Zahary Karadjov d30dce9d53 Fix compilation issues when using peer.networkState 2018-09-12 18:28:50 +03:00
Yuriy Glukhov f815c73963 Reply empty nodeData 2018-09-10 19:22:31 +03:00
Yuriy Glukhov b5c898dc1e Fixed requested block range, more reliable block downloader 2018-09-07 13:37:11 +03:00
Yuriy Glukhov 573ca08643 Fixed occasional assertion failure on bonding 2018-09-07 13:37:11 +03:00
Yuriy Glukhov 892467b5a8 Less verbosity about some errors 2018-09-07 13:37:11 +03:00
Jacek Sieka 9392ae1d53
appveyor: fix version check 2018-09-06 12:02:24 -06:00
Jacek Sieka 98df7916b2
readme: update license 2018-09-05 12:47:38 -06:00
Jacek Sieka 0909540a92
ci: update
readme: fix license, badges
2018-09-04 22:24:14 -06:00
Jacek Sieka 819d021fa2
travis: use cached nim instead of docker 2018-09-02 09:41:09 -06:00
Yuriy Glukhov 0eda6bc91a Download block bodies 2018-08-29 23:34:21 +03:00
Yuriy Glukhov 2c3a183445 Compatibility with newer nim 2018-08-29 18:28:01 +03:00
Yuriy Glukhov 4b5cda9233 Temporary workaround to experimental problem 2018-08-29 18:28:01 +03:00
Yuriy Glukhov 847fac0635 Fixed msg len encoding 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
Yuriy Glukhov 7fac4cbf68
Merge pull request #31 from status-im/fix-autobuild
Added eth_common to dependencies
2018-07-31 01:08:04 +03:00
Yuriy Glukhov 695331737a Added eth_common to dependencies 2018-07-31 00:37:56 +03:00
Zahary Karadjov 11fbe60ba4 add some reference links 2018-07-24 00:41:40 +03:00
Zahary Karadjov be7ca479b3 more fleshed out implementation of the blockchain sync procedure 2018-07-24 00:39:41 +03:00
Zahary Karadjov 6351fc38b9 type in eth_common has been renamed to avoid a naming collission in nimbus's gas_costs module 2018-07-23 13:44:56 +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
Yuriy Glukhov cf6b4d3084 Some fixes 2018-07-10 12:54:27 +03:00
Zahary Karadjov 6ac6397d33 Added documentation 2018-07-09 20:00:34 +03:00
Zahary Karadjov 96cf717778 WIP outline of the Blockchain sync procedure using the ETH wire protocol 2018-07-09 01:26:14 +03:00
Zahary Karadjov 4d17ab1ee5 Added various smaller features
* Perform per-protocol handshakes after connecting

* Initialize the per-protocol Peer and Network states properly

* Add an `EthereumNode` object that can be configured with specific
  capabilities and connected to a specific network.
2018-07-09 01:17:00 +03:00
Zahary Karadjov f1001c45d2 implement the new nextMsg semantics 2018-07-08 19:12:06 +03:00
Zahary Karadjov 9057d18abe Implemented the request/response future resolving logic 2018-07-08 17:25:10 +03:00
Zahary Karadjov 72016046fb Merge peer_pool and server into rlpx
This was done because a cycle was formed between the structures
of the three modules:

- A Peer holds a reference to its Network
- The Network holds a reference to its PeerPool
- The PeerPool keeps a table of connected Peers

I could have resolved the issue by introducing a new types module,
but it would have required all of the currently private fields to
become public (due to lack of package-level visibility in Nim).

Instead I decided to merge the modules because they were relatively
small anyway. Please note that the former `P2PServer` type is now
called `NetworkConnection`. There are slight changes in the APIs
that will be carried out in Nimbus when merging this.
2018-07-06 15:25:21 +03:00
Zahary Karadjov fac8bbd917 WIP refactor the rlpxProtocol macro
* Make all handlers async

* Added a new `requestResponse` construct that allows you to wait
  for the results of a particular request

* Introduced an optional `NetworkState` type for the protocol

* The semantics of `nextMsg` has changed. See the notes in the README
2018-07-06 13:24:01 +03:00
cheatfate 66ff278f33 Fix server.nim was not exported. 2018-06-20 14:41:04 +03:00
Yuriy Glukhov c7d155b24b
Merge pull request #27 from status-im/clientid
Move clientId from constant.
2018-06-19 18:40:16 +03:00
cheatfate 28759422bc Move clientId from constant. 2018-06-19 14:16:36 +03:00
Zahary Karadjov 7b1fc33d59 disable an inappropriate test that was left enabled by accident 2018-06-18 12:28:02 +03:00
Zahary Karadjov 6bd09b1bba remove some dead code 2018-06-18 12:05:38 +03:00
Zahary Karadjov 41d022b7fa fix a compilation errors and some GcSafe warnings 2018-06-18 12:05:38 +03:00
cheatfate 6a961ce0b4 Fix nimble dependency on asyncdispatch2. 2018-06-18 12:05:38 +03:00
cheatfate 24d762da34 Moved eth_p2p to asyncdispatch2.
Fix some warnings at rlpx.nim.
Commented debug echo in rlpx.nim.
2018-06-18 12:05:38 +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
alexm-status a06bd8789e
Update README.md 2018-05-30 14:35:02 -07:00
alexm-status 50a9caa1b2
Update README.md 2018-05-27 14:14:01 -07:00
alexm-status 23e394748b
Update README.md 2018-05-23 17:40:08 -07:00
Yuriy Glukhov d0b1ef6a7c Rlpx fixes 2018-05-22 15:02:03 +03:00
Yuriy Glukhov 42ad1e7fdd
Merge pull request #23 from status-im/hide-append
Hide discovery append helpers for now, to not interfere with rlpx
2018-05-18 12:55:23 +03:00
Yuriy Glukhov 5421a9874c Hide discovery append helpers for now, to not interfere with rlpx 2018-05-18 12:06:43 +03:00
Yuriy Glukhov 6e6262b318
Merge pull request #22 from data-man/fix_hexdump
Remove unused hexdump module
2018-05-17 16:35:30 +03:00
data-man b6b511c1ad Fix tests 2018-05-17 15:49:22 +03:00
data-man 02ea6cea08 Remove unused hexdump module 2018-05-17 15:32:52 +03:00
Yuriy Glukhov 84ac86cc94
Merge pull request #21 from status-im/expectedLength2
Fix ack/auth message handling.
2018-05-17 14:37:39 +03:00
data-man d484c2ff6b Fixes hexDump's bug 2018-05-17 13:32:50 +03:00