snarkvm_ledger_store

Trait BlockStorage

Source
pub trait BlockStorage<N: Network>:
    'static
    + Clone
    + Send
    + Sync {
Show 75 associated items type StateRootMap: for<'a> Map<'a, u32, N::StateRoot>; type ReverseStateRootMap: for<'a> Map<'a, N::StateRoot, u32>; type IDMap: for<'a> Map<'a, u32, N::BlockHash>; type ReverseIDMap: for<'a> Map<'a, N::BlockHash, u32>; type HeaderMap: for<'a> Map<'a, N::BlockHash, Header<N>>; type AuthorityMap: for<'a> Map<'a, N::BlockHash, Authority<N>>; type CertificateMap: for<'a> Map<'a, Field<N>, (u32, u64)>; type RatificationsMap: for<'a> Map<'a, N::BlockHash, Ratifications<N>>; type SolutionsMap: for<'a> Map<'a, N::BlockHash, Solutions<N>>; type SolutionIDsMap: for<'a> Map<'a, SolutionID<N>, u32>; type AbortedSolutionIDsMap: for<'a> Map<'a, N::BlockHash, Vec<SolutionID<N>>>; type AbortedSolutionHeightsMap: for<'a> Map<'a, SolutionID<N>, u32>; type TransactionsMap: for<'a> Map<'a, N::BlockHash, Vec<N::TransactionID>>; type AbortedTransactionIDsMap: for<'a> Map<'a, N::BlockHash, Vec<N::TransactionID>>; type RejectedOrAbortedTransactionIDMap: for<'a> Map<'a, N::TransactionID, N::BlockHash>; type ConfirmedTransactionsMap: for<'a> Map<'a, N::TransactionID, (N::BlockHash, ConfirmedTxType<N>, Vec<FinalizeOperation<N>>)>; type RejectedDeploymentOrExecutionMap: for<'a> Map<'a, Field<N>, Rejected<N>>; type TransactionStorage: TransactionStorage<N, TransitionStorage = Self::TransitionStorage>; type TransitionStorage: TransitionStorage<N>; // Required methods fn open<S: Clone + Into<StorageMode>>(storage: S) -> Result<Self>; fn state_root_map(&self) -> &Self::StateRootMap; fn reverse_state_root_map(&self) -> &Self::ReverseStateRootMap; fn id_map(&self) -> &Self::IDMap; fn reverse_id_map(&self) -> &Self::ReverseIDMap; fn header_map(&self) -> &Self::HeaderMap; fn authority_map(&self) -> &Self::AuthorityMap; fn certificate_map(&self) -> &Self::CertificateMap; fn ratifications_map(&self) -> &Self::RatificationsMap; fn solutions_map(&self) -> &Self::SolutionsMap; fn solution_ids_map(&self) -> &Self::SolutionIDsMap; fn aborted_solution_ids_map(&self) -> &Self::AbortedSolutionIDsMap; fn aborted_solution_heights_map(&self) -> &Self::AbortedSolutionHeightsMap; fn transactions_map(&self) -> &Self::TransactionsMap; fn aborted_transaction_ids_map(&self) -> &Self::AbortedTransactionIDsMap; fn rejected_or_aborted_transaction_id_map( &self, ) -> &Self::RejectedOrAbortedTransactionIDMap; fn confirmed_transactions_map(&self) -> &Self::ConfirmedTransactionsMap; fn rejected_deployment_or_execution_map( &self, ) -> &Self::RejectedDeploymentOrExecutionMap; fn transaction_store( &self, ) -> &TransactionStore<N, Self::TransactionStorage>; // Provided methods fn transition_store(&self) -> &TransitionStore<N, Self::TransitionStorage> { ... } fn storage_mode(&self) -> &StorageMode { ... } fn start_atomic(&self) { ... } fn is_atomic_in_progress(&self) -> bool { ... } fn atomic_checkpoint(&self) { ... } fn clear_latest_checkpoint(&self) { ... } fn atomic_rewind(&self) { ... } fn abort_atomic(&self) { ... } fn finish_atomic(&self) -> Result<()> { ... } fn pause_atomic_writes(&self) -> Result<()> { ... } fn unpause_atomic_writes<const DISCARD_BATCH: bool>(&self) -> Result<()> { ... } fn insert(&self, state_root: N::StateRoot, block: &Block<N>) -> Result<()> { ... } fn remove(&self, block_hash: &N::BlockHash) -> Result<()> { ... } fn contains_transaction_id( &self, transaction_id: &N::TransactionID, ) -> Result<bool> { ... } fn contains_rejected_or_aborted_transaction_id( &self, transaction_id: &N::TransactionID, ) -> Result<bool> { ... } fn contains_rejected_deployment_or_execution_id( &self, rejected_id: &Field<N>, ) -> Result<bool> { ... } fn find_block_height_from_state_root( &self, state_root: N::StateRoot, ) -> Result<Option<u32>> { ... } fn find_block_hash( &self, transaction_id: &N::TransactionID, ) -> Result<Option<N::BlockHash>> { ... } fn find_block_height_from_solution_id( &self, solution_id: &SolutionID<N>, ) -> Result<Option<u32>> { ... } fn get_state_root(&self, block_height: u32) -> Result<Option<N::StateRoot>> { ... } fn get_state_path_for_commitment( &self, commitment: &Field<N>, block_tree: &BlockTree<N>, ) -> Result<StatePath<N>> { ... } fn get_previous_block_hash( &self, height: u32, ) -> Result<Option<N::BlockHash>> { ... } fn get_block_hash(&self, height: u32) -> Result<Option<N::BlockHash>> { ... } fn get_block_height(&self, block_hash: &N::BlockHash) -> Result<Option<u32>> { ... } fn get_block_header( &self, block_hash: &N::BlockHash, ) -> Result<Option<Header<N>>> { ... } fn get_block_authority( &self, block_hash: &N::BlockHash, ) -> Result<Option<Authority<N>>> { ... } fn get_batch_certificate( &self, certificate_id: &Field<N>, ) -> Result<Option<BatchCertificate<N>>> { ... } fn get_block_ratifications( &self, block_hash: &N::BlockHash, ) -> Result<Option<Ratifications<N>>> { ... } fn get_block_solutions( &self, block_hash: &N::BlockHash, ) -> Result<Solutions<N>> { ... } fn get_solution(&self, solution_id: &SolutionID<N>) -> Result<Solution<N>> { ... } fn get_block_aborted_solution_ids( &self, block_hash: &N::BlockHash, ) -> Result<Option<Vec<SolutionID<N>>>> { ... } fn get_block_transactions( &self, block_hash: &N::BlockHash, ) -> Result<Option<Transactions<N>>> { ... } fn get_block_aborted_transaction_ids( &self, block_hash: &N::BlockHash, ) -> Result<Option<Vec<N::TransactionID>>> { ... } fn get_transaction( &self, transaction_id: &N::TransactionID, ) -> Result<Option<Transaction<N>>> { ... } fn get_confirmed_transaction( &self, transaction_id: N::TransactionID, ) -> Result<Option<ConfirmedTransaction<N>>> { ... } fn get_unconfirmed_transaction( &self, transaction_id: &N::TransactionID, ) -> Result<Option<Transaction<N>>> { ... } fn get_block(&self, block_hash: &N::BlockHash) -> Result<Option<Block<N>>> { ... }
}
Expand description

