go-ethereum/eth
CPerezz b82f9fea07
eth/protocols/snap: implement partial sync mode with skip markers
Adds partial sync mode to the snap syncer that filters which contracts
have their storage and bytecode synced based on the configured filter.

Key changes:
- Syncer accepts optional ContractFilter for partial mode
- Skip markers (SnapSkipped prefix) track intentionally skipped accounts
- processAccountResponse checks filter before requesting storage/code
- Healing phase uses NewPartialStateSync to respect skip markers
- Helper functions for skip marker persistence (mark/check/delete)

When partial sync is active, only tracked contracts have their storage
synced, reducing sync size from ~1TB+ to ~30-40GB while maintaining
a complete account trie for balance queries.

Part of partial statefulness Phase 2.
2026-04-17 11:09:19 +02:00
..
catalyst eth/catalyst: wire up slotnum for testing_buildBlockV1 (#34721) 2026-04-14 19:01:48 -04:00
downloader eth: wire partial filter through downloader and handler 2026-04-17 11:09:19 +02:00
ethconfig eth: add partial statefulness foundation (Phase 1) 2026-04-17 11:09:19 +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: implement partial sync mode with skip markers 2026-04-17 11:09:19 +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 all: implement eip 7928 block access lists 2026-03-31 17:49:49 -04: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 eth: wire partial filter through downloader and handler 2026-04-17 11:09:19 +02:00
dropper.go eth: fix panic in randomDuration when min equals max (#33193) 2025-11-19 01:54:53 +08:00
handler.go eth: wire partial filter through downloader and handler 2026-04-17 11:09:19 +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_snap.go eth: check snap satelliteness, delegate drop to eth (#22235) 2021-02-02 10:44:36 +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