Skip to main content

BlockStore

Trait BlockStore 

Source
pub trait BlockStore: Send + Sync {
    // Required methods
    fn put_block(&mut self, block: Block);
    fn get_block(&self, hash: &BlockHash) -> Option<Block>;
    fn get_block_by_height(&self, h: Height) -> Option<Block>;

    // Provided methods
    fn put_commit_qc(&mut self, _height: Height, _qc: QuorumCertificate) { ... }
    fn get_commit_qc(&self, _height: Height) -> Option<QuorumCertificate> { ... }
    fn flush(&self) { ... }
    fn get_blocks_in_range(&self, from: Height, to: Height) -> Vec<Block> { ... }
    fn tip_height(&self) -> Height { ... }
}

Required Methods§

Source

fn put_block(&mut self, block: Block)

Source

fn get_block(&self, hash: &BlockHash) -> Option<Block>

Source

fn get_block_by_height(&self, h: Height) -> Option<Block>

Provided Methods§

Source

fn put_commit_qc(&mut self, _height: Height, _qc: QuorumCertificate)

Store the QC that committed a block at the given height.

Source

fn get_commit_qc(&self, _height: Height) -> Option<QuorumCertificate>

Retrieve the commit QC for a block at the given height.

Source

fn flush(&self)

Flush pending writes to durable storage.

Source

fn get_blocks_in_range(&self, from: Height, to: Height) -> Vec<Block>

Get blocks in [from, to] inclusive. Default iterates one-by-one.

Source

fn tip_height(&self) -> Height

Return the highest stored block height.

Implementors§