pub trait VersionbitsConditionChecker {
    // Required methods
    fn start(&self) -> EpochNumber;
    fn timeout(&self) -> EpochNumber;
    fn active_mode(&self) -> ActiveMode;
    fn condition<I: VersionbitsIndexer>(
        &self,
        header: &HeaderView,
        indexer: &I
    ) -> bool;
    fn min_activation_epoch(&self) -> EpochNumber;
    fn period(&self) -> EpochNumber;
    fn threshold(&self) -> Ratio;

    // Provided methods
    fn get_state<I: VersionbitsIndexer>(
        &self,
        header: &HeaderView,
        cache: &Mutex<HashMap<Byte32, ThresholdState>>,
        indexer: &I
    ) -> Option<ThresholdState> { ... }
    fn get_state_since_epoch<I: VersionbitsIndexer>(
        &self,
        header: &HeaderView,
        cache: &Mutex<HashMap<Byte32, ThresholdState>>,
        indexer: &I
    ) -> Option<EpochNumber> { ... }
}
Expand description

Trait that implements versionbits threshold logic, and caches results.

Required Methods§

source

fn start(&self) -> EpochNumber

Specifies the first epoch in which the bit gains meaning.

source

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 active_mode(&self) -> ActiveMode

Active mode for testing.

source

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 signal

source

fn min_activation_epoch(&self) -> EpochNumber

Specifies the epoch at which the softfork is allowed to become active.

source

fn period(&self) -> EpochNumber

The period for signal statistics are counted

source

fn threshold(&self) -> Ratio

Specifies the minimum ratio of block per epoch, which indicate the locked_in of the softfork during the epoch.

Provided Methods§

source

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>

Returns the first epoch which the state applies

Object Safety§

This trait is not object safe.

Implementors§