Test Deep Branch¶
Documentation for tests/benchmark/stateful/bloatnet/depth_benchmarks/test_deep_branch.py@8db70f93.
Generate fixtures for these test cases for Amsterdam with:
fill -v tests/benchmark/stateful/bloatnet/depth_benchmarks/test_deep_branch.py --gas-benchmark-values 1
abstract: BloatNet worst-case depth benchmarks for deep SSTORE and SLOAD.
This test implements a worst-case scenario for Ethereum block processing that exploits the computational complexity of Patricia Merkle Trie operations. It uses CREATE2 to deploy contracts at pre-mined addresses with shared prefixes, maximizing trie traversal depth.
Key features:
- Accesses pre-deployed contracts via CREATE2 address derivation
- Each contract has deep storage slots with configurable trie depth
- Includes both a mutating attack(uint256) benchmark and a read-only
getDeepest() benchmark
- Respects Fusaka tx gas limit (16M gas) and fills blocks fully
- Verifies correctness via post-state checks or receipt-status validation
Test parameters: - storage_depth: Depth of storage slots (e.g., 10, 11) - account_depth: Account address prefix sharing depth (e.g., 6, 7)
Contract sources: - Pre-mined assets (depth_.sol, s_acc*.json): https://github.com/CPerezz/worst_case_miner/tree/master/mined_assets
Test Functions Overview¶
| Name | Type | Cases (Amsterdam) | Description |
|---|---|---|---|
test_worst_depth_get_deepest |
benchmark_test | 13 | BloatNet worst-case SLOAD benchmark with deep CREATE2-derived contracts. |
test_worst_depth_stateroot_recomp |
benchmark_test | 13 | BloatNet worst-case SSTORE attack benchmark with pre-deployed contracts. |