A trait for block storage.

Required Associated Types§

Source

type StateRootMap: for<'a> Map<'a, u32, N::StateRoot>

The mapping of block height to state root.

Source

type ReverseStateRootMap: for<'a> Map<'a, N::StateRoot, u32>

The mapping of state root to block height.

Source

type IDMap: for<'a> Map<'a, u32, N::BlockHash>

The mapping of block height to block hash.

Source

type ReverseIDMap: for<'a> Map<'a, N::BlockHash, u32>

The mapping of block hash to block height.

Source

type HeaderMap: for<'a> Map<'a, N::BlockHash, Header<N>>

The mapping of block hash to block header.

Source

type AuthorityMap: for<'a> Map<'a, N::BlockHash, Authority<N>>

The mapping of block hash to block authority.

Source

type CertificateMap: for<'a> Map<'a, Field<N>, (u32, u64)>

The mapping of certificate ID to (block height, round height).

Source

type RatificationsMap: for<'a> Map<'a, N::BlockHash, Ratifications<N>>

The mapping of block hash to block ratifications.

Source

type SolutionsMap: for<'a> Map<'a, N::BlockHash, Solutions<N>>

The mapping of block hash to block solutions.

Source

type SolutionIDsMap: for<'a> Map<'a, SolutionID<N>, u32>

