Skip to content

Add wallet scan support after UTXO snapshot bootstrap - #2424

Open
a-shannon wants to merge 15 commits into
ergoplatform:masterfrom
a-shannon:fix/utxo-snapshot-wallet-scan
Open

Add wallet scan support after UTXO snapshot bootstrap#2424
a-shannon wants to merge 15 commits into
ergoplatform:masterfrom
a-shannon:fix/utxo-snapshot-wallet-scan

Conversation

@a-shannon

@a-shannon a-shannon commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

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.

@a-shannon
a-shannon force-pushed the fix/utxo-snapshot-wallet-scan branch from 13a75ba to fc712f6 Compare September 3, 2026 22:46
@a-shannon
a-shannon marked this pull request as draft September 7, 2026 01:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement UTXO set scan

2 participants