reth::consensus

Trait FullConsensus

Source
pub trait FullConsensus<N = EthPrimitives>: AsConsensus<<N as NodePrimitives>::BlockHeader, <N as NodePrimitives>::BlockBody>
where N: NodePrimitives,
{ // Required method fn validate_block_post_execution( &self, block: &BlockWithSenders<<N as NodePrimitives>::Block>, input: PostExecutionInput<'_, <N as NodePrimitives>::Receipt>, ) -> Result<(), ConsensusError>; }
Expand description

Consensus implementation which knows full node primitives and is able to validation block’s execution outcome.

Required Methods§

Source

fn validate_block_post_execution( &self, block: &BlockWithSenders<<N as NodePrimitives>::Block>, input: PostExecutionInput<'_, <N as NodePrimitives>::Receipt>, ) -> Result<(), ConsensusError>

Validate a block considering world state, i.e. things that can not be checked before execution.

See the Yellow Paper sections 4.3.2 “Holistic Validity”.

Note: validating blocks does not include other validations of the Consensus

Implementations on Foreign Types§

Source§

impl<'a, N, T> FullConsensus<N> for &'a T

Source§

impl<N, T> FullConsensus<N> for Arc<T>

Implementors§

Source§

impl<ChainSpec, N> FullConsensus<N> for EthBeaconConsensus<ChainSpec>
where ChainSpec: Send + Sync + EthChainSpec + EthereumHardforks + Debug, N: NodePrimitives<Receipt = Receipt>,

Source§

impl<N> FullConsensus<N> for NoopConsensus
where N: NodePrimitives,

Source§

impl<N> FullConsensus<N> for TestConsensus
where N: NodePrimitives,