Bjerg
ae2fc494c8
test: fix header dl error test ( #441 )
2022-12-14 17:32:26 +02:00
Georgios Konstantopoulos
d5d876b286
fix(headers-stage): do not exit stage on downloader error ( #439 )
...
* fix: return ctrl to pipeline on header dl error
* chore: adjust log levels
* ecies: improve tag check error granularity
* chore: instrument read_ack/read_auth
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me >
2022-12-14 16:25:54 +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
0xKitsune
df9d14127d
Reth Book - Stages framework/draft ( #360 )
...
* Added framework and start to draft for stages, stopping here to get feedback on approach before pushing forward
* Update README.md
Fixing some wording / grammar.
* Fixing grammar/wording.
* Added note about non-exhaustive stages list, fixed grammar, fixed State exectuion function name, updated language to reflect that the stream yields a SealedHeader and added language to describe that the initial header validation is only a basic validation.
* updated stages chapter, added bodies, senders, execution, next chapter prelude
* typo
* Added line numbers to code snippets for the stages chapter of the reth book
* address reverse header download + other nits
* add note about book hosting
* tweaked wording, formatting
* Address typo "staring"
* Address typo "HeadderDownloader"
* consolidated book.toml
* updating snippets in stages chapter to ignore errors
* template & removed empty fields from book.toml
* addressed build issues, added templating for source code
* only deploy on push to main
* using single quotes in github action if expression
Co-authored-by: Andrew Kirillov <andrew@paradigm.xyz >
Co-authored-by: Andrew Kirillov <20803092+akirillo@users.noreply.github.com >
2022-12-14 10:30:45 +02:00
Roman Krasiuk
2ace52a8dd
feat(sync): add tx hash number mapping ( #417 )
2022-12-13 19:53:16 +02:00
rakita
0fa7d5c29b
bug: Correct nonce validation ( #409 )
...
* feat: Correct nonce validation
* clenup
* Update crates/consensus/src/verification.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-12-13 19:28:05 +02:00
Roman Krasiuk
c6d38f0f6a
fix(sync): commit headers upon threshold ( #406 )
2022-12-13 19:11:05 +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
Roman Krasiuk
0a6ef3b5af
feat(sync): senders commit threshold ( #401 )
2022-12-13 11:23:40 +02:00
rakita
e014eaad33
feat(db): Refactor storage libraries ( #371 )
2022-12-09 23:14:07 -08:00
rakita
4fb3626546
chore: Last PR cleanup, nits ( #353 )
...
* chore: cleanup, tests and nits
* fmt
2022-12-08 11:16:01 +01:00
rakita
d66138e143
feat(execution): Account NotExisting and block reward changesets ( #349 )
2022-12-07 21:10:06 -08:00
Georgios Konstantopoulos
4d718bbf33
s/foundry-rs/paradigmxyz
2022-12-07 00:00:45 -08:00
Roman Krasiuk
449321ddc4
refactor(db): separate transaction indexes from block body ( #326 )
2022-12-06 18:02:04 -08:00
Roman Krasiuk
9628d03871
feat(sync): headers commit threshold ( #296 )
...
* headers stream init
* fix tests
* return header if available regardless of control flow
* proper stream termination & docs
* upd headers stage to consume stream
* adjust response validation for stream
* use cursor.insert for headers
* wrap poll_next in a loop to bypass poking waker
* fix typo
* fix last td lookup
* Apply suggestions from code review
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
* misc
* remove waker ref
* dedup response handling logic
* clippy
* add docs to poll
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
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
Roman Krasiuk
3ac52bae84
chore(sync): unwind tx by latest available ( #280 )
2022-11-28 14:49:54 -08:00
Roman Krasiuk
4d708ce8af
chore(sync): basic header response validation ( #276 )
2022-11-28 09:32:46 -08:00
joshieDo
3efc6ee67e
feat(db): Make TransactionSigned compactable ( #252 )
2022-11-27 23:29:30 -08:00
Matthias Seitz
fd840e1c66
refactor: bodies client API ( #257 )
...
* refactor: bodies client API
* chore: fix errors
2022-11-26 10:04:42 +01:00
Roman Krasiuk
5d5b83d575
fix(sync): download error handling ( #260 )
2022-11-25 22:27:53 -08:00
Roman Krasiuk
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
Matthias Seitz
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
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
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
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
Roman Krasiuk
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 f8608654f2 .
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-11-18 17:57:29 -08: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
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
rakita
7ecbe01741
feat(provider): Add StorageProvider impl, table changes ( #172 )
...
* feat(provider): Add StorageProvider impl, table changes
* unwind header numbers by walker (#174 )
* readme, fmt
* fix tests
* Update crates/interfaces/src/provider/db_provider/storage.rs
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com >
* Update crates/interfaces/src/provider/db_provider/storage.rs
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com >
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com >
2022-11-08 15:55:45 +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
caad026c70
refactor: rename HeaderLocked to SealedHeader ( #173 )
2022-11-07 21:06:53 +01:00
Roman Krasiuk
9c40f8265b
test(sync): headers stage test runner ( #163 )
...
* refactor headers stage tests
* inline unwind util functions
2022-11-04 08:15:34 -07:00
Roman Krasiuk
f6d3a49d28
feat(sync): stage tx index ( #149 )
...
* init
* feat(sync): tx index stage
* create test runner
* finish tests
* clippy
* cleanup & docs
* add more comments
* revert headers test refactor
* rm unused function
2022-11-04 03:28:18 -07:00
joshieDo
becceb2802
fix(db): add traits Encode/Decode for keys and Compress/Uncompress for values ( #151 )
...
* add UncompressedUint
* add more UncompressedUint keys
* add docs
* split key/value to encode/decode and compress/uncompress traits
* reveert into
* clippy
* rm whitespaces
* remove TODO
* Remove scale encode/decode traits
* decompress
* clippy
Co-authored-by: rakita <dragan0rakita@gmail.com >
2022-11-03 00:02:19 -07:00
Roman Krasiuk
c232a72338
test(stage): headers linear downloader ( #143 )
...
* headers stage linear test
* cleanup unwind
2022-11-02 17:28:44 -07:00
Roman Krasiuk
580c8eb1e4
chore(sync): db integrity error ( #148 )
...
* db integrity error
* rm unused import
2022-10-28 01:29:57 -07:00
Roman Krasiuk
61b8829bdf
feat(sync): headers stage ( #126 )
...
* port headers stage
* clean up, utils & tests
* more tests
* unwind cleanup & tests
* remove unused rand crate
2022-10-25 16:50:01 -07:00
Bjerg
65247ef203
feat: metrics ( #92 )
...
* feat(stages): `stage.progress` metric
* docs: metrics
2022-10-24 15:16:45 +02:00
Georgios Konstantopoulos
a4e505132c
headers(part1) feat(interfaces): introduce implicit trait bounds ( #117 )
...
* feat(ifaces): modify DB GAT to have implicit bounds
https://sabrinajewson.org/blog/the-better-alternative-to-lifetime-gats\#the-better-gats
* test(ifaces): impl new trait for mock
* feat(ifaces): impl db container
we use that downstream to avoid consuming the db transactions
when committing a stage
* fix(test): explicitly define lifetime
* test: ensure can spawn
* test: pls review
* chore: lints/warnings
* feat(db): impl the new gats
* test(db): try to make real db work with gats like in stages
* test(db): make Stage trait take DBContainer
otherwise we cannot call db.commit()
gst
* feat(stages): impl new traits
* chore(db): cleanup tests
* chore: remove unused imports
2022-10-23 23:10:59 -07:00
rakita
483bcdf9ab
feat(db): Database Abstraction ( #101 )
...
* database tx traits
* wip build passes
* Db and tx results
* nightly and db GAT
* Impl tx, wip cursor
* Move Decode to Table Key, working cursor trait
* wip dupsort
* build all Cursor abstraction
* cleanup
* wip cleanup
* old stages
* codecs moved o interface,stages wip
* resolve db ref, it builds
* Add tx commit after execution
* fmt
* Remove sync send restriction
* Add missing rw cursor functions
* Cleanup, added missing cursor fn. rust toolchain
* fmt
* add nightly to ci
* deny dead_code, remove unwrap
* rm printfn, stages fix, bench fix
2022-10-20 08:32:13 -07:00
Bjerg
4790256507
feat: skip/error pipeline events ( #70 )
2022-10-14 14:08:41 +02:00
Bjerg
0d97014f4c
docs: mermaid diagram for pipeline ( #67 )
2022-10-14 13:23:13 +02:00
Bjerg
111c13f12f
test: more staged sync tests ( #49 )
2022-10-11 23:04:07 +02:00
Roman Krasiuk
bbb46216ea
chore: test utils ( #48 )
2022-10-11 20:09:18 +02:00
Roman Krasiuk
5ebfc01338
chore: migrate stages to new db abstractions ( #43 )
...
* migrate
* set block as u64
* linter
* BNum -> BlockNumber
* stage id alias
2022-10-11 19:54:05 +02:00
Bjerg
a8c1eaf140
feat: simplified unwind priority ( #45 )
2022-10-11 18:52:05 +02:00
Georgios Konstantopoulos
bce14b22ce
chore: staged sync cleanup ( #34 )
...
* docs: expand on unwinding
* chore: commit inside run_loop / cleanup run
* chore: instrument unwind via span to make more readable
* chore: address review comments
2022-10-10 19:48:20 -07:00
Bjerg
a759201b40
refactor(stages): split Pipeline::run ( #30 )
2022-10-10 15:52:23 +02:00