Struct sc_finality_grandpa::GrandpaJustification [−][src]
pub struct GrandpaJustification<Block: BlockT> { /* fields omitted */ }
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.
Implementations
pub fn from_commit<C>(
client: &Arc<C>,
round: u64,
commit: Commit<Block>
) -> Result<GrandpaJustification<Block>, Error> where
C: HeaderBackend<Block>,
pub fn from_commit<C>(
client: &Arc<C>,
round: u64,
commit: Commit<Block>
) -> Result<GrandpaJustification<Block>, Error> where
C: HeaderBackend<Block>,
Create a GRANDPA justification from the given commit. This method assumes the commit is valid and well-formed.
pub fn decode_and_verify_finalizes(
encoded: &[u8],
finalized_target: (Block::Hash, NumberFor<Block>),
set_id: u64,
voters: &VoterSet<AuthorityId>
) -> Result<GrandpaJustification<Block>, ClientError> where
NumberFor<Block>: BlockNumberOps,
pub fn decode_and_verify_finalizes(
encoded: &[u8],
finalized_target: (Block::Hash, NumberFor<Block>),
set_id: u64,
voters: &VoterSet<AuthorityId>
) -> Result<GrandpaJustification<Block>, ClientError> where
NumberFor<Block>: BlockNumberOps,
Decode a GRANDPA justification and validate the commit and the votes’ ancestry proofs finalize the given block.
pub fn verify(
&self,
set_id: u64,
authorities: &AuthorityList
) -> Result<(), ClientError> where
NumberFor<Block>: BlockNumberOps,
pub fn verify(
&self,
set_id: u64,
authorities: &AuthorityList
) -> Result<(), ClientError> where
NumberFor<Block>: BlockNumberOps,
Validate the commit and the votes’ ancestry proofs.
Trait Implementations
Attempt to deserialise the value from input.
Attempt to skip the encoded value from input. Read more
fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
Returns the fixed encoded size of the type. Read more
Convert self to a slice and append it to the destination.
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
Convert self to a slice and then invoke the given closure with it.
fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
impl<Block: PartialEq + BlockT> PartialEq<GrandpaJustification<Block>> for GrandpaJustification<Block> where
Block::Header: PartialEq,
impl<Block: PartialEq + BlockT> PartialEq<GrandpaJustification<Block>> for GrandpaJustification<Block> where
Block::Header: PartialEq,
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
impl<Block: BlockT> EncodeLike<GrandpaJustification<Block>> for GrandpaJustification<Block> where
Commit<Block>: Encode,
Commit<Block>: Encode,
Vec<Block::Header>: Encode,
Vec<Block::Header>: Encode,
Auto Trait Implementations
impl<Block> RefUnwindSafe for GrandpaJustification<Block> where
<Block as Block>::Hash: RefUnwindSafe,
<Block as Block>::Header: RefUnwindSafe,
<<Block as Block>::Header as Header>::Number: RefUnwindSafe,
impl<Block> Send for GrandpaJustification<Block>
impl<Block> Sync for GrandpaJustification<Block>
impl<Block> Unpin for GrandpaJustification<Block> where
<Block as Block>::Hash: Unpin,
<Block as Block>::Header: Unpin,
<<Block as Block>::Header as Header>::Number: Unpin,
impl<Block> UnwindSafe for GrandpaJustification<Block> where
<Block as Block>::Hash: UnwindSafe,
<Block as Block>::Header: UnwindSafe,
<<Block as Block>::Header as Header>::Number: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
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
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub 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
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub 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. Read more
Compare self to key
and return true
if they are equal.
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
type Output = T
type Output = T
Should always be Self
The counterpart to unchecked_from
.
Consume self to return an equivalent value of T
.
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
T: Encode,
impl<'_, T> EncodeLike<&'_ T> for T where
T: Encode,
impl<'_, T> EncodeLike<&'_ mut T> for T where
T: Encode,
impl<T> EncodeLike<Arc<T>> for T where
T: Encode,
impl<T> EncodeLike<Rc<T>> for T where
T: Encode,
impl<T> MaybeDebug for T where
T: Debug,
impl<T> MaybeDebug for T where
T: Debug,