pub struct Finalization<S: Scheme, D: Digest> {
pub proposal: Proposal<D>,
pub certificate: S::Certificate,
}Expand description
Aggregated finalization certificate recovered from finalize votes. When a proposal is finalized, it becomes the canonical block for its view.
Some signing schemes embed an additional randomness seed in the certificate (used for
leader rotation), it can be accessed via Scheme::seed.
Fields§
§proposal: Proposal<D>The proposal that has been finalized.
certificate: S::CertificateThe recovered certificate for the proposal.
Implementations§
Source§impl<S: Scheme, D: Digest> Finalization<S, D>
impl<S: Scheme, D: Digest> Finalization<S, D>
Sourcepub fn from_finalizes<'a>(
scheme: &S,
finalizes: impl IntoIterator<Item = &'a Finalize<S, D>>,
) -> Option<Self>
pub fn from_finalizes<'a>( scheme: &S, finalizes: impl IntoIterator<Item = &'a Finalize<S, D>>, ) -> Option<Self>
Builds a finalization certificate from finalize votes for the same proposal.
Trait Implementations§
Source§impl<S: Clone + Scheme, D: Clone + Digest> Clone for Finalization<S, D>where
S::Certificate: Clone,
impl<S: Clone + Scheme, D: Clone + Digest> Clone for Finalization<S, D>where
S::Certificate: Clone,
Source§fn clone(&self) -> Finalization<S, D>
fn clone(&self) -> Finalization<S, D>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<S: Debug + Scheme, D: Debug + Digest> Debug for Finalization<S, D>where
S::Certificate: Debug,
impl<S: Debug + Scheme, D: Debug + Digest> Debug for Finalization<S, D>where
S::Certificate: Debug,
Source§impl<S: Scheme, D: Digest> EncodeSize for Finalization<S, D>
impl<S: Scheme, D: Digest> EncodeSize for Finalization<S, D>
Source§fn encode_size(&self) -> usize
fn encode_size(&self) -> usize
Returns the encoded size of this value (in bytes).
Source§impl<S: Scheme, D: Digest> Read for Finalization<S, D>
impl<S: Scheme, D: Digest> Read for Finalization<S, D>
impl<S: Scheme, D: Digest> Eq for Finalization<S, D>
Auto Trait Implementations§
impl<S, D> Freeze for Finalization<S, D>
impl<S, D> RefUnwindSafe for Finalization<S, D>
impl<S, D> Send for Finalization<S, D>
impl<S, D> Sync for Finalization<S, D>
impl<S, D> Unpin for Finalization<S, D>
impl<S, D> UnwindSafe for Finalization<S, D>
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<X, U> DecodeRangeExt<X> for U
impl<X, U> DecodeRangeExt<X> for U
Source§fn decode_range(
buf: impl Buf,
range: impl RangeBounds<usize>,
) -> Result<Self, Error>
fn decode_range( buf: impl Buf, range: impl RangeBounds<usize>, ) -> Result<Self, Error>
Decodes a value using only a range configuration. Read more
Source§impl<T> Encode for Twhere
T: Write + EncodeSize,
impl<T> Encode for Twhere
T: Write + EncodeSize,
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>
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>
Converts
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>
Converts
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<X, U> ReadRangeExt<X> for U
impl<X, U> ReadRangeExt<X> for U
Source§fn read_range(
buf: &mut impl Buf,
range: impl RangeBounds<usize>,
) -> Result<Self, Error>
fn read_range( buf: &mut impl Buf, range: impl RangeBounds<usize>, ) -> Result<Self, Error>
Reads a value using only a range configuration. Read more