pub trait FullConsensus<N>: Consensus<<N as NodePrimitives>::Block>where
N: NodePrimitives,{
// Required method
fn validate_block_post_execution(
&self,
block: &RecoveredBlock<<N as NodePrimitives>::Block>,
result: &BlockExecutionResult<<N as NodePrimitives>::Receipt>,
receipt_root_bloom: Option<(FixedBytes<32>, Bloom)>,
) -> Result<(), ConsensusError>;
}Expand description
Consensus implementation which knows full node primitives and is able to validation block’s
execution outcome.
Required Methods§
Sourcefn validate_block_post_execution(
&self,
block: &RecoveredBlock<<N as NodePrimitives>::Block>,
result: &BlockExecutionResult<<N as NodePrimitives>::Receipt>,
receipt_root_bloom: Option<(FixedBytes<32>, Bloom)>,
) -> Result<(), ConsensusError>
fn validate_block_post_execution( &self, block: &RecoveredBlock<<N as NodePrimitives>::Block>, result: &BlockExecutionResult<<N as NodePrimitives>::Receipt>, receipt_root_bloom: Option<(FixedBytes<32>, Bloom)>, ) -> 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”.
If receipt_root_bloom is provided, the implementation should use the pre-computed
receipt root and logs bloom instead of computing them from the receipts.
Note: validating blocks does not include other validations of the Consensus