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§
sourcetype CurrentRoundMap: for<'a> Map<'a, u8, u64>
type CurrentRoundMap: for<'a> Map<'a, u8, u64>
The mapping of ()
to current round
.
sourcetype RoundToHeightMap: for<'a> Map<'a, u64, u32>
type RoundToHeightMap: for<'a> Map<'a, u64, u32>
The mapping of round
to height
.
sourcetype CommitteeMap: for<'a> Map<'a, u32, Committee<N>>
type CommitteeMap: for<'a> Map<'a, u32, Committee<N>>
The mapping of block height
to committee
.
Required Methods§
sourcefn current_round_map(&self) -> &Self::CurrentRoundMap
fn current_round_map(&self) -> &Self::CurrentRoundMap
Returns the current round map.
sourcefn round_to_height_map(&self) -> &Self::RoundToHeightMap
fn round_to_height_map(&self) -> &Self::RoundToHeightMap
Returns the round to height map.
sourcefn committee_map(&self) -> &Self::CommitteeMap
fn committee_map(&self) -> &Self::CommitteeMap
Returns the committee map.
Provided Methods§
sourcefn start_atomic(&self)
fn start_atomic(&self)
Starts an atomic batch write operation.
sourcefn is_atomic_in_progress(&self) -> bool
fn is_atomic_in_progress(&self) -> bool
Checks if an atomic batch is in progress.
sourcefn atomic_checkpoint(&self)
fn atomic_checkpoint(&self)
Checkpoints the atomic batch.
sourcefn clear_latest_checkpoint(&self)
fn clear_latest_checkpoint(&self)
Clears the latest atomic batch checkpoint.
sourcefn atomic_rewind(&self)
fn atomic_rewind(&self)
Rewinds the atomic batch to the previous checkpoint.
sourcefn abort_atomic(&self)
fn abort_atomic(&self)
Aborts an atomic batch write operation.
sourcefn finish_atomic(&self) -> Result<()>
fn finish_atomic(&self) -> Result<()>
Finishes an atomic batch write operation.
sourcefn insert(&self, next_height: u32, committee: Committee<N>) -> Result<()>
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
.
sourcefn remove(&self, height: u32) -> Result<()>
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.
sourcefn current_round(&self) -> Result<u64>
fn current_round(&self) -> Result<u64>
Returns the current round.
sourcefn current_height(&self) -> Result<u32>
fn current_height(&self) -> Result<u32>
Returns the current height.
sourcefn current_committee(&self) -> Result<Committee<N>>
fn current_committee(&self) -> Result<Committee<N>>
Returns the current committee.
sourcefn get_height_for_round(&self, round: u64) -> Result<Option<u32>>
fn get_height_for_round(&self, round: u64) -> Result<Option<u32>>
Returns the height for the given round
.