Skip to content

v4.0.44

Choose a tag to compare

@github-actions github-actions released this 22 Aug 00:14
· 106 commits to develop since this release

A history gap now repairs itself.

When the wallet marked a stretch of blocks as unverified, that marker could never be undone. Your only options were to let a server re-check your addresses — which hands over the whole address list this wallet exists to keep private — or rebuild the entire chain from your wallet's creation date, re-scanning about 24 million blocks to recover twenty thousand.

That permanence was never a safety feature. It was a side effect of having no way to fetch the discarded block headers back, and it fed itself: marking a range unverified told the wallet it no longer needed those heights, so their headers were dropped to save memory, which genuinely made the range unrequestable — proving the original decision right after the fact.

The wallet now re-fetches just the headers underneath the gap and retires the marker as it goes. It anchors to a checkpoint built into the app, so nothing new is trusted and no third party is involved.


Details

  • Headers are fetched a few thousand at a time. Taking a large gap in one bite risks the memory limit discarding the very headers just downloaded.
  • Partial progress is kept. If part of a gap cannot be fetched, the gap shrinks by whatever succeeded rather than the whole attempt failing, and it resumes after an interruption.
  • The warning clears only when a gap is fully repaired. Partial recovery deliberately does not clear it — saying everything is fine while blocks are still unverified would be worse than leaving the warning up.

Known limit: a gap below block 24,000,000 cannot be repaired this way yet.

Full notes: https://digiscope.me/wallet/releases/4.0.44


SHA-256: bf97cabd757912fc0e17f477a19bd446c25549fd05aa0e3c791cc1e3b7c0631f

Download from digiscope.me/downloads/ or install the APK below. Requires Android 8.0+.

Source: https://github.com/JohnnyLawDGB/digibytewallet-android