pub enum CommitmentFallback {
Wait,
FetchByRound {
round: Round,
},
FetchByCommitment {
height: Height,
},
}Expand description
How a commitment-keyed block subscription should behave when the block is missing locally.
Variants§
Wait
Wait for local availability only.
Use this for pending candidate proposal data before notarization.
FetchByRound
Request the notarized proposal for round from peers.
Use this when the caller knows a trusted notarized or certified round and commitment but not the proposal height, such as proposal construction, verification of a known child, or certification of a notarized candidate. Do not infer height from the finalized tip or another block: proposals may build on a certified parent that is not finalized locally yet, and an unverified child may lie about its height.
The returned block is heightable once decoded, but that is too late for the in-flight resolver key or retention bound.
FetchByCommitment
Request the exact commitment from peers and prune the request at
height.
Use this only when no certified parent round is available. The caller must have a locally validated resolver retention bound. Examples include repairing a finalized gap or walking an accepted ancestry stream. Do not use it for a candidate’s immediate parent when the consensus context supplies the parent round.
The height is not sent to peers. It is a local hint for request retention. It is not part of response validity. A fetched block is delivered if its commitment matches. A matching block above this bound is delivered but not cached.
Trait Implementations§
Source§impl Clone for CommitmentFallback
impl Clone for CommitmentFallback
Source§fn clone(&self) -> CommitmentFallback
fn clone(&self) -> CommitmentFallback
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for CommitmentFallback
Source§impl Debug for CommitmentFallback
impl Debug for CommitmentFallback
impl Eq for CommitmentFallback
Source§impl From<DigestFallback> for CommitmentFallback
impl From<DigestFallback> for CommitmentFallback
Source§fn from(fallback: DigestFallback) -> Self
fn from(fallback: DigestFallback) -> Self
Source§impl PartialEq for CommitmentFallback
impl PartialEq for CommitmentFallback
impl StructuralPartialEq for CommitmentFallback
Auto Trait Implementations§
impl Freeze for CommitmentFallback
impl RefUnwindSafe for CommitmentFallback
impl Send for CommitmentFallback
impl Sync for CommitmentFallback
impl Unpin for CommitmentFallback
impl UnsafeUnpin for CommitmentFallback
impl UnwindSafe for CommitmentFallback
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more