reth icon indicating copy to clipboard operation
reth copied to clipboard

Tracking: Full sync high-level roadmap

Open akirillo opened this issue 2 years ago • 0 comments

Our current priority is to achieve full sync from genesis.

The state of progress is as follows:

  • [x] Generic headers & block bodies downloaders
  • [x] Generic database & codec abstractions (#66)
  • [x] Generic mempool (#36)
  • [x] P2P stack (#64)
  • [x] EVM executor (#72)
  • [x] Core syncing stages (headers, bodies, senders, execution) (#40)
  • [x] Fuzzing & benchmarking foundations
  • [ ] PoW / PoS consensus verification (#72) (#39)
  • [ ] Execution verification (statetests) (#72) (#39)
  • [ ] CLI for each component in the stage loop
  • [ ] Testing P2P functionality during tracing at the tip & gossiping mempool transactions
  • [ ] Testing JSON-RPC implementation for completeness & performance (#37)

Beyond full sync, we intend to begin by experimenting with optimizing disk I/O under random reads & writes. The following are some areas we intend to explore:

  • Pre-fetching data to maintain a warm cache
  • Statically analyzing blocks to predict storage accesses
  • Pipelining / batching EVM operations

Finally, an ongoing and parallel workstream is maintaining high quality documentation around each of the crates and the project as a whole, including the Reth Book, which is intended to be an educational resource for onboarding Ethereum node developers to Reth.

For a more detailed view on all development threads, you can try filtering for tracking issues.

akirillo avatar Dec 06 '22 00:12 akirillo