pub struct ChainDB { /* private fields */ }
Expand description
A database of the chain store based on the RocksDB wrapper RocksDB
Implementations§
Source§impl ChainDB
impl ChainDB
Sourcepub fn new(db: RocksDB, config: StoreConfig) -> Self
pub fn new(db: RocksDB, config: StoreConfig) -> Self
Allocate a new ChainDB instance with the given config
Sourcepub fn new_with_freezer(
db: RocksDB,
freezer: Freezer,
config: StoreConfig,
) -> Self
pub fn new_with_freezer( db: RocksDB, freezer: Freezer, config: StoreConfig, ) -> Self
Open new ChainDB with freezer instance
Sourcepub fn into_inner(self) -> RocksDB
pub fn into_inner(self) -> RocksDB
Converts self into a RocksDB
Sourcepub fn put_chain_spec_hash(&self, hash: &Byte32) -> Result<(), Error>
pub fn put_chain_spec_hash(&self, hash: &Byte32) -> Result<(), Error>
Store the chain spec hash
Sourcepub fn get_chain_spec_hash(&self) -> Option<Byte32>
pub fn get_chain_spec_hash(&self) -> Option<Byte32>
Return the chain spec hash
Sourcepub fn get_migration_version(&self) -> Option<DBPinnableSlice<'_>>
pub fn get_migration_version(&self) -> Option<DBPinnableSlice<'_>>
Return the chain spec hash
Sourcepub fn begin_transaction(&self) -> StoreTransaction
pub fn begin_transaction(&self) -> StoreTransaction
Set this snapshot at start of transaction
Sourcepub fn get_snapshot(&self) -> StoreSnapshot
pub fn get_snapshot(&self) -> StoreSnapshot
Return StoreSnapshot
Sourcepub fn new_write_batch(&self) -> StoreWriteBatch
pub fn new_write_batch(&self) -> StoreWriteBatch
Construct StoreWriteBatch
with default option.
Sourcepub fn write(&self, write_batch: &StoreWriteBatch) -> Result<(), Error>
pub fn write(&self, write_batch: &StoreWriteBatch) -> Result<(), Error>
Write batch into chain db.
Sourcepub fn write_sync(&self, write_batch: &StoreWriteBatch) -> Result<(), Error>
pub fn write_sync(&self, write_batch: &StoreWriteBatch) -> Result<(), Error>
write options set_sync = true
see RocksDB::write_sync
.
Trait Implementations§
Source§impl ChainStore for ChainDB
impl ChainStore for ChainDB
Source§fn cache(&self) -> Option<&StoreCache>
fn cache(&self) -> Option<&StoreCache>
Return cache reference
Source§fn get(&self, col: Col, key: &[u8]) -> Option<DBPinnableSlice<'_>>
fn get(&self, col: Col, key: &[u8]) -> Option<DBPinnableSlice<'_>>
Return the bytes associated with a key value and the given column family.
Source§fn get_iter(&self, col: Col, mode: IteratorMode<'_>) -> DBIter<'_>
fn get_iter(&self, col: Col, mode: IteratorMode<'_>) -> DBIter<'_>
Return an iterator over the database key-value pairs in the given column family.
Source§fn borrow_as_data_loader(&self) -> BorrowedDataLoaderWrapper<'_, Self>
fn borrow_as_data_loader(&self) -> BorrowedDataLoaderWrapper<'_, Self>
Return the borrowed data loader wrapper
Source§fn get_block_header(&self, hash: &Byte32) -> Option<HeaderView>
fn get_block_header(&self, hash: &Byte32) -> Option<HeaderView>
Get header by block header hash
Source§fn get_block_body(&self, hash: &Byte32) -> Vec<TransactionView>
fn get_block_body(&self, hash: &Byte32) -> Vec<TransactionView>
Get block body by block header hash
Source§fn get_unfrozen_block(&self, hash: &Byte32) -> Option<BlockView>
fn get_unfrozen_block(&self, hash: &Byte32) -> Option<BlockView>
Get unfrozen block from ky-store with given hash
Source§fn get_block_txs_hashes(&self, hash: &Byte32) -> Vec<Byte32>
fn get_block_txs_hashes(&self, hash: &Byte32) -> Vec<Byte32>
Get all transaction-hashes in block body by block header hash
Source§fn get_block_proposal_txs_ids(
&self,
hash: &Byte32,
) -> Option<ProposalShortIdVec>
fn get_block_proposal_txs_ids( &self, hash: &Byte32, ) -> Option<ProposalShortIdVec>
Get proposal short id by block header hash
Source§fn get_block_uncles(&self, hash: &Byte32) -> Option<UncleBlockVecView>
fn get_block_uncles(&self, hash: &Byte32) -> Option<UncleBlockVecView>
Get block uncles by block header hash
Source§fn get_block_extension(&self, hash: &Byte32) -> Option<Bytes>
fn get_block_extension(&self, hash: &Byte32) -> Option<Bytes>
Get block extension by block header hash
Source§fn get_block_ext(&self, block_hash: &Byte32) -> Option<BlockExt>
fn get_block_ext(&self, block_hash: &Byte32) -> Option<BlockExt>
Get block ext by block header hash Read more
Source§fn get_block_hash(&self, number: BlockNumber) -> Option<Byte32>
fn get_block_hash(&self, number: BlockNumber) -> Option<Byte32>
Get block header hash by block number
Source§fn get_block_number(&self, hash: &Byte32) -> Option<BlockNumber>
fn get_block_number(&self, hash: &Byte32) -> Option<BlockNumber>
Get block number by block header hash
Source§fn is_main_chain(&self, hash: &Byte32) -> bool
fn is_main_chain(&self, hash: &Byte32) -> bool
TODO(doc): @quake
Source§fn get_tip_header(&self) -> Option<HeaderView>
fn get_tip_header(&self) -> Option<HeaderView>
TODO(doc): @quake
Source§fn transaction_exists(&self, hash: &Byte32) -> bool
fn transaction_exists(&self, hash: &Byte32) -> bool
Returns true if the transaction confirmed in main chain. Read more
Source§fn get_transaction(&self, hash: &Byte32) -> Option<(TransactionView, Byte32)>
fn get_transaction(&self, hash: &Byte32) -> Option<(TransactionView, Byte32)>
Get commit transaction and block hash by its hash
Source§fn get_transaction_info(&self, hash: &Byte32) -> Option<TransactionInfo>
fn get_transaction_info(&self, hash: &Byte32) -> Option<TransactionInfo>
TODO(doc): @quake
Source§fn get_transaction_with_info(
&self,
hash: &Byte32,
) -> Option<(TransactionView, TransactionInfo)>
fn get_transaction_with_info( &self, hash: &Byte32, ) -> Option<(TransactionView, TransactionInfo)>
Gets transaction and associated info with correspond hash
Source§fn get_cell(&self, out_point: &OutPoint) -> Option<CellMeta>
fn get_cell(&self, out_point: &OutPoint) -> Option<CellMeta>
Gets cell meta data with out_point
Source§fn get_current_epoch_ext(&self) -> Option<EpochExt>
fn get_current_epoch_ext(&self) -> Option<EpochExt>
Gets current epoch ext
Source§fn get_epoch_index(&self, number: EpochNumber) -> Option<Byte32>
fn get_epoch_index(&self, number: EpochNumber) -> Option<Byte32>
Gets epoch index by epoch number
Source§fn get_block_epoch_index(&self, block_hash: &Byte32) -> Option<Byte32>
fn get_block_epoch_index(&self, block_hash: &Byte32) -> Option<Byte32>
Gets epoch index by block hash
Source§fn get_uncle_header(&self, hash: &Byte32) -> Option<HeaderView>
fn get_uncle_header(&self, hash: &Byte32) -> Option<HeaderView>
Gets header by uncle header hash
Source§fn block_exists(&self, hash: &Byte32) -> bool
fn block_exists(&self, hash: &Byte32) -> bool
TODO(doc): @quake
Source§fn get_cellbase(&self, hash: &Byte32) -> Option<TransactionView>
fn get_cellbase(&self, hash: &Byte32) -> Option<TransactionView>
Gets cellbase by block hash
Source§fn get_latest_built_filter_data_block_hash(&self) -> Option<Byte32>
fn get_latest_built_filter_data_block_hash(&self) -> Option<Byte32>
Gets latest built filter data block hash
Source§fn get_block_filter(&self, hash: &Byte32) -> Option<Bytes>
fn get_block_filter(&self, hash: &Byte32) -> Option<Bytes>
Gets block filter data by block hash
Source§fn get_block_filter_hash(&self, hash: &Byte32) -> Option<Byte32>
fn get_block_filter_hash(&self, hash: &Byte32) -> Option<Byte32>
Gets block filter hash by block hash
Source§fn get_packed_block_header(&self, hash: &Byte32) -> Option<Header>
fn get_packed_block_header(&self, hash: &Byte32) -> Option<Header>
Gets block header bytes by block hash
Source§fn get_header_digest(&self, position_u64: u64) -> Option<HeaderDigest>
fn get_header_digest(&self, position_u64: u64) -> Option<HeaderDigest>
Gets a header digest.
Source§fn get_ancestor(&self, base: &Byte32, number: BlockNumber) -> Option<HeaderView>
fn get_ancestor(&self, base: &Byte32, number: BlockNumber) -> Option<HeaderView>
Gets ancestor block header by a base block hash and number
Source§impl VersionbitsIndexer for ChainDB
impl VersionbitsIndexer for ChainDB
Source§fn block_epoch_index(&self, block_hash: &Byte32) -> Option<Byte32>
fn block_epoch_index(&self, block_hash: &Byte32) -> Option<Byte32>
Gets epoch index by block hash
Source§fn block_header(&self, block_hash: &Byte32) -> Option<HeaderView>
fn block_header(&self, block_hash: &Byte32) -> Option<HeaderView>
Gets block header by block hash
Auto Trait Implementations§
impl Freeze for ChainDB
impl !RefUnwindSafe for ChainDB
impl Send for ChainDB
impl Sync for ChainDB
impl Unpin for ChainDB
impl !UnwindSafe for ChainDB
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more