Bitcoin Core 28.99.0
P2P Digital Currency
|
#include <arith_uint256.h>
#include <consensus/params.h>
#include <flatfile.h>
#include <kernel/cs_main.h>
#include <primitives/block.h>
#include <serialize.h>
#include <sync.h>
#include <uint256.h>
#include <util/time.h>
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <string>
#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_STATUS_RESERVED = 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... | |
CBlockLocator | GetLocator (const CBlockIndex *index) |
Get a locator for a block index entry. More... | |
std::vector< uint256 > | LocatorEntries (const CBlockIndex *index) |
Construct a list of hash entries to put in a locator. 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 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... | |
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. If a block's validity is at least VALID_TRANSACTIONS, CBlockIndex::nTx will be set. If a block and all previous blocks back to the genesis block or an assumeutxo snapshot block are at least VALID_TRANSACTIONS, CBlockIndex::m_chain_tx_count will be set. |
BLOCK_VALID_CHAIN | Outputs do not overspend inputs, no double spends, coinbase output ok, no immature coinbase spends, BIP30. Implies all previous blocks back to the genesis block or an assumeutxo snapshot block are at least VALID_CHAIN. |
BLOCK_VALID_SCRIPTS | Scripts & signatures ok. Implies all previous blocks back to the genesis block or an assumeutxo snapshot block are at least VALID_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_STATUS_RESERVED | Unused flag that was previously set on assumeutxo snapshot blocks and their ancestors before they were validated, and unset when they were validated. |
arith_uint256 GetBlockProof | ( | const CBlockIndex & | block | ) |
int64_t GetBlockProofEquivalentTime | ( | const CBlockIndex & | to, |
const CBlockIndex & | from, | ||
const CBlockIndex & | tip, | ||
const Consensus::Params & | params | ||
) |
CBlockLocator GetLocator | ( | const CBlockIndex * | index | ) |
const CBlockIndex * LastCommonAncestor | ( | const CBlockIndex * | pa, |
const CBlockIndex * | pb | ||
) |
std::vector< uint256 > LocatorEntries | ( | const CBlockIndex * | index | ) |
|
staticconstexpr |
Maximum gap between node time and block time used for the "Catching up..." mode in GUI.
|
staticconstexpr |
|
staticconstexpr |