snarkvm_ledger_store

Trait CommitteeStorage

Source
pub trait CommitteeStorage<N: Network>:
    'static
    + Clone
    + Send
    + Sync {
    type CurrentRoundMap: for<'a> Map<'a, u8, u64>;
    type RoundToHeightMap: for<'a> Map<'a, u64, u32>;
    type CommitteeMap: for<'a> Map<'a, u32, Committee<N>>;

Show 20 methods // Required methods fn open<S: Clone + Into<StorageMode>>(storage: S) -> Result<Self>; fn current_round_map(&self) -> &Self::CurrentRoundMap; fn round_to_height_map(&self) -> &Self::RoundToHeightMap; fn committee_map(&self) -> &Self::CommitteeMap; fn storage_mode(&self) -> &StorageMode; // Provided methods 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 insert(&self, next_height: u32, committee: Committee<N>) -> Result<()> { ... } fn remove(&self, height: u32) -> Result<()> { ... } fn current_round(&self) -> Result<u64> { ... } fn current_height(&self) -> Result<u32> { ... } fn current_committee(&self) -> Result<Committee<N>> { ... } fn get_height_for_round(&self, round: u64) -> Result<Option<u32>> { ... } fn get_committee(&self, height: u32) -> Result<Option<Committee<N>>> { ... } fn get_committee_for_round( &self, round: u64, ) -> Result<Option<Committee<N>>> { ... }
}
Expand description

A trait for committee storage.

Required Associated Types§

Source

type CurrentRoundMap: for<'a> Map<'a, u8, u64>

The mapping of () to current round.

Source

type RoundToHeightMap: for<'a> Map<'a, u64, u32>

The mapping of round to height.

Source

type CommitteeMap: for<'a> Map<'a, u32, Committee<N>>

The mapping of block height to committee.

Required Methods§

Source

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

Initializes the committee storage.

Source

fn current_round_map(&self) -> &Self::CurrentRoundMap

Returns the current round map.

Source

fn round_to_height_map(&self) -> &Self::RoundToHeightMap

Returns the round to height map.

Source

fn committee_map(&self) -> &Self::CommitteeMap

Returns the committee map.

Source

fn storage_mode(&self) -> &StorageMode

Returns the storage mode.

Provided Methods§

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 insert(&self, next_height: u32, committee: Committee<N>) -> Result<()>

Stores the given (next height, committee) pair into storage, and indexes storage up to the next round.

Source

fn remove(&self, height: u32) -> Result<()>

Removes the committee for the given height, in the process removing all round to height entries back to the previous committee.

Source

fn current_round(&self) -> Result<u64>

Returns the current round.

Source

fn current_height(&self) -> Result<u32>

Returns the current height.

Source

fn current_committee(&self) -> Result<Committee<N>>

Returns the current committee.

Source

fn get_height_for_round(&self, round: u64) -> Result<Option<u32>>

Returns the height for the given round.

Source

fn get_committee(&self, height: u32) -> Result<Option<Committee<N>>>

Returns the committee for the given height.

Source

fn get_committee_for_round(&self, round: u64) -> Result<Option<Committee<N>>>

Returns the committee for the given round.

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§