Commit Graph

690 Commits

Author SHA1 Message Date
1f64d8e9d7 refactor: pull reth/common/rlp up to reth/rlp (#1146) 2023-02-02 13:54:13 -08:00
5da6b07d9e chore(consensus): crate refactor (#1094) 2023-01-31 10:29:26 -08:00
acac82fcb3 refactor: introduce reth-staged-sync crate (#962) 2023-01-21 15:34:49 -08:00
5d45325e43 feat(net): Metered senders (#726)
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com>
2023-01-17 17:41:05 -08:00
ba3048ceb0 refactor: add network-api crate (#838) 2023-01-12 19:39:44 -08:00
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
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
c3432bc284 feat(rpc): add rpc builder support (#635) 2022-12-28 15:55:30 +02:00
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
3a07eb930f feat(net): add nat external ip crate (#605) 2022-12-25 18:22:31 +02:00
43f6bb9127 feat(net): integrate discovery banlist (#442)
* feat(net): integrate discovery banlist

* fix typos
2022-12-14 19:47:11 +02:00
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
705e6f79dc feat(p2p): remove p2p crate (#397) 2022-12-13 08:28:38 +01:00
e014eaad33 feat(db): Refactor storage libraries (#371) 2022-12-09 23:14:07 -08:00
f489ec51f0 feat: add TaskManager and Executor types (#357) 2022-12-08 09:15:48 -08:00
89ffaf541b feat: add tracing crate (#236) 2022-11-22 20:48:32 +01:00
92a7818512 feat: bodies stage (#190)
* chore: clean up `.gitignore`

* fix: make RO cursors `Send + Sync`

* feat(wip): bodies stage

* driveby: improve docs

* chore: don't panic if we're the first stage

* chore: use `Vec` for ommers

* feat: error handling in bodies downloader

* chore: remove stale comment

* chore: pascal-case stage id

* refactor: remove unused new fns

* refactor: distinguish downloaders with prefix

* refactor: move downloader errs to own module

* refactor: `stream_bodies` -> `bodies_stream`

* test: fix borked imports in header stage

* test: clean up header tests

* test: add basic body stage tests

* test: add 2 more body stage test skeletons

* test: move generator test utils to own module

* refactor: move proof functions to primitives crate

* feat: add block generator test utils

* test: more body stage tests

* chore: fix typo (`Cannonical*` -> `Canonical`)

* docs: document `bodies_to_download`

* test: more body stage tests

* test: more body stage tests

* refactor: clean up body stage tests a bit

* test: fix broken tests

* refactor: clean up body stage tests

* test: more body stage tests
2022-11-15 08:49:11 +01:00
fd6a7cb628 WIP: feat: ipc support (#144)
* feat: ipc support

* copy futures

* feat: port ipc implementation

* cleanup

* add test

* fix clippy

* add request test
2022-11-10 19:47:00 +01:00
b7cdfbf4f9 feat(net): network scaffolding (#110)
* feat(net): network scaffolding
2022-11-07 09:27:08 +01:00
ac2f3fcd8a feat: Consensus crate and verification functions. (#152)
* wip executor

* wip

* Cleanup added some checks and structure to executor

* adding additional block/header checks

* add basefee calculation and check

* some cleanup

* Sanity check test

* Test for sanity check

* move verification to consensus crate

* cleanup

* Better Error handling
2022-11-02 12:59:51 +01:00
ce64fefd78 feat(net): add discv4 crate (#113)
* port kad

* feat: port kad bucket

* feat: add discv4

* chore: rustfmt

* cargo update

* just reuse discv5 table

* test: add rlp tests

* message encoding

* feat: impl codec roundtrip testing

* more work in message handling

* implement ping

* feat: impl commands

* cleanup

* more cleanup

* trim config

* more docs

* feat: implement recursive lookup

* docs

* cleanup config

* feat: implement update stream

* chore: config cleanup

* docs: add crate docs

* feat: more testing

* fix deny

* clarify ring

* docs: more docs

* use discv5 master

* docs: address review and add comments

* update readme

* rustmft

* chore(clippy): make clippy happy
2022-10-25 14:23:24 +02:00
5c55c57c5e feat(db): switch to reth-libmdbx-rs, bump reth-mdbx-sys to 0.12.1 (#133)
* feat(db): Add mdbx-rs apache licenced code 55e234

* feat(db): replace mdbx with reth-mdbx, metadata changes

* chore(db): bump mdbx-sys to 0.12.1
2022-10-25 02:50:02 -07:00
15bd88e637 headers(part2) - feat: add Downloader trait and test utils (#118)
* feat(interfaces): implement header client traits

* feat: add downloader trait implementer

* feat: use explicit error type instead of ok(false)

* feat: add constructor to HeaderLocked

* test: scaffold mock consensus, downloader and headersclient helpers

* test: implement test consensus

* test: implement test headers client

* refactor: cleanup download headers

* chore: fix lint

* s/test_utils/test_helpers

* headers(part 3) feat: implement Linear downloader (#119)

* feat: add headers downloaders crate

* feat: more scaffolding

* interfaces: generalize retryable erros

* feat: implement linear downloader

* fix linear downloader tests & add builder

* extend & reverse

* feat: linear downloader generics behind arc and reversed return order (#120)

* put client & consensus behind arc and return headers in rev

* cleanup

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

* extract test_utils

* cargo fmt

Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2022-10-24 04:56:43 -07:00
5dfe5ac29b feat(net): add Framed ECIES implementation (#80)
* feat(net): add ecies crate

* cargo fmt

* add hex-literal and proptest to dev-dependencies

 * adds std feature to reth-rlp

* document util

* document more

* chore: allow missing docs in ecies/algorith.rs

* feat(ecies): improve error handling

remove anyhow and strictly type all errors

* refactor(ecies): movem ingress/egress to lib.rs

* chore(ecies): allow missing docs in mac

* chore(ecies): cleanup utils

* refactor(ecies): move ECIES Codec to separate file

* refactor(ecies): rename proto to stream

* add test scaffold

* implement server/client read/write test

* chore: clippy / fmt

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-10-15 18:20:17 -07:00
92e64ed71f include apache licenced fastrlp as reth-rlp (#63)
* include apache licenced fastrlp as reth-rlp
* fmt
* Include LICENCE and README for reth-rlp
2022-10-14 12:43:21 +02:00
ae5935e6b2 feat: reth binary and parsing of eth chain tests (#38)
* Scaffolding for reth test binary. wip for blockchain tests

* wip models for chain json tests

* reth binary and chain test

* fmt,clippy

* Update bin/reth/src/lib.rs

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

* Update bin/reth/src/lib.rs

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

* Update bin/reth/src/test_eth_chain/mod.rs

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

* Update bin/reth/src/test_eth_chain/mod.rs

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

* Update bin/reth/src/test_eth_chain/mod.rs

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

* Update bin/reth/src/test_eth_chain/models.rs

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

* Update bin/reth/src/test_eth_chain/models.rs

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

* Update bin/reth/src/test_eth_chain/mod.rs

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

* Update bin/reth/src/test_eth_chain/runner.rs

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

* Move JsonU256 to primitives

* fmt

* Use eyre

* nits

Co-authored-by: Bjerg <onbjerg@users.noreply.github.com>
2022-10-12 17:43:01 +02:00
d7c8b70cc3 feat: add eth-wire (#20) 2022-10-10 09:46:02 -07:00
791ee2839f feat(txpool): initial sketch (#7) 2022-10-07 22:00:19 +02:00
074f452275 Small skeleton for executor abstraction (#14) 2022-10-06 16:01:23 +02:00
bc30cbce61 Skeleton primitives and interface crate (#13)
* wip interface primitives

* wip

* Integrate it inside rpc- crates

* fmt

* move tx to mod.rs

* Add interfaces, executor to toml

* Added nits, comments fix
2022-10-06 14:48:57 +02:00
849e8ae518 feat: add db crate (#9) 2022-10-03 16:13:42 +02:00
eeda03a3f3 feat: add missing eth_ functions 2022-10-03 15:06:58 +02:00
7c35e68f8e Merge branch 'master' into matt/rpc-support 2022-10-03 14:56:38 +02:00
6868dda544 feat: basic staged sync crate (#6)
* feat: basic staged sync crate

* refactor: rename to `reth-stages`

* feat: remove eyre

* feat: impl `Error` for `StageError`

* chore: bump cargo lock

* chore: nits

* docs: clarify unwind

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-10-03 14:40:50 +02:00
5e0315cce0 move crates into net 2022-10-03 13:40:26 +02:00
2717dd643a feat(rpc): add rpc crates 2022-09-30 20:20:07 +02:00
6ff7cf5a74 feat: add p2p crate (#4)
* feat: add p2p crate

* move p2p to net subfolder

* add lib.rs and Cargo.toml to net

* remove net crate, use explicit names in workspace
2022-09-30 09:27:52 -07:00
4dc32e9f76 feat: add core crate (#3)
* feat: add core crate

* rename primitives

* Update crates/primitives/Cargo.toml

-.-

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

Co-authored-by: rakita <rakita@users.noreply.github.com>
2022-09-27 10:19:01 -07:00
57a2b2d1d4 feat: add crate template 2022-09-22 20:16:15 +02:00
978527367f chore: init 2022-09-19 19:25:12 +02:00