Merged
Conversation
This PR fixes block import during Warp sync, which was silently failing due to "Unknown parent" errors - a typical case during Warp sync and the `full_node_warp_sync` test was not detecting such failure. Changes - Relaxed verification for Warp synced blocks: The fix relaxes verification requirements for Warp synced blocks by not performing full verification, with the assumption that these blocks are part of the finalized chain and have already been verified using the provided warp sync proof. - New `BlockOrigin` variants: For improved clarity, two additional `BlockOrigin` items have been introduced: - `WarpSync` - `GapSync` - Gap sync improvements: Warp synced blocks are now skipped during the gap sync block import phase, which required improvements to gap handling when committing the block import operation in the database. - Enhanced testing: The Warp sync zombienet test has been modified to more thoroughly assert both warp and gap sync phases. This PR builds on changes by @sistemd in #9678 --------- Co-authored-by: sistemd <enntheprogrammer@gmail.com> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> (cherry picked from commit b2a4296)
Contributor
|
This pull request is amending an existing release. Please proceed with extreme caution,
Emergency Bypass
If you really need to bypass this check: add |
lrubasze
approved these changes
Mar 4, 2026
### Summary This PR optimizes gap sync bandwidth usage by skipping body requests for non-archive nodes. Bodies are unnecessary during gap sync when the node doesn't maintain full block history, while archive nodes continue to request bodies to preserve complete history. It reduces bandwidth consumption and database size significantly for typical validator/full nodes. Additionally added some gap sync statistics for observability: - Introduced `GapSyncStats` to track bandwidth usage: header bytes, body bytes, justification bytes - Logged on gap sync completion to provide visibility into bandwidth savings --------- Co-authored-by: sistemd <enntheprogrammer@gmail.com> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
While warp syncing a node, I saw some huge stalls. What happens: - During warp sync we store warp proofs - After warp sync we start gap sync - Problem: Once gap sync finishes, node starts looking for displaced leaves from all the warp proof blocks, which was over 2500 in my observed case. This led to a 30minutes stall. In this PR I propose to import the blocks during warp sync with a Disconnected state, which does not add them as leaves. This fixes the downtime. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Contributor
skunert
approved these changes
Mar 5, 2026
Contributor
Decided to backport one PR after another |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport #10373 into
stable2603from lrubasze.This PR is needed for #10752, which allows to significantly optimize DB and network usage when Gap sync is used (bodies are no longer requested). It also reduces gap sync duration.
See the documentation on how to use this bot.