mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-05 19:43:47 +00:00
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. |
||
|---|---|---|
| .. | ||
| api.go | ||
| beacondevsync.go | ||
| beaconsync.go | ||
| downloader.go | ||
| downloader_test.go | ||
| events.go | ||
| fetchers.go | ||
| fetchers_concurrent.go | ||
| fetchers_concurrent_bodies.go | ||
| fetchers_concurrent_receipts.go | ||
| metrics.go | ||
| peer.go | ||
| queue.go | ||
| queue_test.go | ||
| resultstore.go | ||
| skeleton.go | ||
| skeleton_test.go | ||
| statesync.go | ||
| syncmode.go | ||
| testchain_test.go | ||