Bitcoin Core  27.99.0
P2P Digital Currency
Classes | Typedefs | Enumerations | Variables
versionbits.h File Reference
#include <chain.h>
#include <sync.h>
#include <map>
Include dependency graph for versionbits.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  BIP9Stats
 Display status of an in-progress BIP9 softfork. More...
 
class  AbstractThresholdConditionChecker
 Abstract class that implements BIP9-style threshold logic, and caches results. More...
 
class  VersionBitsCache
 BIP 9 allows multiple softforks to be deployed in parallel. More...
 

Typedefs

typedef std::map< const CBlockIndex *, ThresholdStateThresholdConditionCache
 

Enumerations

enum class  ThresholdState {
  DEFINED , STARTED , LOCKED_IN , ACTIVE ,
  FAILED
}
 BIP 9 defines a finite-state-machine to deploy a softfork in multiple stages. More...
 

Variables

static const int32_t VERSIONBITS_LAST_OLD_BLOCK_VERSION = 4
 What block version to use for new blocks (pre versionbits) More...
 
static const int32_t VERSIONBITS_TOP_BITS = 0x20000000UL
 What bits to set in version for versionbits blocks. More...
 
static const int32_t VERSIONBITS_TOP_MASK = 0xE0000000UL
 What bitmask determines whether versionbits is in use. More...
 
static const int32_t VERSIONBITS_NUM_BITS = 29
 Total bits available for versionbits. More...
 

Typedef Documentation

◆ ThresholdConditionCache

Definition at line 38 of file versionbits.h.

Enumeration Type Documentation

◆ ThresholdState

enum ThresholdState
strong

BIP 9 defines a finite-state-machine to deploy a softfork in multiple stages.

State transitions happen during retarget period if conditions are met In case of reorg, transitions can go backward. Without transition, state is inherited between periods. All blocks of a period share the same state.

Enumerator
DEFINED 
STARTED 
LOCKED_IN 
ACTIVE 
FAILED 

Definition at line 27 of file versionbits.h.

Variable Documentation

◆ VERSIONBITS_LAST_OLD_BLOCK_VERSION

const int32_t VERSIONBITS_LAST_OLD_BLOCK_VERSION = 4
static

What block version to use for new blocks (pre versionbits)

Definition at line 14 of file versionbits.h.

◆ VERSIONBITS_NUM_BITS

const int32_t VERSIONBITS_NUM_BITS = 29
static

Total bits available for versionbits.

Definition at line 20 of file versionbits.h.

◆ VERSIONBITS_TOP_BITS

const int32_t VERSIONBITS_TOP_BITS = 0x20000000UL
static

What bits to set in version for versionbits blocks.

Definition at line 16 of file versionbits.h.

◆ VERSIONBITS_TOP_MASK

const int32_t VERSIONBITS_TOP_MASK = 0xE0000000UL
static

What bitmask determines whether versionbits is in use.

Definition at line 18 of file versionbits.h.