Roman Krasiuk
565a0aa90b
feat(engine): new payload execution ( #631 )
...
* feat(engine): new payload execution
* address PR comments
* rm unused dev deps
* add comment about lru
* remove par_iter
2022-12-29 02:36:56 -08:00
Matthias Seitz
525f28a67d
feat(net): integrate external public ip auto discovery ( #632 )
...
* feat(net): integrate external public ip auto discovery
* Update crates/net/discv4/src/config.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* rename var
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-12-28 16:14:07 +01:00
Matthias Seitz
c3432bc284
feat(rpc): add rpc builder support ( #635 )
2022-12-28 15:55:30 +02:00
Tomás
dcd3923d19
Add serde support for NodeRecord primitive type ( #617 )
...
* Add serde support to NodeRecord
* Move NodeRecord to primitives
along with NodeKey and Octets
* Reexport NodeRecord from discv4
* Move NodeKey and kad_key back to discv4::node
Also, move NodeRecord::key functionality to a helper function: discv4::node::record_key.
This avoids the discv5 dependency in the primitives crate.
* Fix NodeRecord (de)serializing
The default derive macros work with a dictionary like display.
Changed that to serde_with macros, that use Display and FromStr traits.
* Add some tests for NodeRecord (de)serializing
* Hide NodeKey struct
* Move Octets after NodeRecord
* Replace record_key with From trait
* Fix clippy error
unnecessary into()
2022-12-27 18:03:54 +01:00
Mariano A. Nicolini
c2b19cecef
feat: add txpool metrics ( #584 )
...
* feat(metrics): `Metrics` derive macro
* rename metrics to metrics-derive
* use fully qualified fmt path
* metric vec with capacity
* favor metrics over simple scope attr, simplify code
* pull metric description from doc comment
* rm debug log
* add more docs and sample usage
* link to metrics macros
* add tests for metrics derive macro
* clippy
* Fix doc of headers_unexpected_errors field of HeaderMetrics
* Add tx pool metrics struct and metrics updates in code
* Format file
* Update metrics doc
* Add some comments
* Format file
* Refactor metrics describers for consistency
* Format files
* Fix broken import
* Apply metrics macro to TxPoolMetrics
* Remove unused imports
* Remove unused commented code
* Remove files
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com >
2022-12-27 16:44:41 +01:00
Roman Krasiuk
5bb14ecb7c
fix(metrics): metrics derive separator ( #625 )
...
* fix(metrics): metrics derive separator
* fix existing metrics
* rm log
* static regex
2022-12-27 03:16:41 -08:00
Roman Krasiuk
663efa8d2a
feat(metrics): Metrics derive macro ( #592 )
...
* feat(metrics): `Metrics` derive macro
* rename metrics to metrics-derive
* use fully qualified fmt path
* metric vec with capacity
* favor metrics over simple scope attr, simplify code
* pull metric description from doc comment
* rm debug log
* add more docs and sample usage
* link to metrics macros
* add tests for metrics derive macro
* clippy
* simplify path comparison
* cleanup
* remove unused dep
* rename stage metrics
2022-12-26 14:27:24 -08:00
Matthias Seitz
3a07eb930f
feat(net): add nat external ip crate ( #605 )
2022-12-25 18:22:31 +02:00
Matthias Seitz
4e677b5993
refactor(net): unify dropped connection handling ( #595 )
2022-12-23 21:46:44 +01:00
rakita
284391c181
test(execution): chain test state check, execution bug fixes/upgrades ( #472 )
...
* temp: header stage backoff stand-in
* feat(execution): Check chain post state, fix StateProviderLatest and evm return
* Disable receipt merkle tree check
* update and merge
* Fix storage double values in dup table
* fmt
* Update bin/reth/src/test_eth_chain/runner.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* Enable receipt root check after byzantium
* Receipt inner rlp without header for proof root
* some cleanup nits
* nit
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me >
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-12-23 18:42:19 +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
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
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
Matthias Seitz
f3c79ff61c
chore(deps): bump rustversion ( #553 )
2022-12-21 12:03:09 +02: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
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
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
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
ddc78ef733
chore(deps): bump ethers ( #507 )
2022-12-18 15:09:43 +02: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
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
Roman Krasiuk
9208f2fd9b
test(execution): execution test runner ( #426 )
...
* wip run chain test
* dump pre test state
* bug: fix casting to revm spec
* wip move execution to std thread
* wip scoped thread execution
* fmt clippy
* Update crates/stages/src/stages/execution.rs
* Update bin/reth/Cargo.toml
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* Update bin/reth/src/test_eth_chain/models.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* Correct models for chain tests
Co-authored-by: rakita <dragan0rakita@gmail.com >
Co-authored-by: rakita <rakita@users.noreply.github.com >
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-12-15 13:39:55 +01:00
mempirate
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
Matthias Seitz
43f6bb9127
feat(net): integrate discovery banlist ( #442 )
...
* feat(net): integrate discovery banlist
* fix typos
2022-12-14 19:47:11 +02:00
dependabot[bot]
c2719ec27e
chore(deps): bump secp256k1 from 0.24.1 to 0.24.2 ( #440 )
...
Bumps [secp256k1](https://github.com/rust-bitcoin/rust-secp256k1 ) from 0.24.1 to 0.24.2.
- [Release notes](https://github.com/rust-bitcoin/rust-secp256k1/releases )
- [Changelog](https://github.com/rust-bitcoin/rust-secp256k1/blob/secp256k1-0.24.2/CHANGELOG.md )
- [Commits](https://github.com/rust-bitcoin/rust-secp256k1/compare/secp256k1-0.24.1...secp256k1-0.24.2 )
---
updated-dependencies:
- dependency-name: secp256k1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-14 16:40:16 +02:00
Georgios Konstantopoulos
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
Bjerg
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
Matthias Seitz
95d99c4317
chore(disc): update discv5 and tracing ( #408 )
...
* chore(disc): update discv5 and tracing
* ignore
2022-12-13 19:12:59 +02:00
Dan Cline
1e38ffa5ad
feat(eth-wire): fuzzing wire encoding roundtrip ( #350 )
...
* move hello to separate file
* cargo fmt
* wip: actual fuzz test
* should probably also take advantage of test-fuzz to generate
benchmarks like impl_fuzzer_with_input
* impl generic roundtrip method
* generate test with macro
* change testname to fuzzname
* add reth-eth-wire to fuzz in ci
* add other message types to fuzz
* remove unused_crate_dependencies
* was causing test issues, may want to revisit whether or not we can
include this warning and still use test_fuzz
* more afl debugging ci
* use more explicit imports in fuzz_rlp
* impl Default for types and fuzz ping/pong
* Default is necessary for test-fuzz to auto generate a corpus for each
type we are fuzz testing
* enable AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES
* not sure if we should do this in the workflow instead:
echo core >/proc/sys/kernel/core_pattern
we may miss crashes if we keep this enabled?
* remove reth-interfaces from fuzzing
* add secp256k1 to reth-db dev deps
2022-12-13 19:10:52 +02:00
Georgios Konstantopoulos
dff3936b29
feat(cli): db cmd scaffold ( #405 )
...
* feat(cli): db cmd scaffold
* feat(cli): add methods for seeding/listing tables
* feat(cli): add reth db stats
* chore: docs / cleanup
* chore: remove ethers
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me >
2022-12-13 18:57:37 +02:00
Roman Krasiuk
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
Dan Cline
705e6f79dc
feat(p2p): remove p2p crate ( #397 )
2022-12-13 08:28:38 +01:00
Roman Krasiuk
2534aa85ac
feat(rpc): net namespace ( #363 )
...
* feat(rpc): net namespace
* add network_id field to debug
* is_listening flag & peer count as hex
* eth api trait
* fix errors
* Update crates/net/rpc/src/net/mod.rs
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
* add trait bounds directly
* fmt
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
2022-12-12 19:53:56 +02:00
Will Smith
fecdc3f0f2
feat(net): add peer_id/ip blacklist ( #366 )
2022-12-11 02:05:07 -08:00
rakita
e014eaad33
feat(db): Refactor storage libraries ( #371 )
2022-12-09 23:14:07 -08:00
Matthias Seitz
4318a54f59
feat(net): integrate TaskExecutor ( #369 )
2022-12-09 09:47:18 -08:00
Matthias Seitz
f489ec51f0
feat: add TaskManager and Executor types ( #357 )
2022-12-08 09:15:48 -08:00
rakita
4fb3626546
chore: Last PR cleanup, nits ( #353 )
...
* chore: cleanup, tests and nits
* fmt
2022-12-08 11:16:01 +01:00
Dan Cline
6c91322251
feat(eth-wire): derive serde traits for eth-wire types ( #348 )
...
* wip: start adding serde to stuff
* add serde traits to NewBlockHashes
* derive serde traits for the rest of the types
* derive serde traits for p2p subprotocol messages
* cargo fmt
2022-12-06 18:05:22 -08:00
Matthias Seitz
4643f840d7
chore(deps): get rid of unused deps ( #339 )
2022-12-06 18:02:04 -08:00
Matthias Seitz
5e37ef8226
style(net): use pin_project on eceis stream ( #338 )
2022-12-06 18:02:04 -08:00
rakita
a68cb3f357
feat(stage): Add execution stage ( #287 )
...
* Execution stage
* StorageProviderRef. cleanup, fmt/clippy
* block inclusion
* insert blocks for execution stage
* Sanity test for execution stage
* nits
* Update crates/stages/src/stages/execution.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* Update crates/stages/Cargo.toml
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* Update crates/stages/src/stages/execution.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* Update crates/stages/src/stages/execution.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* feat(execution) Execution change diff. (#323 )
* Insert to execution changediffs
* progress on exec stage unwind
* wip
* Remove tables:BlockBody from execution stage
* unwind passing
* Nits cleanup and refactoring
* DatabaseIntegrity errors
* KECCAK_EMPTY acc to None
* Update crates/interfaces/src/db/tables.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* Update crates/interfaces/src/provider/block.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* Update crates/stages/src/stages/execution.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* nits
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-12-06 18:02:04 -08:00
Matthias Seitz
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
Matthias Seitz
2e3c220104
fix: fix flaky test ( #250 )
2022-11-24 13:26:22 -08:00
Matthias Seitz
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