Struct tc_finality_grandpa::GrandpaJustification[][src]

pub struct GrandpaJustification<Block: BlockT> { /* fields omitted */ }

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

impl<Block: BlockT> GrandpaJustification<Block>[src]

pub fn from_commit<C>(
    client: &Arc<C>,
    round: u64,
    commit: Commit<Block>
) -> Result<GrandpaJustification<Block>, Error> where
    C: HeaderBackend<Block>, 
[src]

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
[src]

Decode a GRANDPA justification and validate the commit and the votes’ ancestry proofs finalize the given block.

Trait Implementations

impl<Block: Clone + BlockT> Clone for GrandpaJustification<Block> where
    Block::Header: Clone
[src]

impl<Block: Debug + BlockT> Debug for GrandpaJustification<Block> where
    Block::Header: Debug
[src]

impl<Block: BlockT> Decode for GrandpaJustification<Block> where
    Commit<Block>: Decode,
    Commit<Block>: Decode,
    Vec<Block::Header>: Decode,
    Vec<Block::Header>: Decode
[src]

impl<Block: BlockT> Encode for GrandpaJustification<Block> where
    Commit<Block>: Encode,
    Commit<Block>: Encode,
    Vec<Block::Header>: Encode,
    Vec<Block::Header>: Encode
[src]

impl<Block: BlockT> EncodeLike<GrandpaJustification<Block>> for GrandpaJustification<Block> where
    Commit<Block>: Encode,
    Commit<Block>: Encode,
    Vec<Block::Header>: Encode,
    Vec<Block::Header>: Encode
[src]

impl<Block: Eq + BlockT> Eq for GrandpaJustification<Block> where
    Block::Header: Eq
[src]

impl<Block: PartialEq + BlockT> PartialEq<GrandpaJustification<Block>> for GrandpaJustification<Block> where
    Block::Header: PartialEq
[src]

impl<Block: BlockT> StructuralEq for GrandpaJustification<Block>[src]

impl<Block: BlockT> StructuralPartialEq for GrandpaJustification<Block>[src]

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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CheckedConversion for T[src]

impl<S> Codec for S where
    S: Decode + Encode
[src]

impl<T> DecodeAll for T where
    T: Decode
[src]

impl<T> DecodeLimit for T where
    T: Decode
[src]

impl<T> Downcast for T where
    T: Any

impl<T> DowncastSync for T where
    T: Any + Send + Sync

impl<T> DynClone for T where
    T: Clone
[src]

impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
    T: Encode
[src]

impl<'_, T> EncodeLike<&'_ T> for T where
    T: Encode
[src]

impl<'_, T> EncodeLike<&'_ mut T> for T where
    T: Encode
[src]

impl<T> EncodeLike<Arc<T>> for T where
    T: Encode
[src]

impl<T> EncodeLike<Box<T, Global>> for T where
    T: Encode
[src]

impl<'a, T> EncodeLike<Cow<'a, T>> for T where
    T: ToOwned + Encode
[src]

impl<T> EncodeLike<Rc<T>> for T where
    T: Encode
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> From<T> for T[src]

impl<S> FullCodec for S where
    S: Decode + FullEncode
[src]

impl<S> FullEncode for S where
    S: Encode + EncodeLike<S>, 
[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, Outer> IsWrappedBy<Outer> for T where
    T: From<Outer>,
    Outer: AsRef<T> + AsMut<T> + From<T>, 
[src]

pub fn from_ref(outer: &Outer) -> &T[src]

Get a reference to the inner from the outer.

pub fn from_mut(outer: &mut Outer) -> &mut T[src]

Get a mutable reference to the inner from the outer.

impl<T> KeyedVec for T where
    T: Codec
[src]

impl<T> MaybeDebug for T where
    T: Debug

impl<T> MaybeDebug for T where
    T: Debug

impl<T> MaybeRefUnwindSafe for T where
    T: RefUnwindSafe

impl<T> Member for T where
    T: 'static + Send + Sync + Debug + Eq + PartialEq<T> + Clone
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> SaturatedConversion for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<S, T> UncheckedInto<T> for S where
    T: UncheckedFrom<S>, 
[src]

impl<T, S> UniqueSaturatedInto<T> for S where
    T: Bounded,
    S: TryInto<T>, 
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,