ethereum / ethereum/execution-specs
Stateful filling refactors & missing feature tracker
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 505
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 116
Description
Tracking suggested features and refactor for PR #2637 .
- [ ] In PR #2637, hive support is added, but the newly created environment doesn't include the stub accounts needed for stateful benchmarks. We could add these accounts to the genesis file so they're imported, like how state-actor (e.g., PR https://github.com/ethereum/state-actor/pull/76) handle the genesis file. This would let us verify the benchmark implementation's correctness (though not performance yet).
- [x] To support ether transfer benchmark introduced in PR #2837, we need to add extra 15K withdrawal starting with specific pk. => PR #2923
- [x] There is no gas bump feature that could control that bump the block gas limit. We only need to support this in perf-devnet-3, as block gas limit in Jochemnet starts at 1G. We also need to investigate into the recent proposal that gives CL full control over the block gas limit, instead of EL. => PR #2923
- [ ] Batch PRC call for `_fetch_receipts` helper in ClientBackend object, this was significantly blocking gas-benchmarks payload generation in the past, for `test_sstore_invariatns` only, it took ~2 hr to complete.
- [ ] There is currently a max batch transaction size, which is 750 txs. When benchmark generate transactions more than this amount (e.g., ether transfer, contract creation benchmark), the framework would build multiple block with max batch tx size, instead of building one single block.
- [ ] Post verification being ignored, but we still need such mechanism for benchmarking (e.g., total gas used comparison, final receipt check and more.).
- [x] Our current approach use `debug_setHead` at the end of the benchmark, so that the next benchmark begins at `start_block` (`snapshot_block` + some global initialization). Based on Jochem's comment, we need to investigate whether it works as expected. In gas-benchmarks, we use FCU to control the rollback. => PR #2923
- [ ] Add necessary metadata information for fixture, including the snapshot block, gas bump block number, sender pool size and more.
- [ ] Handle opcode counting in stateful filler, make benchmarkoor able to consume the opcode count file (related benchmarkoor PR https://github.com/ethpandaops/benchmarkoor/pull/182#issuecomment-4554991482)
Contributor guide
Assessment
This issue has not been assessed yet.