ckb_chain_spec::versionbits

Trait VersionbitsConditionChecker

Source
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: &Cache,
        indexer: &I,
    ) -> Option<ThresholdState> { ... }
    fn get_state_since_epoch<I: VersionbitsIndexer>(
        &self,
        header: &HeaderView,
        cache: &Cache,
        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: &Cache, 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: &Cache, indexer: &I, ) -> Option<EpochNumber>

Returns the first epoch which the state applies

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§