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>
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