Commit Graph

8915 Commits

Author SHA1 Message Date
6232505b94 fix(net): substract from correct var (#262) 2022-11-26 00:35:51 +01:00
b6d9fe87b9 feat(net): propagate new transactions (#256) 2022-11-25 22:13:20 +01:00
37809ce774 feat(net): add session limits (#253) 2022-11-25 18:56:49 +01:00
6e7928ab84 feat(sync): stage db helper (#240)
* feat(sync): stage db helper

* stagedb cont

* merge stage db & db container

* rename test stage db accessor methods

* clippy

* remove legacy test
2022-11-25 07:12:13 -08:00
fb2861f112 feat(net): integrate HeadersClient (#251)
* refactor: headers client

* chore: rustfmt

* chore(clippy): make clippy happy

* feat(net): integrate HeadersClient

* fix: parse td as U256 with from_little_endian

* conflicts

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-11-25 14:26:43 +01:00
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
2e3c220104 fix: fix flaky test (#250) 2022-11-24 13:26:22 -08:00
a2817881db feat(docs): start goals doc in book (#233)
* started goals doc in book

* typos + elaborating on performance rationale

* Update book/design/goals.md

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-11-24 03:43:30 -08:00
7dc96a0a99 docs: update repo layout (#241)
* docs: update repo layout

* docs: typo

* Update docs/repo/layout.md

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-11-24 03:42:24 -08:00
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