Skip to content

Commit 77b37aa

Browse files
nits
1 parent a53e56c commit 77b37aa

2 files changed

Lines changed: 18 additions & 13 deletions

File tree

consensus/src/marshal/config.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ use commonware_runtime::buffer::paged::CacheRef;
1212
use std::num::{NonZeroU64, NonZeroUsize};
1313

1414
/// Startup anchor for marshal.
15+
///
16+
/// Durable progress from a previous run takes precedence when it already
17+
/// supersedes the configured anchor.
1518
pub enum Start<S: Scheme, C: Digest, B> {
1619
/// Start from the height-zero genesis block.
1720
Genesis(B),

consensus/src/marshal/core/mailbox.rs

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -140,22 +140,23 @@ pub(crate) enum Message<S: Scheme, V: Variant> {
140140
/// A channel signaled once the block is durably stored.
141141
ack: Option<oneshot::Sender<()>>,
142142
},
143-
/// Sets the sync starting point from an already-processed finalization.
143+
/// Attempts to set the sync starting point from an already-processed finalization.
144144
///
145-
/// Marshal verifies the finalization, anchors on its block, prunes below
146-
/// it, then syncs and delivers blocks starting at the floor height + 1.
145+
/// If the verified finalization advances marshal's current floor, marshal
146+
/// anchors on its block, prunes below it, then syncs and delivers blocks
147+
/// starting at the floor height + 1. Stale or superseded floors may be
148+
/// ignored.
147149
///
148150
/// To prune data without changing the sync starting point, use
149151
/// [Message::Prune] instead.
150152
SetFloor {
151153
/// The candidate floor finalization, verified by the actor before use.
152154
finalization: Finalization<S, V::Commitment>,
153155
},
154-
/// Prunes finalized blocks and certificates below the given height.
156+
/// Requests pruning finalized blocks and certificates below the given height.
155157
///
156-
/// Unlike [Message::SetFloor], this does not affect the sync starting point.
157-
/// Callers must only prune at or below marshal's current floor
158-
/// (`last_processed_height`).
158+
/// Unlike [Message::SetFloor], this does not affect the sync starting
159+
/// point. Requests above marshal's current floor are ignored.
159160
Prune {
160161
/// The minimum height to keep (blocks below this are pruned).
161162
height: Height,
@@ -741,10 +742,12 @@ impl<S: Scheme, V: Variant> Mailbox<S, V> {
741742
receiver.await.is_ok()
742743
}
743744

744-
/// Sets the sync starting point from an already-processed finalization.
745+
/// Attempts to set the sync starting point from an already-processed finalization.
745746
///
746-
/// Marshal verifies the finalization, anchors on its block, prunes below
747-
/// it, then syncs and delivers blocks starting at the floor height + 1.
747+
/// If the verified finalization advances marshal's current floor, marshal
748+
/// anchors on its block, prunes below it, then syncs and delivers blocks
749+
/// starting at the floor height + 1. Stale or superseded floors may be
750+
/// ignored.
748751
///
749752
/// To prune data without changing the sync starting point, use
750753
/// [Self::prune] instead.
@@ -753,11 +756,10 @@ impl<S: Scheme, V: Variant> Mailbox<S, V> {
753756
let _ = self.sender.enqueue(Message::SetFloor { finalization });
754757
}
755758

756-
/// Prunes finalized blocks and certificates below the given height.
759+
/// Requests pruning finalized blocks and certificates below the given height.
757760
///
758761
/// Unlike [Self::set_floor], this does not affect the sync starting point.
759-
/// Callers must only prune at or below marshal's current floor
760-
/// (`last_processed_height`).
762+
/// Requests above marshal's current floor are ignored.
761763
pub fn prune(&self, height: Height) {
762764
let _ = self.sender.enqueue(Message::Prune { height });
763765
}

0 commit comments

Comments
 (0)