Dash Core  0.12.2.1
P2P Digital Currency
chain.h File Reference
#include "arith_uint256.h"
#include "primitives/block.h"
#include "pow.h"
#include "tinyformat.h"
#include "uint256.h"
#include <vector>

Go to the source code of this file.

Classes

struct  CDiskBlockPos
 
class  CBlockIndex
 
class  CDiskBlockIndex
 
class  CChain
 

Enumerations

enum  BlockStatus {
  BLOCK_VALID_UNKNOWN = 0, BLOCK_VALID_HEADER = 1, BLOCK_VALID_TREE = 2, BLOCK_VALID_TRANSACTIONS = 3,
  BLOCK_VALID_CHAIN = 4, BLOCK_VALID_SCRIPTS = 5, BLOCK_VALID_MASK, BLOCK_HAVE_DATA = 8,
  BLOCK_HAVE_UNDO = 16, BLOCK_HAVE_MASK = BLOCK_HAVE_DATA | BLOCK_HAVE_UNDO, BLOCK_FAILED_VALID = 32, BLOCK_FAILED_CHILD = 64,
  BLOCK_FAILED_MASK = BLOCK_FAILED_VALID | BLOCK_FAILED_CHILD
}
 

Enumeration Type Documentation

◆ BlockStatus

Enumerator
BLOCK_VALID_UNKNOWN 

Unused.

BLOCK_VALID_HEADER 

Parsed, version ok, hash satisfies claimed PoW, 1 <= vtx count <= max, timestamp not in future.

BLOCK_VALID_TREE 

All parent headers found, difficulty matches, timestamp >= median previous, checkpoint. Implies all parents are also at least TREE.

BLOCK_VALID_TRANSACTIONS 

Only first tx is coinbase, 2 <= coinbase input script length <= 100, transactions valid, no duplicate txids, sigops, size, merkle root. Implies all parents are at least TREE but not necessarily TRANSACTIONS. When all parent blocks also have TRANSACTIONS, CBlockIndex::nChainTx will be set.

BLOCK_VALID_CHAIN 

Outputs do not overspend inputs, no double spends, coinbase output ok, no immature coinbase spends, BIP30. Implies all parents are also at least CHAIN.

BLOCK_VALID_SCRIPTS 

Scripts & signatures ok. Implies all parents are also at least SCRIPTS.

BLOCK_VALID_MASK 

All validity bits.

BLOCK_HAVE_DATA 
BLOCK_HAVE_UNDO 

full block available in blk*.dat

BLOCK_HAVE_MASK 

undo data available in rev*.dat

BLOCK_FAILED_VALID 
BLOCK_FAILED_CHILD 

stage after last reached validness failed

BLOCK_FAILED_MASK 

descends from failed block

Definition at line 57 of file chain.h.