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
9d439d6fc8
chore(deps): bump ethers ( #591 )
2022-12-23 13:04:35 +01:00
2f81137d66
ci: fix sanity check issue template frontmatter
2022-12-23 12:42:49 +01:00
affead471d
ci: fix sanity job
2022-12-23 12:30:06 +01:00
9e2ef7e48c
ci: add sanity check workflow ( #588 )
...
* ci: add sanity check workflow
Adds a workflow that performs on-demand and scheduled
checks to ensure reth crates are consumeable.
* chore: adjust issue template
* ci: rename sanity check job
2022-12-23 12:27:19 +01:00
cb58759e66
feat(net): validate discovered enr forkid ( #586 )
2022-12-23 12:15:07 +01:00
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
ecbbb8835c
docs(txpool): clarify validate_transaction ( #582 )
2022-12-23 05:43:13 +01:00
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
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
7ce22fd186
fix: SealedBlock rename ( #583 )
2022-12-22 15:19:40 +01:00
4b18eb8467
Update the document by adding information on how to install Geth and Lighthouse. ( #568 )
...
* Update the document by adding information on how to install Geth and Lighthouse.
* Include links to the installation pages for Geth and Lighthouse in the document.
* Change the link to the installation documentation to point to the Geth installation documentation at this link: https://geth.ethereum.org/docs/install-and-build/installing-geth .
Co-authored-by: Satoshi Okamoto <satoshi@butcher73.com >
2022-12-22 14:49:48 +02:00
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
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
6f6c4f61e0
refactor: rename EthConsensus ( #572 )
...
Closes #566
2022-12-22 12:05:49 +01:00
8f40c8bb93
chore(docs): update engine api links ( #576 )
2022-12-22 11:41:31 +01:00
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
c2ed3b2b52
feat(rpc): add some bindings for admin namespace ( #561 )
2022-12-21 15:43:58 +01:00
82197d08c6
fix(consensus): block reward check ( #556 )
2022-12-21 15:45:51 +02:00
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
0864193031
ci: disable fuzzing jobs ( #559 )
2022-12-21 15:41:28 +02:00
d84eb9d93c
fix(net): add capacity check on ping ( #558 )
2022-12-21 15:41:14 +02:00
276be27310
chore(sync): rename senders stage ( #554 )
2022-12-21 05:34:18 -08:00
151420df58
fix(net): encode ping pong as snappy ( #555 )
2022-12-21 15:24:41 +02:00
f3c79ff61c
chore(deps): bump rustversion ( #553 )
2022-12-21 12:03:09 +02:00
d926c75da2
Sync project layout docs ( #550 )
2022-12-21 11:17:14 +02:00
b2abcddeda
fix(net): temporarily backoff busy peers ( #548 )
...
* fix(net): temporarily backoff busy peers
* chore: rustfmt
2022-12-20 22:19:06 +01:00
ed4213fdff
ci: speed up fuzz tests ( #544 )
...
* ci: run fuzz tests in matrix
* ci: fail if fuzzing fails
* ci: rename fuzz step
* ci: clean up env
* ci: fix fuzz test target matching
* ci: prebuild fuzz corpus
* ci: collect coverage while running tests
Instead of running tests twice, we can just run them
once while collecting coverage data.
* ci: temporarily disable `reth-eth-wire` fuzzing
* ci: collect fuzz coverage data
* ci: fix fuzz coverage collection
* ci: re-enable `reth-eth-wire`
2022-12-20 22:18:53 +01:00
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
2dc5b80ef0
feat: verbose flag ( #541 )
2022-12-20 18:41:04 +01:00
7184e4df3f
fix(net): ban peer on fatal error ( #543 )
2022-12-20 18:04:33 +01:00
63406d5a6d
perf(net): put timeout check behind interval ( #537 )
2022-12-20 18:02:35 +01:00
f5c9064b44
test(net): add e2e test for already connected ( #538 )
2022-12-20 18:02:16 +01:00
7a13cf6688
feat(net): add ForkTransition type ( #542 )
2022-12-20 18:01:54 +01:00
80b34a961e
chore: rm some clippy lints ( #540 )
2022-12-20 15:25:32 +01:00
c2ad7b1b06
chore(disc): unify duration settings and naming ( #539 )
2022-12-20 13:35:22 +01:00
aab385c84a
feat(eth-wire): RLP encode then compress ( #535 )
2022-12-20 14:33:47 +02:00
3df86187d1
chore(deps): remove discv5 fork dep ( #536 )
...
* chore(deps): remove discv5 fork dep
* bump deps
2022-12-20 12:13:51 +01:00
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
c68a850c70
chore(db): modify state transition docs ( #515 )
2022-12-20 11:31:23 +02:00
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
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
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
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
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