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(dev: Option<u16>) -> Result<Self>; fn current_round_map(&self) -> &Self::CurrentRoundMap; fn round_to_height_map(&self) -> &Self::RoundToHeightMap; fn committee_map(&self) -> &Self::CommitteeMap; fn dev(&self) -> Option<u16>; // 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(dev: Option<u16>) -> 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 dev(&self) -> Option<u16>

Returns the optional development ID.

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.

Object Safety§

This trait is not object safe.

Implementors§