perf(spv): persist checkpoint-anchoring state across sync sessions
_anchoredUpTo tracked which heights were already proven to hash-chain back to a checkpoint, but only in memory: every app restart re-walked and re-verified the whole header chain from the checkpoint even when the header bytes themselves were already cached on disk, dominating reconnect time on large wallets. Round-trip it through SyncCache like the other sync caches (RawTxHex/VerifiedAt/BlockHeaders).
This commit is contained in:
@@ -134,6 +134,14 @@ public sealed class SyncCache
|
||||
/// subsequent syncs.
|
||||
/// </summary>
|
||||
public Dictionary<int, string>? BlockHeaders { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Checkpoint height → highest height already proven to hash-chain back to it (§7.3).
|
||||
/// Avoids re-walking and re-verifying the whole header chain from the checkpoint on
|
||||
/// every launch: the chain-of-hashes check already done for a height doesn't need
|
||||
/// redoing once headers themselves are cached.
|
||||
/// </summary>
|
||||
public Dictionary<int, int>? AnchoredUpTo { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>Scanned address with its own balance and transaction count (address view).</summary>
|
||||
|
||||
Reference in New Issue
Block a user