Expand description
Event streams across a checkpoint boundary.
Traits§
- Acknowledged
Messages MayBe Forgotten - Lemma (A sender may forget messages its recipient has checkpointed). A chain’s checkpoint dump names only those of its blocks that still carry outgoing bundles no recipient has acknowledged consuming. Acknowledged bundles are dropped, and no future incarnation of any recipient can ask for them again.
- Checkpoint
Preserves Blob Availability - Lemma (A checkpoint leaves blob availability unchanged). Checkpointing neither strands a blob the chain can still reach nor silently requires one a bootstrapping node cannot obtain.
- Checkpoint
Preserves Consumption Boundary - Lemma (A checkpoint moves the consumption boundary and nothing else about messages). Restoring a chain from a checkpoint changes which incoming bundles are still retained, never which have been consumed. Bundles below the restored cursor are already reflected in the restored execution state and are ignored on arrival and on consumption; bundles at or above it are queued, delivered and consumed exactly as they would have been with no checkpoint at all.
- Checkpoint
Recertifies Referenced Blocks - Lemma (A checkpoint re-certifies the blocks its outboxes still reference). The older blocks a chain still owes delivery from remain acceptable to a node that has never seen them, even after the committee that signed them has been removed.
- Checkpoint
Restores Execution State - Lemma (A checkpoint restores exactly the execution state it captured). Applying a checkpoint’s blobs reproduces the chain’s execution state as it stood immediately before the checkpoint block, in full.
- Checkpoint
Summarizes User Streams - Lemma (A checkpoint summarizes every user stream that published since the previous one). At a checkpoint, each application holding an event stream that has published since the previous checkpoint is given the chance to replace that stream’s history with a summary, and no system stream is ever in that position.
- Event
Floor Tracks Checkpoints - Invariant (A stream’s readable floor is its first index since the last checkpoint). For
every event stream of a chain,
StreamCounts::first_indexis the index of the first event published to that stream since the most recent checkpoint, and the indices from there up toStreamCounts::next_indexare contiguous. Events below the floor may have been pruned and are unavailable to a node that bootstrapped from that checkpoint; events at or above it are untouched by checkpointing.