pub struct GrandpaJustification<Header: HeaderT> {
pub round: u64,
pub commit: Commit<Header>,
pub votes_ancestries: Vec<Header>,
}
Expand description
A GRANDPA justification for block finality, it includes a commit message and an ancestry proof including all headers routing all precommit target blocks to the commit target block. Due to the current voting strategy the precommit targets should be the same as the commit target, since honest voters don’t vote past authority set change blocks.
This is meant to be stored in the db and passed around the network to other nodes, and are used by syncing nodes to prove authority set handoffs.
Fields§
§round: u64
§commit: Commit<Header>
§votes_ancestries: Vec<Header>
Trait Implementations§
source§impl<Header: Clone + HeaderT> Clone for GrandpaJustification<Header>
impl<Header: Clone + HeaderT> Clone for GrandpaJustification<Header>
source§fn clone(&self) -> GrandpaJustification<Header>
fn clone(&self) -> GrandpaJustification<Header>
Returns a copy 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<Header: HeaderT> Decode for GrandpaJustification<Header>where
Commit<Header>: Decode,
Vec<Header>: Decode,
impl<Header: HeaderT> Decode for GrandpaJustification<Header>where Commit<Header>: Decode, Vec<Header>: Decode,
source§impl<Header: HeaderT> Encode for GrandpaJustification<Header>where
Commit<Header>: Encode,
Vec<Header>: Encode,
impl<Header: HeaderT> Encode for GrandpaJustification<Header>where Commit<Header>: Encode, Vec<Header>: Encode,
source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy )
Convert self to a slice and append it to the destination.
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
If possible give a hint of expected size of the encoding. Read more
source§fn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> Rwhere F: FnOnce(&[u8]) -> R,
Convert self to a slice and then invoke the given closure with it.
source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
source§impl<Header: PartialEq + HeaderT> PartialEq<GrandpaJustification<Header>> for GrandpaJustification<Header>
impl<Header: PartialEq + HeaderT> PartialEq<GrandpaJustification<Header>> for GrandpaJustification<Header>
source§fn eq(&self, other: &GrandpaJustification<Header>) -> bool
fn eq(&self, other: &GrandpaJustification<Header>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl<Header> TypeInfo for GrandpaJustification<Header>where
Commit<Header>: TypeInfo + 'static,
Vec<Header>: TypeInfo + 'static,
Header: HeaderT + TypeInfo + 'static,
impl<Header> TypeInfo for GrandpaJustification<Header>where Commit<Header>: TypeInfo + 'static, Vec<Header>: TypeInfo + 'static, Header: HeaderT + TypeInfo + 'static,
impl<Header: HeaderT> EncodeLike<GrandpaJustification<Header>> for GrandpaJustification<Header>where Commit<Header>: Encode, Vec<Header>: Encode,
impl<Header: Eq + HeaderT> Eq for GrandpaJustification<Header>
impl<Header: HeaderT> StructuralEq for GrandpaJustification<Header>
impl<Header: HeaderT> StructuralPartialEq for GrandpaJustification<Header>
Auto Trait Implementations§
impl<Header> RefUnwindSafe for GrandpaJustification<Header>where Header: RefUnwindSafe, <Header as Header>::Hash: RefUnwindSafe, <Header as Header>::Number: RefUnwindSafe,
impl<Header> Send for GrandpaJustification<Header>
impl<Header> Sync for GrandpaJustification<Header>
impl<Header> Unpin for GrandpaJustification<Header>where Header: Unpin, <Header as Header>::Hash: Unpin, <Header as Header>::Number: Unpin,
impl<Header> UnwindSafe for GrandpaJustification<Header>where Header: UnwindSafe, <Header as Header>::Hash: UnwindSafe, <Header as Header>::Number: UnwindSafe,
Blanket Implementations§
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
source§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere T: Decode,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
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, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for Twhere Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T
. Read moresource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T
.