5c1f97cbf7
test: create events handler before interacting with network mngr ( #532 )
2022-12-20 00:38:23 +01:00
fc11443b97
feat(net): create enr to peerid helper ( #533 )
...
* set network enr dev-dep to 0.7.0 instead of git - ethers and each
other crate uses 0.7.0 and not git
2022-12-19 18:32:19 -05:00
c53b2bcccb
feat(net): use NodeRecord instead of enode format ( #530 )
...
* feat(eth-wire): add timeouts to tests using Geth
* feat(net): use NodeRecord instead of enode format
* make NodeRecord::new pub instead of pub(crate)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
2022-12-19 17:57:02 -05:00
ac1c0419d2
feat(eth-wire): add timeouts to tests using Geth ( #529 )
2022-12-19 23:35:06 +01:00
3db7455eca
fix(net): fix disconnect edge case on remove from discovery ( #479 )
...
* fix(net): fix disconnect edge case on remove from discovery
* test: add disconnect test
2022-12-19 22:27:01 +01:00
13bb41517d
feat: config ( #496 )
...
* feat: default reth dirs
* docs: clarify txpool config docs
* feat: `serde` feature for `reth-consensus`
* feat: add missing hardforks
* feat: full chain specification
* feat: `DbPath` type
* feat: custom chain specs
* feat: `--debug.tip` option
* feat: basic stage config
* fix: resize db geometry
* refactor: don't commit in headers stage
* chore: remove headers dl timeout
* feat: loading of config
* refactor(config): `stage` -> `stages`
2022-12-19 21:27:26 +01:00
516d744bdd
test: run geth tests in serial ( #527 )
2022-12-19 19:12:14 +01:00
40579bf233
test: decrease test timeout for keep alive ( #523 )
2022-12-19 18:03:50 +01:00
e713b0c015
fix(net): poll after starting disconnect ( #522 )
2022-12-19 18:03:36 +01:00
aac078a132
fix(net): add already connected check ( #521 )
...
* fix(net): add already connected check
* fix: get events before adding peer
2022-12-19 18:03:10 +01:00
5758c297b3
fix(eth-wire): fix disconnect reason rlp decoding ( #502 )
...
* add trace in DisconnectReason Decodable impl
* add trace for decoding p2p hello
* add traces to p2p and eth stream
* refactor P2PMessage decoding
* improve disconnect tracing
* s/Hello/first
* add geth disconnect test
* add disconnectreason test cases
* add known failing disconnect messages
* add trace when disconnect reason decoding fails
* cargo fmt
* add more examples
* adding more as they appear in traces
* will add the rest since they can be exhaustively enumerated
* add every other possible encoding
* fix disconnect decoding
* the four possible formats for a disconnect message (rlp list (y/n) x
snappy (y/n)):
* encoded as a single rlp byte
* with snappy
* without snappy
* encoded as a rlp list
* with snappy
* without snappy
* fix the type for decoding in the test_decode_known_reasons test
* sort reasons by length in test
* remove printlns
* use one call to advance
* simplify decode impl to strip last byte
* todo: comment explaining the different formats being parsed?
* explicitly remove geth as a peer
* style: traces
* add another disconnect code from geth
* fix: add check for DisconnectRequested
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
2022-12-19 11:19:08 -05:00
a5f01238b9
feat(net): allow disconnect with reason ( #519 )
2022-12-19 16:22:24 +01:00
c1f124d3e3
feat(net): temporarily ban bad peers ( #492 )
...
* feat(net): temporarily ban bad peers
* use half duration interval
* Update crates/net/network/src/peers/manager.rs
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
* fix bad test
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
2022-12-16 18:22:25 +01:00
daaf039fbf
feat(sync): state transition indexes ( #449 )
...
* introduce state transitions and revert/modify block bodies table
* init refactor
* revamp transaction iteration based on bodies and add state transition mappings
* change expected return on empty db execution
* interim commit
* fix body downloader & stage
* refactor(bodies/dl): make fetch bodies fn more clear
* chore: disable unused vars/fns temporarily until exec is back
* chore: fmt
* test: fix tests
* use transitions in execution stage
* clarify empty unwind test
* remove last_tx_index fn
* rename fn and var names
* fix full block response comment
* rename fetcher`s get_block_body to get_block_bodies
* Update crates/stages/src/db.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* fmt
* fix index overlap check error
* uncomment eth chain command
* fix doc comment
* typos
* cleanup
* any_last_tx_index -> last_tx_index
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me >
2022-12-16 08:37:49 -08:00
345b2c35b9
fix: apply reputation ( #487 )
...
* fix: apply reputation
* add note
2022-12-16 13:36:58 +01:00
635203759b
feat(discv4): support eth entries ( #447 )
...
* add ENRRequest and ENRResponse messages
* todo: encode and decode impls
* scaffold enrrequest and enrresponse msgs
* implement encodable and decodable for enr
* cargo fmt
* impl sending enr requests
* silence clippy for now
* add todos for enrrequest and response in mocks
* make payload length fold more explicit
* feat: add enr support to ping pong
* integrate enr
* add update methods
* add enr handling
* feat: add enr handling
* integrate fork id
* fix: set frontier forkid
* disable eip868 by default
* address comments
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
2022-12-16 14:14:19 +02:00
864e6481da
fix: set forkfilter correctly ( #486 )
...
* fix: set forkfilter correctly
* fix types
* update tests
2022-12-16 14:14:07 +02:00
b1ce398dff
feat(net): add Status to session established event ( #473 )
2022-12-15 22:37:03 +01:00
6e577c6e5f
feat(net): request peer by id through PeersHandle ( #464 )
2022-12-15 17:10:21 +02:00
f509213cb4
refactor: clean up reth node ( #450 )
...
* feat: parse genesis block from a json spec
* refactor: clean up `init_genesis`
2022-12-15 17:09:31 +02:00
9dbf280bfb
docs(net): add bird's eye view docs ( #456 )
2022-12-15 11:36:58 +02:00
22dc50e5f6
feat(sync): download peer penalization ( #427 )
...
* feat(sync): download peer penalization
* peer penalization
* add tracing on penalization
* add trace on request
* rename consensus back
* clippy
* fix tests
* nit: download result
* nit: fix comment
* rename penalize() to report_bad_message() and move DownloadError
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-12-15 10:42:18 +02:00
f2707d32b5
fix(net): kick useless peers ( #451 )
2022-12-15 10:04:22 +02:00
c23c65fc3b
feat(net): draft for sending status updates through NetworkHandle ( #436 )
...
* feat(net): draft for sending status updates through `NetworkHandle`
* feat(net): draft for sending status updates through `NetworkHandle`
* fix(net): remove unused import
* feat(net): implement getters for status update sender half
* docs(net): document methods
* chore: cargo fmt
* feat(net): move status updating logic to NetworkManager and NetworkHandle
* feat(net): move status updating logic to NetworkManager and NetworkHandle
* fix(net): fix headers stage testing
* fix: derive default
* fix: remove StatusUpdate struct
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
2022-12-15 08:59:28 +01:00
43f6bb9127
feat(net): integrate discovery banlist ( #442 )
...
* feat(net): integrate discovery banlist
* fix typos
2022-12-14 19:47:11 +02:00
83c89a85e9
Add additional logs for P2P debugging ( #434 )
...
* feat: make logs on network manager more granular
* feat: log error on session disconnect
* temp: manual peer
* temp: manual peer
* feat(linear-dl): make BadResponse error more descriptive
* feat(linear-dl): log retries on future
* chore: add target
* chore: add target
* chore: remove unused var
* chore: remove manual peer override
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me >
2022-12-14 13:53:49 +02:00
9946f232a7
chore(net): improve session error traces ( #435 )
2022-12-14 13:48:28 +02:00
601bdc5022
feat: wire components together in reth node ( #416 )
...
* feat: naively wire up components
* chore: clippy lints
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-12-14 12:51:56 +02:00
12e7f0acbc
feat(net): make Status and Hello configurable ( #431 )
...
* feat(net): make Status and Hello configurable
* set port
2022-12-14 11:39:09 +01:00
500f98c9a3
fix(net): use adjust correct counters ( #429 )
2022-12-14 10:55:26 +02:00
24bc633bbd
feat(net): add NetworkBuilder type ( #421 )
2022-12-13 21:38:12 +01:00
2537f14567
feat(network): add geth connection test ( #352 )
...
* wip: geth connection test
* set port until disabling discovery sets port
* ignore test until it is complete
* check that first geth event is SessionEstablished
* fix endpoint string for the geth instance
* force an incoming connection
* we should also test establishing a session on an outgoing connections
* use NetworkEventStream helper in connect test
* create outgoing test
* make geth tests use different ports and datadirs
* update geth options
* cargo fmt
* s/geth_socket/reth_socket
* cargo fmt
* fix disc port collisions and re-add incoming test
* should add test utilities for getting unused disc/p2p ports
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
2022-12-13 14:29:44 -05:00
02be8121e0
fix(disc): also emit discovered node when buckets are full ( #414 )
2022-12-13 19:53:53 +02:00
8e5e7ff5b6
fix(net): improve dropped connection handling ( #412 )
2022-12-13 19:26:48 +02:00
5057e8ec0a
feat(p2p): refactor downloaders and add peer id to the result ( #410 )
...
* feat(p2p): refactor downloaders and add peer id to the result
* rm unused import
* fix tests
* clean up deps
* Update crates/interfaces/src/p2p/error.rs
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
* add split fn
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
2022-12-13 17:14:45 +01:00
6aa2daee0f
fix(net): outgoing requsts ( #398 )
...
* remove inpossible case
* fix(net): outgoing requests stopping
2022-12-13 08:25:41 +01:00
452a81e0d3
feat(net): expose message module ( #390 )
...
* feat(net): expose message module
* feat(net): expose `PeerRequest`, allow missing docs
2022-12-12 18:34:54 +02:00
db7608e3b5
feat(net): expose config settings ( #386 )
...
* expose transaction origin
* feat(net): fill peer config builder
2022-12-12 18:29:20 +02:00
fecdc3f0f2
feat(net): add peer_id/ip blacklist ( #366 )
2022-12-11 02:05:07 -08:00
c117d4b44f
docs(net): add example docs and fix links ( #375 )
2022-12-10 09:19:25 -08:00
9eebd141b7
chore(txpool): update TransactionPool trait bounds ( #376 )
2022-12-10 09:16:26 -08:00
e014eaad33
feat(db): Refactor storage libraries ( #371 )
2022-12-09 23:14:07 -08:00
4318a54f59
feat(net): integrate TaskExecutor ( #369 )
2022-12-09 09:47:18 -08:00
b0149f0b9f
fix(net): prevent bad loop if no peers available ( #359 )
...
* fix(net): prevent bad loop if no peers available
* test: add poll fetcher test
2022-12-09 12:39:08 +01:00
2f73345696
misc(net): unify naming ( #358 )
2022-12-08 09:12:58 -08:00
4d718bbf33
s/foundry-rs/paradigmxyz
2022-12-07 00:00:45 -08:00
f65969e90f
perf(net): exclude bootnodes from update stream ( #319 )
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
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