[][src]Trait sc_service::client::light::blockchain::BlockchainBackend

pub trait BlockchainBackend<Block>: HeaderBackend<Block> + HeaderMetadata<Block, Error = Error> where
    Block: Block
{ fn body(
        &self,
        id: BlockId<Block>
    ) -> Result<Option<Vec<<Block as Block>::Extrinsic>>, Error>;
fn justification(
        &self,
        id: BlockId<Block>
    ) -> Result<Option<Vec<u8>>, Error>;
fn last_finalized(&self) -> Result<<Block as Block>::Hash, Error>;
fn cache(&self) -> Option<Arc<dyn Cache<Block> + 'static>>;
fn leaves(&self) -> Result<Vec<<Block as Block>::Hash>, Error>;
fn children(
        &self,
        parent_hash: <Block as Block>::Hash
    ) -> Result<Vec<<Block as Block>::Hash>, Error>; fn best_containing(
        &self,
        target_hash: <Block as Block>::Hash,
        maybe_max_number: Option<<<Block as Block>::Header as Header>::Number>,
        import_lock: &RwLock<RawRwLock, ()>
    ) -> Result<Option<<Block as Block>::Hash>, Error> { ... } }

Blockchain database backend. Does not perform any validation.

Required methods

fn body(
    &self,
    id: BlockId<Block>
) -> Result<Option<Vec<<Block as Block>::Extrinsic>>, Error>

Get block body. Returns None if block is not found.

fn justification(&self, id: BlockId<Block>) -> Result<Option<Vec<u8>>, Error>

Get block justification. Returns None if justification does not exist.

fn last_finalized(&self) -> Result<<Block as Block>::Hash, Error>

Get last finalized block hash.

fn cache(&self) -> Option<Arc<dyn Cache<Block> + 'static>>

Returns data cache reference, if it is enabled on this backend.

fn leaves(&self) -> Result<Vec<<Block as Block>::Hash>, Error>

Returns hashes of all blocks that are leaves of the block tree. in other words, that have no children, are chain heads. Results must be ordered best (longest, highest) chain first.

fn children(
    &self,
    parent_hash: <Block as Block>::Hash
) -> Result<Vec<<Block as Block>::Hash>, Error>

Return hashes of all blocks that are children of the block with parent_hash.

Loading content...

Provided methods

fn best_containing(
    &self,
    target_hash: <Block as Block>::Hash,
    maybe_max_number: Option<<<Block as Block>::Header as Header>::Number>,
    import_lock: &RwLock<RawRwLock, ()>
) -> Result<Option<<Block as Block>::Hash>, Error>

Get the most recent block hash of the best (longest) chains that contain block with the given target_hash.

The search space is always limited to blocks which are in the finalized chain or descendents of it.

If maybe_max_block_number is Some(max_block_number) the search is limited to block numbers <= max_block_number. in other words as if there were no blocks greater max_block_number. Returns Ok(None) if target_hash is not found in search space. TODO: document time complexity of this, see #1444

Loading content...

Implementations on Foreign Types

impl<Block> Backend<Block> for BlockchainDb<Block> where
    Block: Block
[src]

impl<Block> Backend<Block> for Blockchain<Block> where
    Block: Block
[src]

Loading content...

Implementors

impl<S, Block> Backend<Block> for sc_service::client::light::blockchain::Blockchain<S> where
    Block: BlockT,
    S: Storage<Block>, 
[src]

Loading content...