Commit Graph

153 Commits

Author SHA1 Message Date
Matthias Seitz
3f9e7a080a feat(net): introduce PeersInfo trait (#860) 2023-01-13 12:04:39 +01:00
Matthias Seitz
6b86b40539 chore(deps): bump ethers (#861) 2023-01-13 11:57:14 +01:00
Matthias Seitz
7767b216bc feat: integrate DNS discovery service (#832) 2023-01-13 10:34:13 +01:00
Matthias Seitz
ba3048ceb0 refactor: add network-api crate (#838) 2023-01-12 19:39:44 -08:00
Matthias Seitz
429cd69ed4 feat(nat): add None Natresolver (#834) 2023-01-12 07:56:43 -08:00
Matthias Seitz
09c5a04c7b feat(disc): add DnsDiscovery service (#794) 2023-01-12 12:49:02 +01:00
Matthias Seitz
23984e3db7 chore(deps): rm unused tracing-futures (#830) 2023-01-12 12:22:27 +01:00
Bjerg
20ee1bb1c9 refactor: move cli trace helpers to reth-tracing (#820) 2023-01-11 10:20:37 -08:00
Bjerg
2e95ed4b6e fix: make config serialize as toml (#811) 2023-01-11 13:36:41 +01:00
Bjerg
2e87017686 feat(cli): more reasonable log output (#784) 2023-01-11 11:53:33 +01:00
joshieDo
aabbe4923b chore(codecs): add proptest roundtrip to all main_codec (#803) 2023-01-10 22:06:01 -08:00
Matthias Seitz
55bc2591e6 fix(net): handle outgoing connection error correctly (#798) 2023-01-10 21:30:17 +01:00
rakita
e5e74cbc02 fix(execution): Increase cache scope, and apply block reward to cache (#793)
* bug: Apply block reward to evm cache

* Move cache to all blocks

* add tests

* Update crates/executor/src/executor.rs

Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>

Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2023-01-10 08:05:50 -08:00
David Kulman
515590faa8 refactor: move cli utils to new reth-cli-utils crate (#790)
* Move bin/src/util to reth-cli-utils

* Add reth-cli-utils to workspace members

* Fix imports in bin/src

* Create reth-cli-utils crate

* Add utils import
2023-01-10 01:13:41 +01:00
Matthias Seitz
2b3dfe93a7 feat(dns): add dns discovery service (#768)
* feat(dns): add dns discovery service

* feat: add entry types

* add codec impls

* resolve basics

* Update crates/net/dns/src/tree.rs

Co-authored-by: Bjerg <onbjerg@users.noreply.github.com>

Co-authored-by: Bjerg <onbjerg@users.noreply.github.com>
2023-01-09 18:09:09 +01:00
Matthias Seitz
d522abb749 chore(deps): bump tokio 1.24 (#778) 2023-01-09 17:52:08 +01:00
Sanket Shanbhag
d98f9fe507 move HasRemoteAddr trait to reth-net-common (#775) 2023-01-09 10:43:46 +02:00
Matthias Seitz
acb0753812 chore(deps): remove unused ether-core (#760) 2023-01-07 12:12:48 +02:00
Andrew Kirillov
2da828478c feat(net): Bandwidth monitoring (#707)
* WIP for draft PR

* added basic test

* using BandwidthMeterInner type & added TcpStream test

* formatted

* formatted w/ +nightly

* using  &  for  and

* formatted

* added default impl for BandwidthMeter

* using _bandwidth_meter bc unused

* removed redundant clone

* addressed nits, renamed file

* addressed nits, renamed file
2023-01-06 21:43:13 +01:00
Sanket Shanbhag
1b5bc5e1f7 Rotate peers when fetching (#743) 2023-01-06 12:21:42 +01:00
joshieDo
258431aac8 primitives: add own Bloom type with arbitrary (#746)
* add own Bloom type with arbitrary

* use impl_hash_compact instead

* add doc to exported macro

* remove unused crate and code

* fix rlp encode length for Bloom

* use RlpDecodableWrapper and RlpEncodableWrapper instead
2023-01-06 13:10:19 +02:00
Matthias Seitz
6cf5427af3 style(discv4): use event buffer (#737) 2023-01-05 17:50:09 +01:00
Sanket Shanbhag
e4bd5b4fe9 feat(net): add NetworkMetrics (#708)
* Added NetworkMetrics

* update docs

* add more metrics and make naming consistent

* add active inbound and outbound connection metrics
2023-01-05 10:17:57 +01:00
Georgios Konstantopoulos
759ba39311 feat: Stage tool (#716)
* feat: `reth stage` command

* refactor(bin): move init utils to separate file

* feat(bin): scaffold stage command for one stage

* fix: correctly set from/to for stage range

* fix(stage-tool): add unwind before execute to re-exec

otherwise we're double executing stuff

* fix(stage-tool): use max commit threshold avail

* chore: rm unused vars

* fix(genesis-init): take a write tx only if needed

this avoids blocking by accident if we took a write tx expecting
that init_genesis would immediately return the hash

* feat(stage-tool): add bodies stage

Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>
2023-01-04 21:53:27 +02:00
Roman Krasiuk
973ea48e03 feat(cli): p2p header & body download (#698)
* p2p cli scaffolding

* refactor to fetch client

* body & header download

* p2p trusted opts

* add retries

* notify on retry

* clippy

* display err
2023-01-04 21:33:08 +02:00
joshieDo
6407b5087e chore: use B160, B256 and U256 coming from revm and ruint (#676)
* use B256, B160 and U256 from revm

* fix U256 from_str

* use U256::ZERO

* use temporary commit for revm and interpreter

* more U256::ZERO

* more changes for revm/ruint types

* clippy

* change revm and revm-interpreter repo

* remove H160 wrap

* minor cleanup

* remove unused

* fix MIN_PROTOCOL_BASE_FEE
2023-01-04 11:11:48 +02:00
LambdaClass
efac887e30 chore: add serde feature to network crate (#653)
* Add serde feature and support for PeersConfig

* Add Duration fields and Weights

* Add serde for ConnectionInfo field
2023-01-01 18:27:55 +02:00
Sanket Shanbhag
20847845e2 feat: raise fd limit of the binary (#668)
* raise fd limit of the binary

* Remove tracing and return error

* Ignore errors
2023-01-01 12:49:00 +01:00
Roman Krasiuk
a7d8059357 test(engine): consensus engine tests (#648) 2022-12-30 13:17:27 +02:00
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