Bjerg
f8d1521c50
fix: set stage progress metric to absolute value ( #593 )
2022-12-23 18:14:53 +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
9d439d6fc8
chore(deps): bump ethers ( #591 )
2022-12-23 13:04:35 +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
Matthias Seitz
ecbbb8835c
docs(txpool): clarify validate_transaction ( #582 )
2022-12-23 05:43:13 +01:00
Sanket Shanbhag
c9958a4d13
Remove unwind priority. ( #577 )
...
* Remove unwind_priority from QueuedStage
* Remove unnecessary test for unwind_priority
* Update pipeline.rs based on code review
2022-12-22 07:15:07 -08:00
Mariano A. Nicolini
b12939db47
feat: add stagedsync headers metrics ( #498 )
...
* add dockerfile for reth
* Add docker compose for prometheus
* Add some metrics
* Add p2p connection errors metric
* Add dependency caching for dockerfile
This reduces image build times by ~50% after the first one.
Uses cargo-chef inside the image.
More info in: https://morioh.com/p/987a2bda4526
* Add --metrics flag to docker-compose config file
* add Cargo.lock
* Move docker-compose.yml to docker directory
* Apply formatting
* Remove docker folder
* Remove .dockerignore file
* Add 'reth' prefix to metric names
* Add headers errors and request time metrics
* Modularize metrics exporter functionality and describe metrics
* Format files
* Add metrics documentation in metrics.md
* Fix metrics doc title
* Commit changes after rebase
* Solve conflict
* Modularize metrics describers
* Add stages_metrics_describer
* Rearrange header error metrics
* Add update_headers_metrics function
* Add one-line docs to describers
* Remove commented line
* Refactor metrics describer
* Update metrics doc
* Fix import
* Add header metrics struct
* add new metrics format in the headers execute method
* Add default implementation for HeaderMetrics
* Fix typo
* Fix another typo
* Fix more typos
* Move new HeaderMetrics meathod to default
* Solve conflicts
* Fix test
Co-authored-by: Tomás <tomas.gruner@lambdaclass.com >
2022-12-22 15:45:57 +01:00
Matthias Seitz
7ce22fd186
fix: SealedBlock rename ( #583 )
2022-12-22 15:19:40 +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
Bjerg
6f6c4f61e0
refactor: rename EthConsensus ( #572 )
...
Closes #566
2022-12-22 12:05:49 +01:00
Roman Krasiuk
8f40c8bb93
chore(docs): update engine api links ( #576 )
2022-12-22 11:41:31 +01:00
DaniPopes
c070e77524
chore(primitives): Update keccak256 implementation ( #563 )
...
* chore(primitives): Update keccak256 implementation
* chore(primitives): Update keccak256 implementation
* revert BytesMut
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
2022-12-21 21:22:18 +01:00
Matthias Seitz
c2ed3b2b52
feat(rpc): add some bindings for admin namespace ( #561 )
2022-12-21 15:43:58 +01:00
Roman Krasiuk
82197d08c6
fix(consensus): block reward check ( #556 )
2022-12-21 15:45:51 +02: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
Roman Krasiuk
276be27310
chore(sync): rename senders stage ( #554 )
2022-12-21 05:34:18 -08: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
80b34a961e
chore: rm some clippy lints ( #540 )
2022-12-20 15:25:32 +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
Roman Krasiuk
0995ac2777
meta(sync): tracing ( #455 )
...
* meta(sync): tracing
* Apply suggestions from code review
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
* apply comments
* upd discv5 dep
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
2022-12-20 03:00:59 -08:00
Roman Krasiuk
c68a850c70
chore(db): modify state transition docs ( #515 )
2022-12-20 11:31:23 +02: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
f65562e2e4
refactor(sync): remove require_tip ( #528 )
...
`require_tip` could only be determined by the headers stage,
and it signalled that we have all of the headers to sync all
the way to the chain tip. Some stages may wait to execute
until the tip is reached, e.g. the stage that checks the
stage root, but there are a few problems:
- On initial sync, `reached_tip` would be `true`, but by
the time we reach the hashing stage, this would actually
no longer be the case: the other stages have spent
enough time for us to be "out of sync". This means
that the optimization here is lost, and the additional
logic is added for nothing.
- When we are not doing our initial sync, `reached_tip` would
always be `true` for each subsequent block we sync.
The same logic applies as above, i.e. the extra logic
is there for nothing.
In other words, `reached_tip` would *always* be `true` once
we leave the header stage, making the extra logic entirely
redundant.
2022-12-19 22:04:42 +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