Struct casper_node::storage::Storage
source · pub struct Storage { /* private fields */ }
Expand description
The storage component.
Implementations§
source§impl Storage
impl Storage
sourcepub fn new(
cfg: &WithDir<Config>,
hard_reset_to_start_of_era: Option<EraId>,
protocol_version: ProtocolVersion,
activation_era: EraId,
network_name: &str,
max_ttl: MaxTtl,
recent_era_count: u64,
registry: Option<&Registry>,
force_resync: bool
) -> Result<Self, FatalStorageError>
pub fn new( cfg: &WithDir<Config>, hard_reset_to_start_of_era: Option<EraId>, protocol_version: ProtocolVersion, activation_era: EraId, network_name: &str, max_ttl: MaxTtl, recent_era_count: u64, registry: Option<&Registry>, force_resync: bool ) -> Result<Self, FatalStorageError>
Creates a new storage component.
sourcepub fn put_deploy(&self, deploy: &Deploy) -> Result<bool, FatalStorageError>
pub fn put_deploy(&self, deploy: &Deploy) -> Result<bool, FatalStorageError>
Put a single deploy into storage.
sourcepub fn read_block(
&self,
block_hash: &BlockHash
) -> Result<Option<Block>, FatalStorageError>
pub fn read_block( &self, block_hash: &BlockHash ) -> Result<Option<Block>, FatalStorageError>
Retrieves a block by hash.
sourcepub fn read_highest_block(&self) -> Result<Option<Block>, FatalStorageError>
pub fn read_highest_block(&self) -> Result<Option<Block>, FatalStorageError>
Gets the highest block.
sourcepub fn read_highest_block_header(
&self
) -> Result<Option<BlockHeader>, FatalStorageError>
pub fn read_highest_block_header( &self ) -> Result<Option<BlockHeader>, FatalStorageError>
Retrieves the highest block header from the storage, if one exists.
sourcepub fn write_block(&mut self, block: &Block) -> Result<bool, FatalStorageError>
pub fn write_block(&mut self, block: &Block) -> Result<bool, FatalStorageError>
Writes a block to storage, updating indices as necessary.
Returns Ok(true)
if the block has been successfully written, Ok(false)
if a part of it
couldn’t be written because it already existed, and Err(_)
if there was an error.
sourcepub fn write_complete_block(
&mut self,
block: &Block
) -> Result<bool, FatalStorageError>
pub fn write_complete_block( &mut self, block: &Block ) -> Result<bool, FatalStorageError>
Writes a block to storage and marks it as complete, updating indices as necessary.
Returns Ok(true)
if the block has been successfully written, Ok(false)
if a part of it
couldn’t be written because it already existed, and Err(_)
if there was an error.
This function guarantees that either both the block storing and the completed_blocks
index
update were successful or that the entire operation was reverted.
sourcepub fn read_highest_block_height(&self) -> Option<u64>
pub fn read_highest_block_height(&self) -> Option<u64>
Retrieves the highest block header from the storage, if one exists.
sourcepub fn read_block_header_by_height(
&self,
height: u64,
only_from_available_block_range: bool
) -> Result<Option<BlockHeader>, FatalStorageError>
pub fn read_block_header_by_height( &self, height: u64, only_from_available_block_range: bool ) -> Result<Option<BlockHeader>, FatalStorageError>
Retrieves a single block header by height by looking it up in the index and returning it.
sourcepub fn read_block_header(
&self,
block_hash: &BlockHash
) -> Result<Option<BlockHeader>, FatalStorageError>
pub fn read_block_header( &self, block_hash: &BlockHash ) -> Result<Option<BlockHeader>, FatalStorageError>
Retrieves a single block header by hash.
sourcepub fn read_block_by_height(
&self,
height: u64
) -> Result<Option<Block>, FatalStorageError>
pub fn read_block_by_height( &self, height: u64 ) -> Result<Option<Block>, FatalStorageError>
Retrieves single block by height by looking it up in the index and returning it.
sourcepub fn read_block_and_metadata_by_height(
&self,
height: u64
) -> Result<Option<BlockWithMetadata>, FatalStorageError>
pub fn read_block_and_metadata_by_height( &self, height: u64 ) -> Result<Option<BlockWithMetadata>, FatalStorageError>
Retrieves a block by height, together with all stored block signatures.
Returns None
if the block is not stored, or if no block signatures are stored for it.
sourcepub fn read_deploy_by_hash(
&self,
deploy_hash: &DeployHash
) -> Result<Option<Deploy>, FatalStorageError>
pub fn read_deploy_by_hash( &self, deploy_hash: &DeployHash ) -> Result<Option<Deploy>, FatalStorageError>
Directly returns a deploy from internal store.
Trait Implementations§
source§impl DataSize for Storage
impl DataSize for Storage
source§const IS_DYNAMIC: bool = true
const IS_DYNAMIC: bool = true
true
, the type has a heap size that can vary at runtime, depending on the actual value.source§const STATIC_HEAP_SIZE: usize = 0usize
const STATIC_HEAP_SIZE: usize = 0usize
IS_DYNAMIC
is false, this is
the total amount of heap memory occupied by the value. Otherwise this is a lower bound.source§fn estimate_heap_size(&self) -> usize
fn estimate_heap_size(&self) -> usize
source§fn estimate_detailed_heap_size(&self) -> MemUsageNode
fn estimate_detailed_heap_size(&self) -> MemUsageNode
Auto Trait Implementations§
impl !RefUnwindSafe for Storage
impl !Send for Storage
impl !Sync for Storage
impl Unpin for Storage
impl !UnwindSafe for Storage
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.