Matthias Seitz
3a07eb930f
feat(net): add nat external ip crate ( #605 )
2022-12-25 18:22:31 +02:00
Sanket Shanbhag
73e12341c4
feat(net): Make PeerManager emit peerevents for admin rpc ( #602 )
...
* Make PeerManager emit peerevents for admin rpc
* Fix tests to include new peer events
2022-12-25 10:00:10 +01:00
Matthias Seitz
5affa67805
refactor(net): unify closed incoming session handling ( #600 )
2022-12-24 12:38:21 +01:00
Sanket Shanbhag
43008b7b07
feat: Add PeerEvent to NetworkEvent enum ( #574 )
...
* Add peerAdded and peerRemoved events to NetworkEvent enum
* Remove unnecessary todo macros
2022-12-24 10:25:09 +01:00
Matthias Seitz
7c80dde0ec
fix(net): check for handshake disconnect ( #596 )
2022-12-24 00:58:43 +01:00
Matthias Seitz
4e677b5993
refactor(net): unify dropped connection handling ( #595 )
2022-12-23 21:46:44 +01:00
Bjerg
562e895f21
ci: unused dependencies sanity check ( #590 )
...
* ci: add unused deps sanity check
* ci: fix unused deps issue template title
* ci: rename udeps job
* chore: formatting
* chore: make `cargo-udeps` ignore `aquamarine`
* deps: resolve unused deps
* ci: check every feature and target in udeps job
2022-12-23 13:19:50 +01:00
Matthias Seitz
cb58759e66
feat(net): validate discovered enr forkid ( #586 )
2022-12-23 12:15:07 +01:00
mempirate
e549b29cce
feat(net): increase session command buffer ( #585 )
...
* refactor: unnecessary return
* feat: increase session command buffer to 32
2022-12-23 11:24:04 +01:00
Genysys
0b1b5368e6
chore: Rename BlockLocked to SealedBlock ( #573 )
...
* chore: Rename BlockLocked to SealedBlock
* chore: fmt
Co-authored-by: Genysys <112424909+samtvlabs@users.noreply.github.com >
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-12-22 14:45:36 +02:00
Roman Krasiuk
a85793cd9b
feat(rpc): basic engine api ( #551 )
...
* feat(rpc): engine api
* change transition config exchange
* payload block construction
* pull out engine api logic
* linter
* clippy
* clippy
* Apply suggestions from code review
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
* import & map_err for RecvError
* move result
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
2022-12-22 12:38:28 +01:00
Roman Krasiuk
8f40c8bb93
chore(docs): update engine api links ( #576 )
2022-12-22 11:41:31 +01:00
Matthias Seitz
c2ed3b2b52
feat(rpc): add some bindings for admin namespace ( #561 )
2022-12-21 15:43:58 +01:00
Matthias Seitz
1400e51495
chore(net): add more active session traces ( #557 )
...
* chore(net): add more active session traces
* Update crates/net/network/src/session/active.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-12-21 15:44:39 +02:00
Matthias Seitz
d84eb9d93c
fix(net): add capacity check on ping ( #558 )
2022-12-21 15:41:14 +02:00
Matthias Seitz
151420df58
fix(net): encode ping pong as snappy ( #555 )
2022-12-21 15:24:41 +02:00
Matthias Seitz
b2abcddeda
fix(net): temporarily backoff busy peers ( #548 )
...
* fix(net): temporarily backoff busy peers
* chore: rustfmt
2022-12-20 22:19:06 +01:00
Dan Cline
21564b43a2
feat(eth-wire): enforce test-fuzz traits pre-fuzz ( #545 )
...
* directs types we generate fuzz tests for to a method that is more
restrictive in the traits each input type should implement, so if any
type does not implement the test-fuzz required traits it will fail to
compile instead of fail to autogenerate a fuzz test at runtime.
2022-12-20 20:32:17 +01:00
Matthias Seitz
7184e4df3f
fix(net): ban peer on fatal error ( #543 )
2022-12-20 18:04:33 +01:00
Matthias Seitz
63406d5a6d
perf(net): put timeout check behind interval ( #537 )
2022-12-20 18:02:35 +01:00
Matthias Seitz
f5c9064b44
test(net): add e2e test for already connected ( #538 )
2022-12-20 18:02:16 +01:00
Matthias Seitz
7a13cf6688
feat(net): add ForkTransition type ( #542 )
2022-12-20 18:01:54 +01:00
Matthias Seitz
c2ad7b1b06
chore(disc): unify duration settings and naming ( #539 )
2022-12-20 13:35:22 +01:00
Dan Cline
aab385c84a
feat(eth-wire): RLP encode then compress ( #535 )
2022-12-20 14:33:47 +02:00
Matthias Seitz
3df86187d1
chore(deps): remove discv5 fork dep ( #536 )
...
* chore(deps): remove discv5 fork dep
* bump deps
2022-12-20 12:13:51 +01:00
Bjerg
82cd84eca7
test: fix emits_bodies_in_order test ( #534 )
...
* feat(test-utils): make body tx count configurable
* test: fix `emits_bodies_in_order` test
2022-12-20 01:29:04 +01:00
Matthias Seitz
5c1f97cbf7
test: create events handler before interacting with network mngr ( #532 )
2022-12-20 00:38:23 +01:00
Dan Cline
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
Dan Cline
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
Dan Cline
ac1c0419d2
feat(eth-wire): add timeouts to tests using Geth ( #529 )
2022-12-19 23:35:06 +01:00
Matthias Seitz
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
Bjerg
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
Matthias Seitz
516d744bdd
test: run geth tests in serial ( #527 )
2022-12-19 19:12:14 +01:00
Matthias Seitz
a2849cd81e
chore(net): improve ecies error for unreadable stream ( #514 )
...
* chore(net): improve ecies error for unreadable stream
* Update crates/net/ecies/src/error.rs
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
2022-12-19 19:07:19 +01:00
Roman Krasiuk
6a36a6a58c
chore(sync): remove unused timeout from LinearDownloadBuilder ( #524 )
...
* chore(sync): remove timeout from linear download builder
* rm unused import
2022-12-19 18:40:45 +01:00
Matthias Seitz
40579bf233
test: decrease test timeout for keep alive ( #523 )
2022-12-19 18:03:50 +01:00
Matthias Seitz
e713b0c015
fix(net): poll after starting disconnect ( #522 )
2022-12-19 18:03:36 +01:00
Matthias Seitz
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
Dan Cline
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
Matthias Seitz
f8b719e04c
refactor(disc): use KBucekt entry API ( #518 )
...
* refactor(disc): use entry API
* refactor(disc): cleanup
* chore: rustfmt
2022-12-19 16:54:03 +01:00
Matthias Seitz
dc85695d0d
fix(net): set disconnect status ( #520 )
2022-12-19 16:22:55 +01:00
Matthias Seitz
a5f01238b9
feat(net): allow disconnect with reason ( #519 )
2022-12-19 16:22:24 +01:00
Roman Krasiuk
c1a863d067
test(download): header downloader request attempts & remove duplicates ( #517 )
...
* test(download): header downloader request attempts
* fix comment
2022-12-19 16:18:38 +01:00
Matthias Seitz
bffc829bcb
perf(net): increase udp channel buffers ( #508 )
...
* perf(net): increase channel buffers
* Update crates/net/discv4/src/config.rs
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
2022-12-18 15:22:19 +01:00
Tomás
253aae5ea9
RLP decoding error tracing ( #499 )
...
* Add tracing to ProtocolMessage::decode errors
* Change trace message formatting
Now it prints the bytes as a hex string.
Also changed trace level to WARN and added 'handshake' to one of the traces to differentiate between them
* Add prefix to raw message bytes
* Specify 'eth' in trace message
to differentiate it from other handshakes
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com >
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com >
2022-12-16 20:57:48 -05:00
Mariano A. Nicolini
4da574df84
feat: add prometheus support ( #474 )
2022-12-16 20:21:26 +01:00
Matthias Seitz
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
Roman Krasiuk
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
Matthias Seitz
345b2c35b9
fix: apply reputation ( #487 )
...
* fix: apply reputation
* add note
2022-12-16 13:36:58 +01:00
Dan Cline
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