ConsensusStorage

Trait ConsensusStorage 

Source
pub trait ConsensusStorage {
    // Required methods
    fn store_candidate(&mut self, cm: Block) -> Result<()>;
    fn candidate(&self, hash: &[u8]) -> Result<Option<Block>>;
    fn candidate_by_iteration(
        &self,
        ch: &ConsensusHeader,
    ) -> Result<Option<Block>>;
    fn clear_candidates(&mut self) -> Result<()>;
    fn delete_candidate<F>(&mut self, closure: F) -> Result<()>
       where F: FnOnce(u64) -> bool + Copy;
    fn count_candidates(&self) -> usize;
    fn store_validation_result(
        &mut self,
        ch: &ConsensusHeader,
        vr: &ValidationResult,
    ) -> Result<()>;
    fn validation_result(
        &self,
        ch: &ConsensusHeader,
    ) -> Result<Option<ValidationResult>>;
    fn clear_validation_results(&mut self) -> Result<()>;
    fn delete_validation_results<F>(&mut self, closure: F) -> Result<()>
       where F: FnOnce([u8; 32]) -> bool + Copy;
    fn count_validation_results(&self) -> usize;
}

Required Methods§

Source

fn store_candidate(&mut self, cm: Block) -> Result<()>

Candidate Storage

Source

fn candidate(&self, hash: &[u8]) -> Result<Option<Block>>

Source

fn candidate_by_iteration(&self, ch: &ConsensusHeader) -> Result<Option<Block>>

Fetches a candidate block by lookup key (prev_block_hash, iteration).

Source

fn clear_candidates(&mut self) -> Result<()>

Source

fn delete_candidate<F>(&mut self, closure: F) -> Result<()>
where F: FnOnce(u64) -> bool + Copy,

Source

fn count_candidates(&self) -> usize

Source

fn store_validation_result( &mut self, ch: &ConsensusHeader, vr: &ValidationResult, ) -> Result<()>

ValidationResult Storage

Source

fn validation_result( &self, ch: &ConsensusHeader, ) -> Result<Option<ValidationResult>>

Source

fn clear_validation_results(&mut self) -> Result<()>

Source

fn delete_validation_results<F>(&mut self, closure: F) -> Result<()>
where F: FnOnce([u8; 32]) -> bool + Copy,

Source

fn count_validation_results(&self) -> usize

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<DB: DBAccess> ConsensusStorage for DBTransaction<'_, DB>

Implementation of the Candidate trait for DBTransaction<'db, DB>.