Struct ckb_chain_spec::versionbits::Versionbits
source · pub struct Versionbits<'a> { /* private fields */ }
Expand description
Struct Implements versionbits threshold logic, and caches results.
Implementations§
source§impl<'a> Versionbits<'a>
impl<'a> Versionbits<'a>
Trait Implementations§
source§impl<'a> VersionbitsConditionChecker for Versionbits<'a>
impl<'a> VersionbitsConditionChecker for Versionbits<'a>
source§fn start(&self) -> EpochNumber
fn start(&self) -> EpochNumber
Specifies the first epoch in which the bit gains meaning.
source§fn timeout(&self) -> EpochNumber
fn timeout(&self) -> EpochNumber
Specifies an epoch at which the miner signaling ends.
Once this epoch has been reached,
if the softfork has not yet locked_in (excluding this epoch block’s bit state),
the deployment is considered failed on all descendants of the block.
source§fn period(&self) -> EpochNumber
fn period(&self) -> EpochNumber
The period for signal statistics are counted
source§fn condition<I: VersionbitsIndexer>(
&self,
header: &HeaderView,
indexer: &I
) -> bool
fn condition<I: VersionbitsIndexer>( &self, header: &HeaderView, indexer: &I ) -> bool
Determines whether bit in the
version
field of the block is to be used to signalsource§fn min_activation_epoch(&self) -> EpochNumber
fn min_activation_epoch(&self) -> EpochNumber
Specifies the epoch at which the softfork is allowed to become active.
source§fn active_mode(&self) -> ActiveMode
fn active_mode(&self) -> ActiveMode
Active mode for testing.
source§fn threshold(&self) -> Ratio
fn threshold(&self) -> Ratio
Specifies the minimum ratio of block per epoch,
which indicate the locked_in of the softfork during the epoch.
source§fn get_state<I: VersionbitsIndexer>(
&self,
header: &HeaderView,
cache: &Mutex<HashMap<Byte32, ThresholdState>>,
indexer: &I
) -> Option<ThresholdState>
fn get_state<I: VersionbitsIndexer>( &self, header: &HeaderView, cache: &Mutex<HashMap<Byte32, ThresholdState>>, indexer: &I ) -> Option<ThresholdState>
Returns the state for a header. Applies any state transition if conditions are present.
Caches state from first block of period.
source§fn get_state_since_epoch<I: VersionbitsIndexer>(
&self,
header: &HeaderView,
cache: &Mutex<HashMap<Byte32, ThresholdState>>,
indexer: &I
) -> Option<EpochNumber>
fn get_state_since_epoch<I: VersionbitsIndexer>( &self, header: &HeaderView, cache: &Mutex<HashMap<Byte32, ThresholdState>>, indexer: &I ) -> Option<EpochNumber>
Returns the first epoch which the state applies