Commit Graph

9356 Commits

Author SHA1 Message Date
78e7fbaee6 ci: book deployment workflow (#242)
* ci: book deployment workflow

* ci: modernize book publish workflow
2022-11-24 03:40:31 -08:00
f4dbeddc97 refactor: rename FetchClient and move to submodule (#245)
* refactor: rename FetchClient and move to submodule

* chore(clippy): make clippy happy
2022-11-24 11:43:05 +01:00
8966daad9d feat(net): reputation system and peer reporting (#239)
* refactor: move to module

* feat(net): reputation system and peer reporting

* be specific in test

* use saturating sub
2022-11-24 10:14:50 +01:00
7c2ee1ba3a ci: fix fuzz tests (#243)
* ci: fix fuzz tests

* ci: move fuzz to own job

* ci: improve fuzz job speed
2022-11-23 21:22:10 +01:00
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
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
027fc2bbf2 feat(db): derive Compact codec (#177) 2022-11-22 20:46:45 -08:00
0f45f16455 test(net): add Testnet implementation for testing (#232)
* test(net): add Testnet implementation for testing

* test(net): add testnet type and test
2022-11-22 19:33:01 -05:00
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
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
89ffaf541b feat: add tracing crate (#236) 2022-11-22 20:48:32 +01:00
4fd1225dd6 chore(txpool): clarify ready terminology (#234) 2022-11-22 13:04:19 -05:00
46e4ad9744 test(net): add active session tests (#230)
* test(net): add active session tests

* more tests
2022-11-22 00:22:43 -05:00
f7c6ae5858 feat(net): impl active session (#219)
* feat(net): impl active stream

* rename fields

* work on active

* feat(net): add disconnect function

* more work on active session

* feat(net): add broadcast message variants

* feat: impl session future

* misc: refactor

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-11-21 11:31:03 +01:00
4936d467c9 test(sync): stage test suite (#204)
* test(sync): stage test suite

* cleanup txindex tests

* nit

* start revamping bodies testing

* revamp body testing

* add comments to suite tests

* fmt

* cleanup dup code

* cleanup insert_headers helper fn

* fix tests

* linter

* switch mutex to atomic

* cleanup

* revert

* test: make unwind runner return value instead of channel

* test: make execute runner return value instead of channel

* Revert "test: make execute runner return value instead of channel"

This reverts commit f8608654f2e4cf97f60ce6aa95c28009f71d5331.

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-11-18 17:57:29 -08:00
ae8f7a2dd6 meta: rename dev dependency package (#225)
* meta: remove unused reth-rlp test package

* meta: rename dev dependency
2022-11-18 13:03:18 -08:00
1767d375de feat(net): add broadcast message variants (#224) 2022-11-18 20:22:29 +01:00
ebd27b6025 feat(net): add disconnect function (#223) 2022-11-18 16:26:49 +01:00
b4098b9558 chore(net): add disconnect reason (#222) 2022-11-17 15:48:50 +01:00
84ef65dfb7 ci: disable patch checks for codecov 2022-11-16 13:43:23 -08:00
842ad8fb9c test(txpool-mock): convert u128 value to u256 2022-11-16 12:18:06 -08:00
331a2dbe8f fix(net): add None disconnect reason on PoS p2p violation 2022-11-16 12:16:28 -08:00
ee7140f91e refactor(net): add dedicated transaction event channel (#214) 2022-11-16 21:06:53 +01:00
09ba65fa75 feat(net): add NetworkMode to enforce POS rules (#215) 2022-11-16 11:42:58 -08:00
814640cccd chore(net): add helper access functions for wrapped stream (#216) 2022-11-16 11:11:47 -08:00
3ffc0da7c8 feat(net): add disconnect reason (#218) 2022-11-16 11:11:34 -08:00
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
75a6d06301 refactor(net): separate Sink and Stream (#217) 2022-11-16 11:10:11 -08:00
bb83d8a528 Revert "chore(txpool): use stabilized pop_last (#213)" (#221)
This reverts commit bdf41d39a8.
2022-11-16 19:41:24 +01:00
11404adf6c chore(txpool): remove hash generics (#211) 2022-11-16 12:19:30 +01:00
bdf41d39a8 chore(txpool): use stabilized pop_last (#213) 2022-11-16 12:19:15 +01:00
6b336c62fb feat: add blog propagation handlers (#205) 2022-11-15 23:33:03 +01:00
f8fddcdfa4 feat(p2p): integrate txpool in p2p (#208) 2022-11-15 22:27:41 +01:00
f0388e4032 refactor: move BlockHashOrNumber to primitives (#203) 2022-11-15 09:44:07 -08:00
391a509443 feat: add FromRecoveredTransaction conversion trait (#207) 2022-11-15 16:24:13 +01:00
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
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
651eed1086 chore(txpool): add PoolError::hash function (#202) 2022-11-14 20:35:08 +01:00
14e97b2c43 chore(txpool): add external transaction helper function (#201) 2022-11-14 20:34:15 +01:00
f1e6639374 feat(net): authenticate sessions (#178)
* Switch stream type of ActiveSession to EthStream

 * Start `StatusBuilder` for initializing the `Status` message required
   for the handshake
 * Add `Hardfork` for `Status` default forkid
 * Add `MAINNET_GENESIS` constant

* finish `StatusBuilder`

* initialize eth streams in session

 * add status, hello, and fork filter to session manager
 * fix status builder example
 * add status and hello to network config
   * will probably remove

* removing status and hello from networkconfig

* move forkid to primitives

* change imports for forkid

* add hardfork to primitives

* remove hardfork and forkid from eth-wire

* fix remaining eth-wire forkid references

* put mainnet genesis in constants, remove NodeId

* replace NodeId with PeerId

 * the only NodeId remaining is inherited from enr
 * PeerId still needs to be documented
 * also run cargo fmt

* replace loop with iter().any()

* ignore missing docs for hardforks

* use correct PeerId for Discv4::bind example test

* document PeerId as secp256k1 public key

* cargo fmt

* temporarily allow too_many_arguments

 * the authenticate and start_pending_incoming_session methods have many
   arguments, we can reconsider the lint or fix the methods at a later
   point
2022-11-14 12:03:05 -05:00
5ca2cab97f refactor: move RequestError from network to interfaces p2p (#197) 2022-11-13 09:46:38 +01:00
139efee599 feat(net): impl peer management (#194) 2022-11-12 08:41:15 +01:00
9575eb89fb ci: fix workflow concurrency control (#191) 2022-11-11 07:46:32 +01:00
2754315e68 chore: omner -> ommer (#192)
* chore: omner -> ommer

* chore: missmatch -> mismatch

* chore: other typos
2022-11-11 07:46:09 +01:00
c13898e199 ci: make codecov less noisy (#193) 2022-11-11 07:45:43 +01:00
1db9a5aed4 ci: NEXTEST_EXPERIMENTAL_FILTER_EXPR env var no longer required (#188) 2022-11-10 22:30:19 +01:00
c43d752929 feat(net): more request handling (#186)
* feat(net): more request handling

* rm uneccessary checks

* rm box
2022-11-10 21:24:47 +01:00
dd4878c0e3 fix: remove broken client feature for pubsub (#189) 2022-11-10 20:12:32 +01:00
a77018fe03 chore: bump git deps in Cargo.lock (#187) 2022-11-10 19:57: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