This suite provides tools for validating blocks at scale, ensuring Kona + REVM produces identical results to op-geth.
Note
This fork targets Ethscriptions mainnet (chain id 0xeeee). Chain-specific details (genesis,
rollup config, protocol scope) live in ETHSCRIPTIONS_MAINNET.md.
# Validate a single block
./scripts/validate.sh 6
# Validate a range of blocks
./scripts/validate.sh 1000 2000
# Validate with custom parallelism
./scripts/validate.sh 1000 10000 -j 32
# Resume a previous validation run
./scripts/validate.sh 1000000 2000000 -r validation_1000000_2000000_20241210_120000
# Validate against a remote archive node (requires debug_* RPC methods)
L2_RPC=https://mainnet.ethscriptions.com/ ./scripts/validate.sh 2000000
# Compare Ethscriptions derivation output (L1→L2 txs) vs live L2 blocks
L1_RPC=<L1_RPC> \
L2_RPC=https://mainnet.ethscriptions.com/ \
cargo run -p ethscriptions-derivation-compare -- 1999990 2000010
# (Same, via helper script)
./scripts/compare_derivation.sh 1999990 2000010
# Run a small “confidence sampling” suite (derivation + STF across several ranges)
./scripts/verify_ethscriptions_mainnet_sample.shThe validation suite consists of:
validate.sh- Main entry point that automatically selects the appropriate validatorvalidate_block.sh- Single block validationvalidate_blocks_bulk.sh- Simple parallel validation for small ranges (≤100 blocks)validate_blocks_scale.sh- Enterprise-grade validation for large ranges with:- Checkpointing and resume capability
- Real-time progress monitoring and ETA
- Automatic failure threshold detection
- Retry logic for transient failures
- Detailed failure analysis
- Fixture Creation: Uses
execution-fixtureto create a complete state fixture from Geth - Validation: Runs the fixture through Kona's execution engine
- Comparison: Verifies the resulting state root matches Geth's state root
The ethscriptions-derivation-compare example validates the derivation rules (derived payload
transaction bytes) separately from STF execution.
- Process-based parallelism for complete isolation
- Release mode builds for maximum performance
- Typical throughput: 100-500 blocks/minute depending on hardware
- For 1M blocks with 32 parallel jobs: ~33 hours
- Supports
0x7d(Bluebird) deposit transactions - Supports custom chains not present in
kona-registry
This fork relies on patched revm and op-alloy dependencies for 0x7d deposits:
- Default: Uses vendored sources at
vendor/revmandvendor/op-alloy - Optional: Use
./scripts/switch-revm.shand./scripts/switch-op-alloy.shto toggle patches inCargo.toml
The validation suite has been tested with:
- Single block validation (block 6)
- Small-range validation (blocks 5-7, 100-200)
- Scale validation (1000-block ranges) against
https://mainnet.ethscriptions.com/:6725129..67261282000000..2000999