mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-08 16:01:36 +00:00
Implement Block Access List (BAL) processing for partial statefulness per EIP-7928. This enables nodes to update state without re-executing transactions by applying BAL diffs directly to the trie. Key additions: - ApplyBALAndComputeRoot: Core BAL processing with correct commit ordering (storage trie → account Root → account trie) - ProcessBlockWithBAL: Blockchain-level entry point for BAL processing - HandlePartialReorg: Chain reorganization support using BAL history - Comprehensive test coverage (31 tests): * Unit tests for edge cases (storage deletion, EIP-161, buildStateSet) * Blockchain integration tests (ProcessBlockWithBAL, HandlePartialReorg) * Both HashScheme and PathScheme coverage Devnet Testing (2-node setup): - Full node: dev mode with --dev.period 2, creates blocks - Partial node: --partial-state mode, syncs via P2P - Test results: Block sync verified, balance queries match between nodes, state roots consistent. Database size reduction observed for partial node. |
||
|---|---|---|
| .. | ||
| filter.go | ||
| filter_test.go | ||
| history.go | ||
| state.go | ||
| state_test.go | ||