Struct sc_finality_grandpa::GrandpaJustification [−][src]
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]
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,
[src]
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.
Trait Implementations
impl<Block: Clone + BlockT> Clone for GrandpaJustification<Block> where
Block::Header: Clone,
[src]
Block::Header: Clone,
fn clone(&self) -> GrandpaJustification<Block>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<Block: Debug + BlockT> Debug for GrandpaJustification<Block> where
Block::Header: Debug,
[src]
Block::Header: Debug,
impl<Block: BlockT> Decode for GrandpaJustification<Block> where
Commit<Block>: Decode,
Commit<Block>: Decode,
Vec<Block::Header>: Decode,
Vec<Block::Header>: Decode,
[src]
Commit<Block>: Decode,
Commit<Block>: Decode,
Vec<Block::Header>: Decode,
Vec<Block::Header>: Decode,
fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
[src]
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
impl<Block: BlockT> Encode for GrandpaJustification<Block> where
Commit<Block>: Encode,
Commit<Block>: Encode,
Vec<Block::Header>: Encode,
Vec<Block::Header>: Encode,
[src]
Commit<Block>: Encode,
Commit<Block>: Encode,
Vec<Block::Header>: Encode,
Vec<Block::Header>: Encode,
fn encode_to<__CodecOutputEdqy: Output>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
[src]
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
pub fn size_hint(&self) -> usize
[src]
pub fn encode(&self) -> Vec<u8, Global>
[src]
pub fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
[src]
F: FnOnce(&[u8]) -> R,
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]
Commit<Block>: Encode,
Commit<Block>: Encode,
Vec<Block::Header>: Encode,
Vec<Block::Header>: Encode,
impl<Block: Eq + BlockT> Eq for GrandpaJustification<Block> where
Block::Header: Eq,
[src]
Block::Header: Eq,
impl<Block: PartialEq + BlockT> PartialEq<GrandpaJustification<Block>> for GrandpaJustification<Block> where
Block::Header: PartialEq,
[src]
Block::Header: PartialEq,
fn eq(&self, other: &GrandpaJustification<Block>) -> bool
[src]
fn ne(&self, other: &GrandpaJustification<Block>) -> bool
[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,
<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,
<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,
<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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CheckedConversion for T
[src]
pub fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
[src]
Self: TryFrom<T>,
pub fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
[src]
Self: TryInto<T>,
impl<S> Codec for S where
S: Encode + Decode,
[src]
S: Encode + Decode,
impl<T> DecodeAll for T where
T: Decode,
[src]
T: Decode,
impl<T> DecodeLimit for T where
T: Decode,
[src]
T: Decode,
pub fn decode_all_with_depth_limit(limit: u32, input: &[u8]) -> Result<T, Error>
[src]
pub fn decode_with_depth_limit(limit: u32, input: &[u8]) -> Result<T, Error>
[src]
impl<T> DynClone for T where
T: Clone,
[src]
T: Clone,
pub fn __clone_box(&self, Private) -> *mut ()
[src]
impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
T: Encode,
[src]
T: Encode,
impl<'_, T> EncodeLike<&'_ T> for T where
T: Encode,
[src]
T: Encode,
impl<'_, T> EncodeLike<&'_ mut T> for T where
T: Encode,
[src]
T: Encode,
impl<T> EncodeLike<Arc<T>> for T where
T: Encode,
[src]
T: Encode,
impl<T> EncodeLike<Box<T, Global>> for T where
T: Encode,
[src]
T: Encode,
impl<'a, T> EncodeLike<Cow<'a, T>> for T where
T: Encode + ToOwned,
[src]
T: Encode + ToOwned,
impl<T> EncodeLike<Rc<T>> for T where
T: Encode,
[src]
T: Encode,
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
pub fn equivalent(&self, key: &K) -> bool
[src]
impl<T> From<T> for T
[src]
impl<S> FullCodec for S where
S: Decode + FullEncode,
[src]
S: Decode + FullEncode,
impl<S> FullEncode for S where
S: Encode + EncodeLike<S>,
[src]
S: Encode + EncodeLike<S>,
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, Outer> IsWrappedBy<Outer> for T where
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
[src]
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
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]
T: Codec,
impl<T> MaybeDebug for T where
T: Debug,
[src]
T: Debug,
impl<T> MaybeDebug for T where
T: Debug,
[src]
T: Debug,
impl<T> MaybeRefUnwindSafe for T where
T: RefUnwindSafe,
[src]
T: RefUnwindSafe,
impl<T> Member for T where
T: 'static + Clone + PartialEq<T> + Eq + Send + Sync + Debug,
[src]
T: 'static + Clone + PartialEq<T> + Eq + Send + Sync + Debug,
impl<T> Pointable for T
[src]
pub const ALIGN: usize
[src]
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
[src]
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
[src]
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
[src]
pub unsafe fn drop(ptr: usize)
[src]
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> SaturatedConversion for T
[src]
pub fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
[src]
Self: UniqueSaturatedFrom<T>,
pub fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
[src]
Self: UniqueSaturatedInto<T>,
impl<T> SendSyncUnwindSafe for T where
T: Send + Sync + UnwindSafe + ?Sized,
[src]
T: Send + Sync + UnwindSafe + ?Sized,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
[src]
T: UncheckedFrom<S>,
pub fn unchecked_into(self) -> T
[src]
impl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
[src]
T: Bounded,
S: TryInto<T>,
pub fn unique_saturated_into(self) -> T
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,