Commit Graph

700 Commits

Author SHA1 Message Date
0b8d50127c refactor(net): box ecies error (#337) 2022-12-06 18:02:04 -08:00
b40546b999 refactor(net): misc P2Pstream refactor (#336)
* refactor(net): misc P2Pstream refactor

* update note
2022-12-06 18:02:04 -08:00
074e69cafb chore(net): remove unused function (#335) 2022-12-06 18:02:04 -08:00
a4472ca1c6 chore(clippy): make clippy happy (#334) 2022-12-06 18:02:04 -08:00
75879b2027 chore(ecies): remove body size check (#328)
* remove body size check

* cargo fmt
2022-12-06 18:02:04 -08:00
f65969e90f perf(net): exclude bootnodes from update stream (#319) 2022-12-06 18:02:04 -08:00
2b6ef0afcf fix(eth-wire): encode p2p message id as valid rlp (#324) 2022-12-06 18:02:04 -08:00
1668313d55 perf(disc): instantly lookup self in DHT (#314)
* perf(disc): instantly lookup self in DHT

* Update crates/net/discv4/src/lib.rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-06 18:02:04 -08:00
12212ec91a fix(disc): set trace target correctly (#315) 2022-12-06 18:02:04 -08:00
5300c83a50 feat(net): send full transactions to fraction of all peers (#272)
* refactor(net): use shared objects on a per peer basis

* feat(net): send full transactions to fraction of all peers

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-12-02 04:21:23 -08:00
debc87177c fix(eth-wire): handle 0x80 for DisconnectReason and P2PMessageID (#313)
* fix disconnect reason encoding

* move disconnect to own file

* add encoding test for 0x80 in list

 * rlp([0u8]) is a good test case to have because it is the RLP encoding
   of a DisconnectRequested p2p message

* fix disconnect encoding and decoding

 * directly decode the disconnect id to handle the 0x80 case of
   DisconnectRequested
 * the previous manual snappy encoding / decoding was incorrect - a
   snappy encoded disconnect message is 4 bytes, not 3 bytes. The tests
   and implementation are changed to reflect this.

* fix p2p message decoding

 * had a similar issue to disconnect reason decoding where it would not
   handle a 0x80 message id

* make invalid rlp header case more explicit

* cargo fmt
2022-12-02 04:21:00 -08:00
04105ec82b test: add mainnet connection test (#306) 2022-12-01 17:59:52 +01:00
a0c35f1f48 refactor: replace reverse with HeadersDirection (#305) 2022-12-01 17:59:33 +01:00
3355b0c605 test(net): add e2e request body test (#304)
* test(net): add e2e request body test

* test(net): add e2e request header test
2022-12-01 15:35:14 +01:00
480097a7ca feat(net): add eth request handler (#293)
* feat(net): add block request manager

* refactor: change ommers type to Header

* feat: impl handlers

* rename to EthRequestHandler

* impl checks

* fix: skip as step

* chore: rustfmt
2022-11-30 21:19:50 +01:00
7879389059 chore(net): deny unused and cleanup (#289) 2022-11-29 20:57:40 +01:00
97ea20e9d5 feat(net): add swarm mermaid diagram (#288) 2022-11-29 20:15:17 +01:00
e53ed8ffc2 refactor(net): use shared objects on a per peer basis (#270) 2022-11-29 11:43:45 +01:00
b5300aafec feat(net): add request timeout (#273) 2022-11-28 14:41:39 -08:00
a43a6cba8c feat(rpc): add new engine V2 types and routes (#274) 2022-11-28 14:18:43 +01:00
b30e8241ce docs(rpc): improve eth rpc docs (#275) 2022-11-28 14:16:19 +01:00
0e436ae543 feat(net): add missing report on bad response (#271) 2022-11-27 23:33:04 -08:00
3efc6ee67e feat(db): Make TransactionSigned compactable (#252) 2022-11-27 23:29:30 -08:00
b02a5c4bbf perf(net): import loop order in transactions manager (#269) 2022-11-26 10:44:30 -08:00
7db61eeadb misc(net): discovery docs and renames (#268) 2022-11-26 14:46:57 +01:00
a744676302 misc(net): add peers commands (#267) 2022-11-26 14:46:49 +01:00
fd840e1c66 refactor: bodies client API (#257)
* refactor: bodies client API

* chore: fix errors
2022-11-26 10:04:42 +01:00
6da140ce1b chore(eth-wire): remove TODO about capability Ord (#263)
* chore(eth-wire): remove TODO about capability Ord

 * orderings should be consistent with geth, see updated comment

* move down string doc link
2022-11-25 22:17:57 -08:00
6232505b94 fix(net): substract from correct var (#262) 2022-11-26 00:35:51 +01:00
b6d9fe87b9 feat(net): propagate new transactions (#256) 2022-11-25 22:13:20 +01:00
37809ce774 feat(net): add session limits (#253) 2022-11-25 18:56:49 +01:00
fb2861f112 feat(net): integrate HeadersClient (#251)
* refactor: headers client

* chore: rustfmt

* chore(clippy): make clippy happy

* feat(net): integrate HeadersClient

* fix: parse td as U256 with from_little_endian

* conflicts

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-11-25 14:26:43 +01:00
dda8df7341 refactor: headers client (#249)
* refactor: headers client

* chore: rustfmt

* chore(clippy): make clippy happy

* address comments

* use Error instead

* fix(sync): headers test client & stage tests (#255)

* headers test client & stage tests

* fix timeout test

* fix import

Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2022-11-25 14:00:06 +01:00
2e3c220104 fix: fix flaky test (#250) 2022-11-24 13:26:22 -08:00
f4dbeddc97 refactor: rename FetchClient and move to submodule (#245)
* refactor: rename FetchClient and move to submodule

* chore(clippy): make clippy happy
2022-11-24 11:43:05 +01:00
8966daad9d feat(net): reputation system and peer reporting (#239)
* refactor: move to module

* feat(net): reputation system and peer reporting

* be specific in test

* use saturating sub
2022-11-24 10:14:50 +01:00
d6a11c7f48 chore(deps): bump ethers + ethereum types + revm (#228)
* chore(deps): bump ethers + ethereum types

* bump revm

* chore(clippy): make clippy happy
2022-11-23 11:54:54 +01:00
0f45f16455 test(net): add Testnet implementation for testing (#232)
* test(net): add Testnet implementation for testing

* test(net): add testnet type and test
2022-11-22 19:33:01 -05:00
a523cb7024 feat: finish concurrent body downloader (#220)
* refactor: remove timeout config from downloader

The timeout should be controlled by the client
implementation.

* feat: downloader request retries

* test: add concurrent body downloader tests

* chore: fmt

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-11-22 21:06:49 +01:00
46e4ad9744 test(net): add active session tests (#230)
* test(net): add active session tests

* more tests
2022-11-22 00:22:43 -05:00
f7c6ae5858 feat(net): impl active session (#219)
* feat(net): impl active stream

* rename fields

* work on active

* feat(net): add disconnect function

* more work on active session

* feat(net): add broadcast message variants

* feat: impl session future

* misc: refactor

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-11-21 11:31:03 +01:00
4936d467c9 test(sync): stage test suite (#204)
* test(sync): stage test suite

* cleanup txindex tests

* nit

* start revamping bodies testing

* revamp body testing

* add comments to suite tests

* fmt

* cleanup dup code

* cleanup insert_headers helper fn

* fix tests

* linter

* switch mutex to atomic

* cleanup

* revert

* test: make unwind runner return value instead of channel

* test: make execute runner return value instead of channel

* Revert "test: make execute runner return value instead of channel"

This reverts commit f8608654f2e4cf97f60ce6aa95c28009f71d5331.

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-11-18 17:57:29 -08:00
1767d375de feat(net): add broadcast message variants (#224) 2022-11-18 20:22:29 +01:00
ebd27b6025 feat(net): add disconnect function (#223) 2022-11-18 16:26:49 +01:00
b4098b9558 chore(net): add disconnect reason (#222) 2022-11-17 15:48:50 +01:00
331a2dbe8f fix(net): add None disconnect reason on PoS p2p violation 2022-11-16 12:16:28 -08:00
ee7140f91e refactor(net): add dedicated transaction event channel (#214) 2022-11-16 21:06:53 +01:00
09ba65fa75 feat(net): add NetworkMode to enforce POS rules (#215) 2022-11-16 11:42:58 -08:00
814640cccd chore(net): add helper access functions for wrapped stream (#216) 2022-11-16 11:11:47 -08:00
3ffc0da7c8 feat(net): add disconnect reason (#218) 2022-11-16 11:11:34 -08:00