Trait sc_consensus_pow::PowAlgorithm [−][src]
pub trait PowAlgorithm<B: BlockT> { type Difficulty: TotalDifficulty + Default + Encode + Decode + Ord + Clone + Copy; fn difficulty(&self, parent: B::Hash) -> Result<Self::Difficulty, Error<B>>; fn verify(
&self,
parent: &BlockId<B>,
pre_hash: &B::Hash,
pre_digest: Option<&[u8]>,
seal: &Seal,
difficulty: Self::Difficulty
) -> Result<bool, Error<B>>; fn preliminary_verify(
&self,
_pre_hash: &B::Hash,
_seal: &Seal
) -> Result<Option<bool>, Error<B>> { ... } fn break_tie(&self, _own_seal: &Seal, _new_seal: &Seal) -> bool { ... } }
Expand description
Algorithm used for proof of work.
Associated Types
type Difficulty: TotalDifficulty + Default + Encode + Decode + Ord + Clone + Copy
type Difficulty: TotalDifficulty + Default + Encode + Decode + Ord + Clone + Copy
Difficulty for the algorithm.
Required methods
fn difficulty(&self, parent: B::Hash) -> Result<Self::Difficulty, Error<B>>
fn difficulty(&self, parent: B::Hash) -> Result<Self::Difficulty, Error<B>>
Get the next block’s difficulty.
This function will be called twice during the import process, so the implementation should be properly cached.
Provided methods
Verify that the seal is valid against given pre hash when parent block is not yet imported.
None means that preliminary verify is not available for this algorithm.