reth
reth copied to clipboard
Tracking: Eth chain tests
Run all chain tests from eth/test: https://github.com/ethereum/tests/tree/develop/BlockchainTests This is one of two ways to check if a client is consistent with ethereum. (Second one is running on mainnet)
Run test
- [x] Parse json files: https://github.com/foundry-rs/reth/pull/38
- [ ] Transfer json models to
primitivesand load pre-state to mocked database. - [ ] Run on stages (maybe modify it if needed) and prepare checks (roots,hashes) that are going to be optional/disabled at first.
Mocking
For running tests in stages we wouldn't need inmemory database that would allow us to do that.
- [ ] Define and do cleanup on talked db abstraction.
- [ ] Integrate abstraction inside stages.
- [ ] Mock Database/Trasanction interface with
BTreeMap.
We decided to not do mocking but to just use tempdir mdbx instance.
And running all chain tests is blocked until all stages and pipeline are finished.
I assume this is completed as well, given we run the tests in CI now.