Add wallet scan support after UTXO snapshot bootstrap - #2424
Open
a-shannon wants to merge 15 commits into
Open
Conversation
a-shannon
force-pushed
the
fix/utxo-snapshot-wallet-scan
branch
from
August 15, 2026 16:52
e3bf32f to
273cefe
Compare
…-restart-recovery Preserve prepared UTXO snapshot state on restart
a-shannon
force-pushed
the
fix/utxo-snapshot-wallet-scan
branch
from
September 3, 2026 22:46
13a75ba to
fc712f6
Compare
This was referenced Sep 4, 2026
a-shannon
marked this pull request as draft
September 7, 2026 01:31
a-shannon
marked this pull request as ready for review
September 7, 2026 02:45
This was referenced Sep 8, 2026
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.
Closes #2034.
This adds wallet-side UTXO snapshot scanning for nodes bootstrapped from a UTXO set snapshot. #2072 provided historical reference; this is a fresh implementation.
The scanner iterates AVL subtrees in manifest order with resume support, bounded batch reads and error propagation. It persists wallet-local scan status and imports snapshot chunks into the registry without inventing transactions from before the snapshot. Normal full-block wallet scanning pauses while snapshot scanning is pending, then resumes after the snapshot height. A wallet rescan under UTXO bootstrap resets this scan rather than attempting to read pruned blocks.
Coverage includes AVL iteration, scan logic, status persistence, registry chunks, service integration, scanner failures and actor catch-up. Independent source and integration reviews are complete. #2512 addresses a separate Digest recovery checkpoint correction.
This branch also composes the shared summary/cache and body-download changes from #2511; review and integrate that dependency first. Backward extension through retained ancestors preserves the forward ceiling anchored to the best full block, existing pruning and filtering, request-count logic and terminal-height handling. Snapshot recovery helpers and suppression of ordinary block downloads during pending snapshot bootstrap are preserved.
This snapshot-bootstrap variant passed 12 focused local tests: 11 scheduling properties and one history consumer. Independent source and composition review covers the variant's existing bootstrap guard.
CI support adds bounded phase and progress observations to the existing Digest startup fixture under its shared ten-minute deadline. New diagnostic requests have finite transport timeouts; early miner waits retain their existing retry behavior. Rollback fixtures retain their original height targets, strict full-block equality and time budgets, with isolation controls. Diagnostic and fixture results do not establish the causes of earlier timeouts.
Current CI
Commit
bf126c845067c8e1d4e8dab9338124db4a03ae98: workflow run 34144621330. All eight checks passed, including node and integration tests and wallet/core tests across the three Scala versions.