go-ethereum/eth/downloader
rjl493456442 81ab8b594e
eth/downloader: disable snap mode after committing pivot block (#35402)
This PR improves the sync mode management, disabling the snap mode once 
the pivot block is committed. 

Originally the mode will only be flipped from snap to full once the entire sync 
cycle is completed. However, it's theoretically possible to cancel the sync cycle
after committing the pivot but before inserting the remaining blocks. It drags
the following sync cycle back to the snap mode.

The snap mode should only be used if the head state is missing and unrecoverable. 
Enabling the snap mode for multiple times should be strictly prevented.

What's more, it brings a fix to pivot block management, that once the
pivot block is committed, the pivot block marker should be no longer advanced,
preventing the situation that the real pivot state is below the pivot marker.
2026-07-23 14:30:20 +08:00
..
api.go eth/downloader: fix test panic (#35215) 2026-06-25 13:10:54 +02:00
beacondevsync.go eth/downloader: keep current syncmode in downloader only (#33157) 2025-12-08 22:49:57 +01:00
beaconsync.go eth/downloader: disable snap mode after committing pivot block (#35402) 2026-07-23 14:30:20 +08:00
downloader.go eth/downloader: disable snap mode after committing pivot block (#35402) 2026-07-23 14:30:20 +08:00
downloader_test.go core: add debug log and repair the missing hash and receipts (#35190) 2026-06-23 14:46:38 +08:00
events.go eth,node: replace the deprecated TypeMux with Feed (#32585) 2026-05-08 10:12:46 +08:00
fetchers.go cmd, eth, internal: introduce debug_sync (#32177) 2025-07-28 14:57:45 +08:00
fetchers_concurrent.go eth/downloader: drop peers sending invalid bodies or receipts (#34745) 2026-04-30 17:55:26 +02:00
fetchers_concurrent_bodies.go eth/protocols/eth, eth/protocols/snap: delayed p2p message decoding (#33835) 2026-02-15 21:21:16 +08:00
fetchers_concurrent_receipts.go eth: implement EIP-7975 (eth/70 - partial block receipt lists) (#33153) 2026-03-30 15:17:37 +02:00
metrics.go eth: reserve peer slot for usable snap peer (#35180) 2026-06-17 09:55:36 +08:00
peer.go eth: implement EIP-7975 (eth/70 - partial block receipt lists) (#33153) 2026-03-30 15:17:37 +02:00
queue.go eth/downloader: use batch index in deliver reconstruct (#34870) 2026-05-05 12:41:22 +02:00
queue_test.go eth/protocols/eth, eth/protocols/snap: delayed p2p message decoding (#33835) 2026-02-15 21:21:16 +08:00
resultstore.go core, eth/downloader: implement pruning mode sync (#31414) 2025-04-03 15:16:35 +02:00
skeleton.go core: add debug log and repair the missing hash and receipts (#35190) 2026-06-23 14:46:38 +08:00
skeleton_test.go core: add debug log and repair the missing hash and receipts (#35190) 2026-06-23 14:46:38 +08:00
statesync.go core, eth/protocols/snap, eth/downloader: snap/2 sync logic (#34626) 2026-06-11 14:45:07 +08:00
syncmode.go eth/downloader: disable snap mode after committing pivot block (#35402) 2026-07-23 14:30:20 +08:00
testchain_test.go core: consolidate BlockChain constructor options (#31925) 2025-06-19 12:21:15 +02:00