Skip to main content

Module anchor_retention

Module anchor_retention 

Source
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§

AnchorRetention
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.
AnchorRetentionInterval
The interval, in reference blocks, between the durable anchor checkpoints a wallet retains.
PoolMigrationParams
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.