pub struct StateAvailabilityBoundary {
pub pivot_chain: Vec<H256>,
pub synced_state_height: u64,
pub full_state_start_height: Option<u64>,
pub full_state_space: Option<Space>,
pub lower_bound: u64,
pub upper_bound: u64,
pub optimistic_executed_height: Option<u64>,
}
Fields§
§pivot_chain: Vec<H256>
This is the hash of blocks in pivot chain based on current graph.
synced_state_height: u64
§full_state_start_height: Option<u64>
All states of full_state_space
are available for reading after this
height. None
means no full state are kept.
full_state_space: Option<Space>
None
means both spaces are kept.
This field is not used if full_state_start_height
is None
.
lower_bound: u64
This is the lower boundary height of available state where we can
execute new epochs based on it. Note that synced_state_height
is
within this bound for execution, but its state cannot be accessed
through get_state_no_commit
.
upper_bound: u64
This is the upper boundary height of available state.
optimistic_executed_height: Option<u64>
Implementations§
source§impl StateAvailabilityBoundary
impl StateAvailabilityBoundary
pub fn new( epoch_hash: H256, epoch_height: u64, full_state_start_height: Option<u64>, full_state_space: Option<Space> ) -> Self
sourcepub fn check_availability(&self, height: u64, block_hash: &H256) -> bool
pub fn check_availability(&self, height: u64, block_hash: &H256) -> bool
Check if the state can be accessed for reading.
pub fn check_read_availability( &self, height: u64, block_hash: &H256, space: Option<Space> ) -> bool
pub fn contains_space(&self, space: &Option<Space>) -> bool
sourcepub fn adjust_upper_bound(&mut self, executed_block: &BlockHeader)
pub fn adjust_upper_bound(&mut self, executed_block: &BlockHeader)
Try to update upper_bound
according to a new executed block.
sourcepub fn set_synced_state_height(&mut self, synced_state_height: u64)
pub fn set_synced_state_height(&mut self, synced_state_height: u64)
This function will record the most recent synced_state_height for special case handling.
sourcepub fn adjust_lower_bound(&mut self, new_lower_bound: u64)
pub fn adjust_lower_bound(&mut self, new_lower_bound: u64)
This function will set a new lower boundary height of available state. Caller should make sure the new lower boundary height should be greater than or equal to current lower boundary height. Caller should also make sure the new lower boundary height should be less than or equal to current upper boundary height.
Trait Implementations§
source§impl Clone for StateAvailabilityBoundary
impl Clone for StateAvailabilityBoundary
source§fn clone(&self) -> StateAvailabilityBoundary
fn clone(&self) -> StateAvailabilityBoundary
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more