reth
reth copied to clipboard
Tracking: Full sync high-level roadmap
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.