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
Roman Krasiuk
82b37b9bfb
feat(sync): sender recovery stage ( #181 )
...
* feat(sync): sender recovery stage
* execute tests
* more tests & cleanup
* senders cont
* clean up & comments
* clippy
* cleanup
* comments
* put back arbitrary dep
2022-11-23 00:22:17 -08:00
joshieDo
027fc2bbf2
feat(db): derive Compact codec ( #177 )
2022-11-22 20:46:45 -08:00
rakita
7e693046c6
feat(executor): Execute block of transactions and return tx patches ( #238 )
...
* wip executor commit
* finish commit, make execution as functions
* rlp block encoding, fixing proof
* Block execution and test example
2022-11-22 22:57:22 +01:00
Bjerg
a523cb7024
feat: finish concurrent body downloader ( #220 )
...
* refactor: remove timeout config from downloader
The timeout should be controlled by the client
implementation.
* feat: downloader request retries
* test: add concurrent body downloader tests
* chore: fmt
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-11-22 21:06:49 +01:00
Matthias Seitz
89ffaf541b
feat: add tracing crate ( #236 )
2022-11-22 20:48:32 +01:00
rakita
09c5c3449e
feat(executor): transaction and receipts verification ( #195 )
...
* transaction verification
* Add providers to interfaces
* add receipt check in executor verify
* Removed receipts, added bloom
* post merge header checks
* fmt clippy
* gas price type removal
* rm leftover
* move consts to contstant.rs
2022-11-16 11:10:36 -08:00
Matthias Seitz
f8fddcdfa4
feat(p2p): integrate txpool in p2p ( #208 )
2022-11-15 22:27:41 +01:00
Matthias Seitz
b60ced1de1
feat: add missing message handling ( #200 )
...
* feat: add missing message handling
* refactor: new block message handling
* feat: add events and commands for transaction handling
* more work in transactions
* chore: silence warnings
2022-11-15 10:34:28 +01:00
Bjerg
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
Matthias Seitz
a77018fe03
chore: bump git deps in Cargo.lock ( #187 )
2022-11-10 19:57:11 +01:00
Matthias Seitz
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
rakita
9e35d58b05
feat(primitive): Signer recovery ( #179 )
...
* feat(consensus): Signer recovery and tx validation
* Signature hash and use seckp256k1 over k256
* use deref_more for transactions
* cleanup and fix for eip1559 hash
* fix hash calculation on decoding
2022-11-09 18:11:32 +01:00
rakita
86ffb4756d
feat(bin): simple reth node command ( #158 )
...
* feat(bin): simple reth node command
* use silent flag
* small chore
2022-11-07 12:10:09 -08:00
Matthias Seitz
5721262740
refactor(net): unify capability types ( #168 )
...
* refactor(net): unify capability types
* refactor(net): unify capability types
2022-11-07 18:04:17 +01:00