reth::consensus

Trait FullConsensus

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§

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§

§

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

§

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

Implementors§

Source§

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

§

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

§

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