Expand description
Durable anchor-checkpoint retention: the block-height grid on which note commitment tree checkpoints are kept alive past the ordinary pruning window.
A ZIP 318 pool migration proves each pool-crossing transfer against the note commitment tree state at a BOUNDARY block rather than at the chain tip, so that many wallets’ transfers share a small set of common anchors instead of each pinning a unique recent block. A transfer is proved long after its boundary has passed, so the boundary’s checkpoint must still be present in the wallet’s tree at proving time — ordinary checkpoint pruning would have discarded it. Retention exempts the boundary checkpoints from that pruning.
AnchorRetentionInterval defines the grid, and owns the arithmetic that decides whether a
height is a boundary. The migration scheduler MUST draw its anchors from the same grid the
wallet retains: a transfer anchored to a height the wallet did not retain cannot be proved. See
WalletRead::anchor_retention_interval, the accessor through which a migration reads the grid
back off the wallet that maintains it.
Structs§
- Anchor
Retention - The anchor-retention policy in force while a range of blocks is being added to the wallet: the set of grids whose boundaries are retained, the block spacing that places those boundaries, and the height from which retention applies.
- Anchor
Retention Interval - The interval, in reference blocks, between the durable anchor checkpoints a wallet retains.
- Pool
Migration Params - The ZIP 318 pool-migration parameters in force for a particular wallet: the specified values, with the anchor bucket grid taken from the grid that wallet actually retains, on the block spacing of the wallet’s network.