go-ethereum/core/state/partial
CPerezz c3c4dfd838
core, eth: fix post-sync block processing and BAL type compatibility
Fix the post-sync deadlock where blocks validated via BAL in newPayload
were never written to the database, causing ForkchoiceUpdated to fail
finding them and triggering infinite sync cycles.

Changes:
- Export WriteBlockWithoutState and call it after ProcessBlockWithBAL
  in newPayload, so FCU can find blocks via GetBlockByHash
- Guard SetCanonical against recoverAncestors for partial state nodes
  (they can't re-execute blocks, only apply BAL diffs)
- Auto-disable log indexing when partial state is enabled (no receipts)
- Fix BAL type field accesses to match upstream bal-devnet-2 types
  (StorageChanges, CodeChanges, BalanceChanges, Validate signature)
- Update newPayload signature (BAL now comes from ExecutableData params)
- Add partial sync scripts and documentation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-17 12:04:09 +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, eth: fix post-sync block processing and BAL type compatibility 2026-04-17 12:04:09 +02:00
state_test.go core, eth: fix post-sync block processing and BAL type compatibility 2026-04-17 12:04:09 +02:00