go-ethereum/eth
CPerezz 962e2de6e1
core, eth: restore stateRoot field using atomic.Pointer
Live testing on bal-devnet-2 confirmed that computed roots DO diverge from
header roots. Block 75315 computed root 0xe909c7.. vs header root
0x9acbbe.. — untracked contracts' storage roots in the local trie are from
snap sync time and differ from the actual current roots, even when the
storage root resolver successfully queries peers.

This means subsequent blocks must chain off the computed root (via
partialState.Root()), not the header root (via parent.Root()). Restore
the stateRoot field using atomic.Pointer[common.Hash] instead of the
previous sync.RWMutex for lock-free concurrent access.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-17 12:13:05 +02:00
..
catalyst core, eth: restore stateRoot field using atomic.Pointer 2026-04-17 12:13:05 +02:00
downloader core, eth: fix end-to-end partial state sync pipeline 2026-04-17 12:05:26 +02:00
ethconfig cmd, eth: improve partial state flag documentation and categorization 2026-04-17 12:05:26 +02:00
fetcher eth/fetcher: fix flaky test by improving event unsubscription (#33950) 2026-03-05 11:48:44 +08:00
filters eth/filters: rangeLogs should error on invalid block range (#33763) 2026-03-18 23:31:40 +01:00
gasestimator core: implement eip-7778: block gas accounting without refunds (#33593) 2026-03-04 18:18:18 +08:00
gasprice eth/gasprice: reduce allocations (#33698) 2026-01-28 20:33:04 +01:00
protocols eth/protocols/snap: add stateless peer cooldown for partial state mode 2026-04-17 12:01:43 +02:00
syncer eth/downloader: keep current syncmode in downloader only (#33157) 2025-12-08 22:49:57 +01:00
tracers core: introduce vm.GasBudget 2026-04-08 15:35:49 +02:00
api_admin.go eth: ignore genesis block on importChain (#27956) 2023-08-21 13:32:34 -04:00
api_backend.go ethapi: add partial state awareness to RPC layer (Phase 4) 2026-04-17 11:11:23 +02:00
api_backend_test.go core/txpool: add eip2681 check for incoming transactions (#32726) 2025-09-25 13:15:12 +02:00
api_debug.go eth/tracers/logger: conform structLog tracing to spec (#34093) 2026-03-31 16:02:40 +02:00
api_debug_test.go core: consolidate BlockChain constructor options (#31925) 2025-06-19 12:21:15 +02:00
api_miner.go miner: refactor the miner, make the pending block on demand (#28623) 2024-03-06 14:45:03 +02:00
backend.go core, eth: PR review fixes and remove stateRoot field from PartialState 2026-04-17 12:12:46 +02:00
dropper.go eth: fix panic in randomDuration when min equals max (#33193) 2025-11-19 01:54:53 +08:00
handler.go core, eth: fix end-to-end partial state sync pipeline 2026-04-17 12:05:26 +02:00
handler_eth.go eth/protocols/eth, eth/protocols/snap: delayed p2p message decoding (#33835) 2026-02-15 21:21:16 +08:00
handler_eth_test.go eth: implement EIP-7975 (eth/70 - partial block receipt lists) (#33153) 2026-03-30 15:17:37 +02:00
handler_partial.go core, eth: PR review fixes and remove stateRoot field from PartialState 2026-04-17 12:12:46 +02:00
handler_snap.go core, eth: fix end-to-end partial state sync pipeline 2026-04-17 12:05:26 +02:00
handler_test.go eth: implement EIP-7975 (eth/70 - partial block receipt lists) (#33153) 2026-03-30 15:17:37 +02:00
peer.go eth/protocols/eth: implement eth/69 (#29158) 2025-05-16 17:10:47 +02:00
peerset.go eth: stabilize tx relay peer selection (#31714) 2025-08-28 16:05:54 +02:00
state_accessor.go eth/tracers/logger: conform structLog tracing to spec (#34093) 2026-03-31 16:02:40 +02:00
sync.go miner: add OpenTelemetry spans for block building path (#33773) 2026-03-16 19:24:41 +01:00
sync_test.go eth: implement EIP-7975 (eth/70 - partial block receipt lists) (#33153) 2026-03-30 15:17:37 +02:00