You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The wallet's core-chain committed/synced height is not reliably durable across ABRUPT app terminations (crash, force-kill). On the next launch the SPV filter scan floor collapses to max(birthHeight, header checkpoint floor), forcing a full filter re-scan of millions of blocks — and, before rust-dashcore#893, combining with a filter-storage island (rust-dashcore#894) into a hard startup crash-loop.
Evidence (device logs, testnet, same shape observed on mainnet):
PersistentWallet.syncedHeight today holds 2504884 — the value is persisted eventually, so this is about WHEN it is stamped and/or re-applied.
Restarts following abrupt kills collapsed the floor (two observed); the restart following a long healthy session resumed correctly at committed+1 (scan_start=2505047).
Sync-height persistence cadence in rs-platform-wallet / the Swift persister: the height appears to be stamped on some pulse or graceful path that abrupt terminations miss, and/or the load path only applies it under certain conditions. Needs a trace of where syncedHeight is written (which event, how often) and where the reloaded ManagedWalletInfo's committed height is seeded from on restore.
Impact
Full filter re-scan (observed: 2.3M filters) on every unlucky restart — user-visible "sync starts over" / chain-stall-like behavior.
Problem
The wallet's core-chain committed/synced height is not reliably durable across ABRUPT app terminations (crash, force-kill). On the next launch the SPV filter scan floor collapses to
max(birthHeight, header checkpoint floor), forcing a full filter re-scan of millions of blocks — and, before rust-dashcore#893, combining with a filter-storage island (rust-dashcore#894) into a hard startup crash-loop.Evidence (device logs, testnet, same shape observed on mainnet):
PersistentWallet.syncedHeighttoday holds 2504884 — the value is persisted eventually, so this is about WHEN it is stamped and/or re-applied.scan_start=2505047).Suspected area
Sync-height persistence cadence in rs-platform-wallet / the Swift persister: the height appears to be stamped on some pulse or graceful path that abrupt terminations miss, and/or the load path only applies it under certain conditions. Needs a trace of where
syncedHeightis written (which event, how often) and where the reloadedManagedWalletInfo's committed height is seeded from on restore.Impact
Related: rust-dashcore#892 (crash), rust-dashcore#893 (self-heal fix, merged pin pending), rust-dashcore#894 (island-manufacturer T1 half).
🤖 Generated with Claude Code