![]() |
Bitcoin Core
22.99.0
P2P Digital Currency
|
#include <arith_uint256.h>
#include <consensus/params.h>
#include <flatfile.h>
#include <primitives/block.h>
#include <sync.h>
#include <tinyformat.h>
#include <uint256.h>
#include <vector>
Go to the source code of this file.
Classes | |
class | CBlockFileInfo |
class | CBlockIndex |
The block chain is a tree shaped structure starting with the genesis block at the root, with each block potentially having multiple candidates to be the next block. More... | |
class | CDiskBlockIndex |
Used to marshal pointers into hashes for db storage. More... | |
class | CChain |
An in-memory indexed chain of blocks. More... | |
Enumerations | |
enum | BlockStatus : uint32_t { BLOCK_VALID_UNKNOWN = 0, BLOCK_VALID_RESERVED = 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, BLOCK_OPT_WITNESS = 128, BLOCK_ASSUMED_VALID = 256 } |
Functions | |
arith_uint256 | GetBlockProof (const CBlockIndex &block) |
int64_t | GetBlockProofEquivalentTime (const CBlockIndex &to, const CBlockIndex &from, const CBlockIndex &tip, const Consensus::Params &) |
Return the time it would take to redo the work difference between from and to, assuming the current hashrate corresponds to the difficulty at tip, in seconds. More... | |
const CBlockIndex * | LastCommonAncestor (const CBlockIndex *pa, const CBlockIndex *pb) |
Find the forking point between two chain tips. More... | |
Variables | |
static constexpr int64_t | MAX_FUTURE_BLOCK_TIME = 2 * 60 * 60 |
Maximum amount of time that a block timestamp is allowed to exceed the current network-adjusted time before the block will be accepted. More... | |
static constexpr int64_t | TIMESTAMP_WINDOW = MAX_FUTURE_BLOCK_TIME |
Timestamp window used as a grace period by code that compares external timestamps (such as timestamps passed to RPCs, or wallet key creation times) to block timestamps. More... | |
static constexpr int64_t | MAX_BLOCK_TIME_GAP = 90 * 60 |
Maximum gap between node time and block time used for the "Catching up..." mode in GUI. More... | |
RecursiveMutex | cs_main |
Mutex to guard access to validation specific variables, such as reading or changing the chainstate. More... | |
enum BlockStatus : uint32_t |
Enumerator | |
---|---|
BLOCK_VALID_UNKNOWN | Unused. |
BLOCK_VALID_RESERVED | Reserved (was BLOCK_VALID_HEADER). |
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 | full block available in blk*.dat |
BLOCK_HAVE_UNDO | undo data available in rev*.dat |
BLOCK_HAVE_MASK | |
BLOCK_FAILED_VALID | stage after last reached validness failed |
BLOCK_FAILED_CHILD | descends from failed block |
BLOCK_FAILED_MASK | |
BLOCK_OPT_WITNESS | block data in blk*.dat was received with a witness-enforcing client |
BLOCK_ASSUMED_VALID | If set, this indicates that the block index entry is assumed-valid. Certain diagnostics will be skipped in e.g. CheckBlockIndex(). It almost certainly means that the block's full validation is pending on a background chainstate. See |
arith_uint256 GetBlockProof | ( | const CBlockIndex & | block | ) |
int64_t GetBlockProofEquivalentTime | ( | const CBlockIndex & | to, |
const CBlockIndex & | from, | ||
const CBlockIndex & | tip, | ||
const Consensus::Params & | |||
) |
const CBlockIndex* LastCommonAncestor | ( | const CBlockIndex * | pa, |
const CBlockIndex * | pb | ||
) |
RecursiveMutex cs_main |
Mutex to guard access to validation specific variables, such as reading or changing the chainstate.
This may also need to be locked when updating the transaction pool, e.g. on AcceptToMemoryPool. See CTxMemPool::cs comment for details.
The transaction pool has a separate lock to allow reading from it and the chainstate at the same time.
Definition at line 138 of file validation.cpp.
|
staticconstexpr |
Maximum gap between node time and block time used for the "Catching up..." mode in GUI.
|
staticconstexpr |
|
staticconstexpr |