Trait sc_consensus_pow::PowAlgorithm
source · pub trait PowAlgorithm<B: BlockT> {
type Difficulty: TotalDifficulty + Default + Encode + Decode + Ord + Clone + Copy;
// Required methods
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>>;
// Provided methods
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.
Required Associated Types§
Required Methods§
sourcefn 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.