The mapping of solution ID to block height.

Source

type AbortedSolutionIDsMap: for<'a> Map<'a, N::BlockHash, Vec<SolutionID<N>>>

The mapping of block hash to [aborted solution ID].

Source

type AbortedSolutionHeightsMap: for<'a> Map<'a, SolutionID<N>, u32>

The mapping of aborted solution ID to block height.

Source

type TransactionsMap: for<'a> Map<'a, N::BlockHash, Vec<N::TransactionID>>

The mapping of block hash to [transaction ID].

Source

type AbortedTransactionIDsMap: for<'a> Map<'a, N::BlockHash, Vec<N::TransactionID>>

The mapping of block hash to [aborted transaction ID].

Source

type RejectedOrAbortedTransactionIDMap: for<'a> Map<'a, N::TransactionID, N::BlockHash>

The mapping of rejected or aborted transaction ID to block hash.

Source

type ConfirmedTransactionsMap: for<'a> Map<'a, N::TransactionID, (N::BlockHash, ConfirmedTxType<N>, Vec<FinalizeOperation<N>>)>

The mapping of transaction ID to (block hash, confirmed tx type, finalize operations).

Source

type RejectedDeploymentOrExecutionMap: for<'a> Map<'a, Field<N>, Rejected<N>>

The rejected deployment or execution map.

Source

type TransactionStorage: TransactionStorage<N, TransitionStorage = Self::TransitionStorage>

The transaction storage.

Source

type TransitionStorage: TransitionStorage<N>

The transition storage.

Required Methods§

Source

fn open<S: Clone + Into<StorageMode>>(storage: S) -> Result<Self>

Initializes the block storage.

Source

fn state_root_map(&self) -> &Self::StateRootMap

Returns the state root map.

Source

fn reverse_state_root_map(&self) -> &Self::ReverseStateRootMap

Returns the reverse state root map.

Source

fn id_map(&self) -> &Self::IDMap

Returns the ID map.

Source

fn reverse_id_map(&self) -> &Self::ReverseIDMap

Returns the reverse ID map.

Source

fn header_map(&self) -> &Self::HeaderMap

Returns the header map.

Source

fn authority_map(&self) -> &Self::AuthorityMap

Returns the authority map.

Source

fn certificate_map(&self) -> &Self::CertificateMap

Returns the certificate map.

Source

fn ratifications_map(&self) -> &Self::RatificationsMap

Returns the ratifications map.

Source

fn solutions_map(&self) -> &Self::SolutionsMap

Returns the solutions map.

Source

fn solution_ids_map(&self) -> &Self::SolutionIDsMap

Returns the solution IDs map.

Source

fn aborted_solution_ids_map(&self) -> &Self::AbortedSolutionIDsMap

Returns the aborted solution IDs map.

Source

fn aborted_solution_heights_map(&self) -> &Self::AbortedSolutionHeightsMap

Returns the aborted solution heights map.

Source

fn transactions_map(&self) -> &Self::TransactionsMap

Returns the accepted transactions map.

Source

fn aborted_transaction_ids_map(&self) -> &Self::AbortedTransactionIDsMap

Returns the aborted transaction IDs map.

Source

fn rejected_or_aborted_transaction_id_map( &self, ) -> &Self::RejectedOrAbortedTransactionIDMap

