Struct sc_client_db::light::LightStorage
source · [−]pub struct LightStorage<Block: BlockT> { /* private fields */ }
Expand description
Light blockchain storage. Stores most recent headers + CHTs for older headers. Locks order: meta, cache.
Implementations
sourceimpl<Block: BlockT> LightStorage<Block>
impl<Block: BlockT> LightStorage<Block>
sourcepub fn new(config: DatabaseSettings) -> ClientResult<Self>
pub fn new(config: DatabaseSettings) -> ClientResult<Self>
Create new storage with given settings.
Trait Implementations
sourceimpl<Block> AuxStore for LightStorage<Block> where
Block: BlockT,
impl<Block> AuxStore for LightStorage<Block> where
Block: BlockT,
sourcefn insert_aux<'a, 'b: 'a, 'c: 'a, I: IntoIterator<Item = &'a (&'c [u8], &'c [u8])>, D: IntoIterator<Item = &'a &'b [u8]>>(
&self,
insert: I,
delete: D
) -> ClientResult<()>
fn insert_aux<'a, 'b: 'a, 'c: 'a, I: IntoIterator<Item = &'a (&'c [u8], &'c [u8])>, D: IntoIterator<Item = &'a &'b [u8]>>(
&self,
insert: I,
delete: D
) -> ClientResult<()>
Insert auxiliary data into key-value store. Read more
sourceimpl<Block> HeaderBackend<Block> for LightStorage<Block> where
Block: BlockT,
impl<Block> HeaderBackend<Block> for LightStorage<Block> where
Block: BlockT,
sourcefn header(&self, id: BlockId<Block>) -> ClientResult<Option<Block::Header>>
fn header(&self, id: BlockId<Block>) -> ClientResult<Option<Block::Header>>
Get block header. Returns None
if block is not found.
sourcefn info(&self) -> BlockchainInfo<Block>
fn info(&self) -> BlockchainInfo<Block>
Get blockchain info.
sourcefn status(&self, id: BlockId<Block>) -> ClientResult<BlockStatus>
fn status(&self, id: BlockId<Block>) -> ClientResult<BlockStatus>
Get block status.
sourcefn number(&self, hash: Block::Hash) -> ClientResult<Option<NumberFor<Block>>>
fn number(&self, hash: Block::Hash) -> ClientResult<Option<NumberFor<Block>>>
Get block number by hash. Returns None
if the header is not in the chain.
sourcefn hash(&self, number: NumberFor<Block>) -> ClientResult<Option<Block::Hash>>
fn hash(&self, number: NumberFor<Block>) -> ClientResult<Option<Block::Hash>>
Get block hash by number. Returns None
if the header is not in the chain.
sourcefn block_hash_from_id(
&self,
id: &BlockId<Block>
) -> Result<Option<<Block as Block>::Hash>, Error>
fn block_hash_from_id(
&self,
id: &BlockId<Block>
) -> Result<Option<<Block as Block>::Hash>, Error>
Convert an arbitrary block ID into a block hash.
sourcefn block_number_from_id(
&self,
id: &BlockId<Block>
) -> Result<Option<<<Block as Block>::Header as Header>::Number>, Error>
fn block_number_from_id(
&self,
id: &BlockId<Block>
) -> Result<Option<<<Block as Block>::Header as Header>::Number>, Error>
Convert an arbitrary block ID into a block hash.
sourcefn expect_header(
&self,
id: BlockId<Block>
) -> Result<<Block as Block>::Header, Error>
fn expect_header(
&self,
id: BlockId<Block>
) -> Result<<Block as Block>::Header, Error>
Get block header. Returns UnknownBlock
error if block is not found.
sourceimpl<Block: BlockT> HeaderMetadata<Block> for LightStorage<Block>
impl<Block: BlockT> HeaderMetadata<Block> for LightStorage<Block>
type Error = ClientError
type Error = ClientError
Error used in case the header metadata is not found.
fn header_metadata(
&self,
hash: Block::Hash
) -> Result<CachedHeaderMetadata<Block>, Self::Error>
fn insert_header_metadata(
&self,
hash: Block::Hash,
metadata: CachedHeaderMetadata<Block>
)
fn remove_header_metadata(&self, hash: Block::Hash)
sourceimpl<Block> ProvideChtRoots<Block> for LightStorage<Block> where
Block: BlockT,
impl<Block> ProvideChtRoots<Block> for LightStorage<Block> where
Block: BlockT,
sourcefn header_cht_root(
&self,
cht_size: NumberFor<Block>,
block: NumberFor<Block>
) -> ClientResult<Option<Block::Hash>>
fn header_cht_root(
&self,
cht_size: NumberFor<Block>,
block: NumberFor<Block>
) -> ClientResult<Option<Block::Hash>>
Get headers CHT root for given block. Returns None if the block is not a part of any CHT.
sourcefn changes_trie_cht_root(
&self,
cht_size: NumberFor<Block>,
block: NumberFor<Block>
) -> ClientResult<Option<Block::Hash>>
fn changes_trie_cht_root(
&self,
cht_size: NumberFor<Block>,
block: NumberFor<Block>
) -> ClientResult<Option<Block::Hash>>
Get changes trie CHT root for given block. Returns None if the block is not a part of any CHT.
sourceimpl<Block> Storage<Block> for LightStorage<Block> where
Block: BlockT,
impl<Block> Storage<Block> for LightStorage<Block> where
Block: BlockT,
sourcefn import_header(
&self,
header: Block::Header,
cache_at: HashMap<Id, Vec<u8>>,
leaf_state: NewBlockState,
aux_ops: Vec<(Vec<u8>, Option<Vec<u8>>)>
) -> ClientResult<()>
fn import_header(
&self,
header: Block::Header,
cache_at: HashMap<Id, Vec<u8>>,
leaf_state: NewBlockState,
aux_ops: Vec<(Vec<u8>, Option<Vec<u8>>)>
) -> ClientResult<()>
Store new header. Should refuse to revert any finalized blocks. Read more
sourcefn set_head(&self, id: BlockId<Block>) -> ClientResult<()>
fn set_head(&self, id: BlockId<Block>) -> ClientResult<()>
Set an existing block as new best block.
sourcefn finalize_header(&self, id: BlockId<Block>) -> ClientResult<()>
fn finalize_header(&self, id: BlockId<Block>) -> ClientResult<()>
Mark historic header as finalized.
sourcefn last_finalized(&self) -> ClientResult<Block::Hash>
fn last_finalized(&self) -> ClientResult<Block::Hash>
Get last finalized header.
sourcefn cache(&self) -> Option<Arc<dyn BlockchainCache<Block>>>
fn cache(&self) -> Option<Arc<dyn BlockchainCache<Block>>>
Get storage cache.
sourcefn usage_info(&self) -> Option<UsageInfo>
fn usage_info(&self) -> Option<UsageInfo>
Get storage usage statistics.
Auto Trait Implementations
impl<Block> !RefUnwindSafe for LightStorage<Block>
impl<Block> Send for LightStorage<Block>
impl<Block> Sync for LightStorage<Block>
impl<Block> Unpin for LightStorage<Block> where
<Block as Block>::Hash: Unpin,
<<Block as Block>::Header as Header>::Number: Unpin,
impl<Block> !UnwindSafe for LightStorage<Block>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CheckedConversion for T
impl<T> CheckedConversion for T
sourcefn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
Convert from a value of T
into an equivalent instance of Option<Self>
. Read more
sourcefn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
Consume self to return Some
equivalent value of Option<T>
. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
sourceimpl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
sourcefn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
Convert from a value of T
into an equivalent instance of Self
. Read more
sourcefn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of T
. Read more
sourceimpl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
sourcepub fn unchecked_into(self) -> T
pub fn unchecked_into(self) -> T
The counterpart to unchecked_from
.
sourceimpl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
sourcepub fn unique_saturated_into(self) -> T
pub fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of T
.
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more