go-ethereum/core/state
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
..
partial core: implement partial state BAL processing (Phase 3) 2026-04-17 11:10:27 +02:00
pruner all: improve ETA calculation across all progress indicators (#32521) 2025-09-01 13:47:02 +08:00
snapshot crypto/keccak: vendor in golang.org/x/crypto/sha3 (#33323) 2026-02-03 14:55:27 -07:00
access_events.go trie, go.mod: remove all references to go-verkle and go-ipa (#33461) 2025-12-30 20:44:04 +08:00
access_events_test.go trie, go.mod: remove all references to go-verkle and go-ipa (#33461) 2025-12-30 20:44:04 +08:00
access_list.go core/state: improve accessList copy (#33024) 2025-10-26 16:13:59 +08:00
bal_state_transition.go core/state: various fixes in EIP-7928 (#34641) 2026-04-03 12:41:45 -04:00
database.go all: implement eip 7928 block access lists 2026-03-31 17:49:49 -04:00
database_code.go all: implement eip 7928 block access lists 2026-03-31 17:49:49 -04:00
database_history.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
dump.go cmd/evm/internal/t8ntool, trie: support for verkle-at-genesis, use UBT, and move the transition tree to its own package (#32445) 2025-11-14 15:25:30 +01:00
iterator.go all: implement eip 7928 block access lists 2026-03-31 17:49:49 -04:00
iterator_test.go core/state: state reader abstraction (#29761) 2024-09-05 13:10:47 +03:00
journal.go all: implement eip 7928 block access lists 2026-03-31 17:49:49 -04:00
metrics.go core/rawdb,state: add preimage miss metric (#31295) 2025-03-07 11:23:19 +01:00
reader.go all: implement eip 7928 block access lists 2026-03-31 17:49:49 -04:00
reader_eip_7928.go core/state: touch BAL on statedb cache (#34684) 2026-04-08 13:20:58 -04:00
reader_eip_7928_test.go core/state: touch BAL on statedb cache (#34684) 2026-04-08 13:20:58 -04:00
reader_stater.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
state_object.go core/state: touch BAL on statedb cache (#34684) 2026-04-08 13:20:58 -04:00
state_object_test.go core/state: using testing.B.Loop (#32658) 2025-09-19 16:57:43 -06:00
state_sizer.go core/state: add bounds check in heap eviction loop (#33712) 2026-01-29 21:08:04 +08:00
state_sizer_test.go core/state: fix incorrect contract code state metrics (#33376) 2025-12-10 11:33:59 +08:00
state_test.go core, consensus/beacon: defer trie resolution (#31725) 2025-06-25 09:42:11 +08:00
statedb.go core/state: touch BAL on statedb cache (#34684) 2026-04-08 13:20:58 -04:00
statedb_fuzz_test.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
statedb_hooked.go all: implement eip 7928 block access lists 2026-03-31 17:49:49 -04:00
statedb_hooked_test.go core: invoke selfdestruct tracer hooks during finalisation (#32919) 2026-01-16 15:10:08 -07:00
statedb_test.go fix some lint errors (TODO: merge this commit into the 7928 changes 2026-03-31 17:49:53 -04:00
stateupdate.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
sync.go core/state: add hash-based filter methods and NewPartialStateSync 2026-04-17 11:09:19 +02:00
sync_test.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
transient_storage.go core/state: improve PrettyPrint function (#32293) 2025-07-30 10:39:03 +08:00
trie_prefetcher.go trie, core/state: introduce trie Prefetch for optimizing preload (#32134) 2025-08-20 21:45:27 +08:00
trie_prefetcher_test.go core/tracing: add code change reason (#32525) 2025-09-02 12:44:47 +02:00