Returns the rejected or aborted transaction ID map.

Source

fn confirmed_transactions_map(&self) -> &Self::ConfirmedTransactionsMap

Returns the confirmed transactions map.

Source

fn rejected_deployment_or_execution_map( &self, ) -> &Self::RejectedDeploymentOrExecutionMap

Returns the rejected deployment or execution map.

Source

fn transaction_store(&self) -> &TransactionStore<N, Self::TransactionStorage>

Returns the transaction store.

Provided Methods§

Source

fn transition_store(&self) -> &TransitionStore<N, Self::TransitionStorage>

Returns the transition store.

Source

fn storage_mode(&self) -> &StorageMode

Returns the storage mode.

Source

fn start_atomic(&self)

Starts an atomic batch write operation.

Source

fn is_atomic_in_progress(&self) -> bool

Checks if an atomic batch is in progress.

Source

fn atomic_checkpoint(&self)

Checkpoints the atomic batch.

Source

fn clear_latest_checkpoint(&self)

Clears the latest atomic batch checkpoint.

Source

fn atomic_rewind(&self)

Rewinds the atomic batch to the previous checkpoint.

Source

fn abort_atomic(&self)

Aborts an atomic batch write operation.

Source

fn finish_atomic(&self) -> Result<()>

Finishes an atomic batch write operation.

Source

fn pause_atomic_writes(&self) -> Result<()>

Pauses atomic writes.

Source

fn unpause_atomic_writes<const DISCARD_BATCH: bool>(&self) -> Result<()>

Unpauses atomic writes.

Source

fn insert(&self, state_root: N::StateRoot, block: &Block<N>) -> Result<()>

Stores the given (state root, block) pair into storage.

Source

fn remove(&self, block_hash: &N::BlockHash) -> Result<()>

Removes the block for the given block hash.

Source

fn contains_transaction_id( &self, transaction_id: &N::TransactionID, ) -> Result<bool>

Returns true if the given transaction ID exists.

Source

fn contains_rejected_or_aborted_transaction_id( &self, transaction_id: &N::TransactionID, ) -> Result<bool>

Returns true if the given rejected transaction ID or aborted transaction ID exists.

Source

fn contains_rejected_deployment_or_execution_id( &self, rejected_id: &Field<N>, ) -> Result<bool>

Returns true if the given rejected deployment or execution ID.

Source

fn find_block_height_from_state_root( &self, state_root: N::StateRoot, ) -> Result<Option<u32>>

Returns the block height that contains the given state root.

Source

fn find_block_hash( &self, transaction_id: &N::TransactionID, ) -> Result<Option<N::BlockHash>>

Returns the block hash that contains the given transaction ID.

Source

fn find_block_height_from_solution_id( &self, solution_id: &SolutionID<N>, ) -> Result<Option<u32>>

Returns the block height that contains the given solution ID.

Source

fn get_state_root(&self, block_height: u32) -> Result<Option<N::StateRoot>>

Returns the state root that contains the given block height.

Source

fn get_state_path_for_commitment( &self, commitment: &Field<N>, block_tree: &BlockTree<N>, ) -> Result<StatePath<N>>

Returns a state path for the given commitment.

Source

fn get_previous_block_hash(&self, height: u32) -> Result<Option<N::BlockHash>>

Returns the previous block hash of the given block height.

Source

fn get_block_hash(&self, height: u32) -> Result<Option<N::BlockHash>>

Returns the block hash for the given block height.

Source

fn get_block_height(&self, block_hash: &N::BlockHash) -> Result<Option<u32>>

Returns the block height for the given block hash.

Source

fn get_block_header( &self, block_hash: &N::BlockHash, ) -> Result<Option<Header<N>>>

Returns the block header for the given block hash.

Source

fn get_block_authority( &self, block_hash: &N::BlockHash, ) -> Result<Option<Authority<N>>>

Returns the block authority for the given block hash.

Source

fn get_batch_certificate( &self, certificate_id: &Field<N>, ) -> Result<Option<BatchCertificate<N>>>

