go-ethereum/core/state/partial
CPerezz 9f52b96b6c
core: implement partial state BAL processing (Phase 3)
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.
2026-04-17 11:10:27 +02:00
..
filter.go core/state: add hash-based filter methods and NewPartialStateSync 2026-04-17 11:09:19 +02:00
filter_test.go core/state: add hash-based filter methods and NewPartialStateSync 2026-04-17 11:09:19 +02:00
history.go eth: add partial statefulness foundation (Phase 1) 2026-04-17 11:09:19 +02:00
state.go core: implement partial state BAL processing (Phase 3) 2026-04-17 11:10:27 +02:00
state_test.go core: implement partial state BAL processing (Phase 3) 2026-04-17 11:10:27 +02:00