Returns the batch certificate for the given certificate ID.

Source

fn get_block_ratifications( &self, block_hash: &N::BlockHash, ) -> Result<Option<Ratifications<N>>>

Returns the block ratifications for the given block hash.

Source

fn get_block_solutions(&self, block_hash: &N::BlockHash) -> Result<Solutions<N>>

Returns the block solutions for the given block hash.

Source

fn get_solution(&self, solution_id: &SolutionID<N>) -> Result<Solution<N>>

Returns the prover solution for the given solution ID.

Source

fn get_block_aborted_solution_ids( &self, block_hash: &N::BlockHash, ) -> Result<Option<Vec<SolutionID<N>>>>

Returns the block aborted solution IDs for the given block hash.

Source

fn get_block_transactions( &self, block_hash: &N::BlockHash, ) -> Result<Option<Transactions<N>>>

Returns the block transactions for the given block hash.

Source

fn get_block_aborted_transaction_ids( &self, block_hash: &N::BlockHash, ) -> Result<Option<Vec<N::TransactionID>>>

Returns the block aborted transaction IDs for the given block hash.

Source

fn get_transaction( &self, transaction_id: &N::TransactionID, ) -> Result<Option<Transaction<N>>>

Returns the transaction for the given transaction ID.

Source

fn get_confirmed_transaction( &self, transaction_id: N::TransactionID, ) -> Result<Option<ConfirmedTransaction<N>>>

Returns the confirmed transaction for the given transaction ID.

Source

fn get_unconfirmed_transaction( &self, transaction_id: &N::TransactionID, ) -> Result<Option<Transaction<N>>>

Returns the unconfirmed transaction for the given transaction ID.

Source

fn get_block(&self, block_hash: &N::BlockHash) -> Result<Option<Block<N>>>

Returns the block for the given block hash.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<N: Network> BlockStorage<N> for BlockMemory<N>

Source§

type StateRootMap = MemoryMap<u32, <N as Network>::StateRoot>

Source§

type ReverseStateRootMap = MemoryMap<<N as Network>::StateRoot, u32>

Source§

type IDMap = MemoryMap<u32, <N as Network>::BlockHash>

Source§

type ReverseIDMap = MemoryMap<<N as Network>::BlockHash, u32>

Source§

type HeaderMap = MemoryMap<<N as Network>::BlockHash, Header<N>>

Source§

type AuthorityMap = MemoryMap<<N as Network>::BlockHash, Authority<N>>

Source§

type CertificateMap = MemoryMap<Field<N>, (u32, u64)>

Source§

type RatificationsMap = MemoryMap<<N as Network>::BlockHash, Ratifications<N>>

Source§

type SolutionsMap = MemoryMap<<N as Network>::BlockHash, Solutions<N>>

Source§

type SolutionIDsMap = MemoryMap<SolutionID<N>, u32>

Source§

type AbortedSolutionIDsMap = MemoryMap<<N as Network>::BlockHash, Vec<SolutionID<N>>>

Source§

type AbortedSolutionHeightsMap = MemoryMap<SolutionID<N>, u32>

Source§

type TransactionsMap = MemoryMap<<N as Network>::BlockHash, Vec<<N as Network>::TransactionID>>

Source§

type AbortedTransactionIDsMap = MemoryMap<<N as Network>::BlockHash, Vec<<N as Network>::TransactionID>>

Source§

type RejectedOrAbortedTransactionIDMap = MemoryMap<<N as Network>::TransactionID, <N as Network>::BlockHash>

Source§

type ConfirmedTransactionsMap = MemoryMap<<N as Network>::TransactionID, (<N as Network>::BlockHash, ConfirmedTxType<N>, Vec<FinalizeOperation<N>>)>

Source§

type RejectedDeploymentOrExecutionMap = MemoryMap<Field<N>, Rejected<N>>

Source§

type TransactionStorage = TransactionMemory<N>

Source§

type TransitionStorage = TransitionMemory<N>