![]() |
Bitcoin ABC
0.26.3
P2P Digital Currency
|
Classes | |
struct | CImportingNow |
class | BlockManager |
Maintains a tree of blocks (stored in m_block_index ) which is consulted to determine where the most-work tip is. More... | |
struct | CacheSizes |
struct | CCoinsStats |
struct | NodeContext |
NodeContext struct containing references to chain state and connection state. More... | |
struct | CBlockTemplateEntry |
struct | CBlockTemplate |
class | BlockAssembler |
Generate a new block, without valid proof-of-work. More... | |
struct | PSBTInputAnalysis |
Holds an analysis of one input from a PSBT. More... | |
struct | PSBTAnalysis |
Holds the results of AnalyzePSBT (miscellaneous information about a PSBT) More... | |
class | SnapshotMetadata |
Metadata describing a serialized version of a UTXO set from which an assumeutxo Chainstate can be constructed. More... | |
Typedefs | |
using | BlockMap = std::unordered_map< BlockHash, CBlockIndex, BlockHasher > |
Functions | |
std::atomic_bool | fImporting (false) |
std::atomic_bool | fReindex (false) |
static FILE * | OpenUndoFile (const FlatFilePos &pos, bool fReadOnly) |
Open an undo file (rev?????.dat) More... | |
static FlatFileSeq | BlockFileSeq () |
static FlatFileSeq | UndoFileSeq () |
const CBlockIndex * | GetFirstStoredBlock (const CBlockIndex *start_block) |
static bool | UndoWriteToDisk (const CBlockUndo &blockundo, FlatFilePos &pos, const BlockHash &hashBlock, const CMessageHeader::MessageMagic &messageStart) |
bool | UndoReadFromDisk (CBlockUndo &blockundo, const CBlockIndex *pindex) |
void | UnlinkPrunedFiles (const std::set< int > &setFilesToPrune) |
Actually unlink the specified files. More... | |
FILE * | OpenBlockFile (const FlatFilePos &pos, bool fReadOnly=false) |
Open a block file (blk?????.dat) More... | |
fs::path | GetBlockPosFilename (const FlatFilePos &pos) |
Translation to a filesystem path. More... | |
static bool | WriteBlockToDisk (const CBlock &block, FlatFilePos &pos, const CMessageHeader::MessageMagic &messageStart) |
bool | ReadBlockFromDisk (CBlock &block, const FlatFilePos &pos, const Consensus::Params &consensusParams) |
Functions for disk access for blocks. More... | |
bool | ReadBlockFromDisk (CBlock &block, const CBlockIndex *pindex, const Consensus::Params ¶ms) |
bool | ReadTxFromDisk (CMutableTransaction &tx, const FlatFilePos &pos) |
Functions for disk access for txs. More... | |
bool | ReadTxUndoFromDisk (CTxUndo &tx_undo, const FlatFilePos &pos) |
void | ThreadImport (const Config &config, ChainstateManager &chainman, std::vector< fs::path > vImportFiles, const ArgsManager &args) |
CacheSizes | CalculateCacheSizes (const ArgsManager &args, size_t n_indexes) |
std::optional< ChainstateLoadingError > | LoadChainstate (bool fReset, ChainstateManager &chainman, CTxMemPool *mempool, bool fPruneMode, const Consensus::Params &consensus_params, bool fReindexChainState, int64_t nBlockTreeDBCache, int64_t nCoinDBCache, int64_t nCoinCacheUsage, bool block_tree_db_in_memory, bool coins_db_in_memory, std::function< bool()> shutdown_requested=nullptr, std::function< void()> coins_error_cb=nullptr) |
This sequence can have 4 types of outcomes: More... | |
std::optional< ChainstateLoadVerifyError > | VerifyLoadedChainstate (ChainstateManager &chainman, bool fReset, bool fReindexChainState, const Config &config, unsigned int check_blocks, unsigned int check_level, std::function< int64_t()> get_unix_time_seconds) |
void | FindCoins (const NodeContext &node, std::map< COutPoint, Coin > &coins) |
Look up unspent output information. More... | |
uint64_t | GetBogoSize (const CScript &script_pub_key) |
CDataStream | TxOutSer (const COutPoint &outpoint, const Coin &coin) |
static void | ApplyHash (CHashWriter &ss, const TxId &txid, const std::map< uint32_t, Coin > &outputs) |
Warning: be very careful when changing this! assumeutxo and UTXO snapshot validation commitments are reliant on the hash constructed by this function. More... | |
static void | ApplyHash (std::nullptr_t, const TxId &txid, const std::map< uint32_t, Coin > &outputs) |
static void | ApplyHash (MuHash3072 &muhash, const TxId &txid, const std::map< uint32_t, Coin > &outputs) |
static void | ApplyStats (CCoinsStats &stats, const TxId &txid, const std::map< uint32_t, Coin > &outputs) |
template<typename T > | |
static bool | GetUTXOStats (CCoinsView *view, BlockManager &blockman, CCoinsStats &stats, T hash_obj, const std::function< void()> &interruption_point, const CBlockIndex *pindex) |
Calculate statistics about the unspent transaction output set. More... | |
bool | GetUTXOStats (CCoinsView *view, node::BlockManager &blockman, CCoinsStats &stats, const std::function< void()> &interruption_point={}, const CBlockIndex *pindex=nullptr) |
Calculate statistics about the unspent transaction output set. More... | |
static void | PrepareHash (CHashWriter &ss, const CCoinsStats &stats) |
static void | PrepareHash (MuHash3072 &muhash, CCoinsStats &stats) |
static void | PrepareHash (std::nullptr_t, CCoinsStats &stats) |
static void | FinalizeHash (CHashWriter &ss, CCoinsStats &stats) |
static void | FinalizeHash (MuHash3072 &muhash, CCoinsStats &stats) |
static void | FinalizeHash (std::nullptr_t, CCoinsStats &stats) |
int64_t | UpdateTime (CBlockHeader *pblock, const CChainParams &chainParams, const CBlockIndex *pindexPrev) |
static BlockAssembler::Options | DefaultOptions (const Config &config) |
static const std::vector< uint8_t > | getExcessiveBlockSizeSig (uint64_t nExcessiveBlockSize) |
void | IncrementExtraNonce (CBlock *pblock, const CBlockIndex *pindexPrev, uint64_t nExcessiveBlockSize, unsigned int &nExtraNonce) |
Modify the extranonce in a block. More... | |
PSBTAnalysis | AnalyzePSBT (PartiallySignedTransaction psbtx) |
Provides helpful miscellaneous information about where a PSBT is in the signing workflow. More... | |
static TransactionError | HandleATMPError (const TxValidationState &state, std::string &err_string_out) |
TransactionError | BroadcastTransaction (NodeContext &node, const Config &config, CTransactionRef tx, std::string &err_string, Amount max_tx_fee, bool relay, bool wait_callback) |
Submit a transaction to the mempool and (optionally) relay it to all P2P peers. More... | |
CTransactionRef | GetTransaction (const CBlockIndex *const block_index, const CTxMemPool *const mempool, const TxId &txid, const Consensus::Params &consensusParams, BlockHash &hashBlock) |
Return transaction with a given txid. More... | |
Variables | |
bool | fPruneMode = false |
Pruning-related variables and constants. More... | |
uint64_t | nPruneTarget = 0 |
Number of MiB of block files that we're trying to stay below. More... | |
static constexpr bool | DEFAULT_STOPAFTERBLOCKIMPORT {false} |
static constexpr unsigned int | BLOCKFILE_CHUNK_SIZE = 0x1000000 |
The pre-allocation chunk size for blk?????.dat files (since 0.8) More... | |
static const unsigned int | UNDOFILE_CHUNK_SIZE = 0x100000 |
The pre-allocation chunk size for rev?????.dat files (since 0.8) More... | |
static const unsigned int | MAX_BLOCKFILE_SIZE = 0x8000000 |
The maximum size of a blk?????.dat file (since 0.8) More... | |
std::atomic_bool | fImporting |
std::atomic_bool | fReindex |
const CBlockIndex *GetFirstStoredBlock(const CBlockIndex *start_block) EXCLUSIVE_LOCKS_REQUIRED(voi | CleanupBlockRevFiles )() |
Find the first block that is not pruned. More... | |
static const bool | DEFAULT_PRINTPRIORITY = false |
static const CFeeRate | DEFAULT_MAX_RAW_TX_FEE_RATE {COIN / 10} |
Maximum fee rate for sendrawtransaction and testmempoolaccept RPC calls. More... | |
using node::BlockMap = typedef std::unordered_map<BlockHash, CBlockIndex, BlockHasher> |
Definition at line 59 of file blockstorage.h.
|
strong |
Definition at line 21 of file chainstate.h.
|
strong |
Enumerator | |
---|---|
ERROR_BLOCK_FROM_FUTURE | |
ERROR_CORRUPTED_BLOCK_DB | |
ERROR_GENERIC_FAILURE |
Definition at line 70 of file chainstate.h.
|
strong |
Enumerator | |
---|---|
HASH_SERIALIZED | |
MUHASH | |
NONE |
Definition at line 25 of file coinstats.h.
PSBTAnalysis node::AnalyzePSBT | ( | PartiallySignedTransaction | psbtx | ) |
Provides helpful miscellaneous information about where a PSBT is in the signing workflow.
[in] | psbtx | the PSBT to analyze |
Definition at line 16 of file psbt.cpp.
|
static |
Warning: be very careful when changing this! assumeutxo and UTXO snapshot validation commitments are reliant on the hash constructed by this function.
If the construction of this hash is changed, it will invalidate existing UTXO snapshots. This will not result in any kind of consensus failure, but it will force clients that were expecting to make use of assumeutxo to do traditional IBD instead.
It is also possible, though very unlikely, that a change in this construction could cause a previously invalid (and potentially malicious) UTXO snapshot to be considered valid.
Definition at line 47 of file coinstats.cpp.
|
static |
|
static |
Definition at line 66 of file coinstats.cpp.
|
static |
Definition at line 78 of file coinstats.cpp.
|
static |
Definition at line 555 of file blockstorage.cpp.
TransactionError node::BroadcastTransaction | ( | NodeContext & | node, |
const Config & | config, | ||
CTransactionRef | tx, | ||
std::string & | err_string, | ||
Amount | max_tx_fee, | ||
bool | relay, | ||
bool | wait_callback | ||
) |
Submit a transaction to the mempool and (optionally) relay it to all P2P peers.
Mempool submission can be synchronous (will await mempool entry notification over the CValidationInterface) or asynchronous (will submit and not wait for notification), depending on the value of wait_callback. wait_callback MUST NOT be set while cs_main, cs_mempool or cs_wallet are held to avoid deadlock.
[in] | node | reference to node context |
[in] | tx | the transaction to broadcast |
[out] | err_string | reference to std::string to fill with error string if available |
[in] | max_tx_fee | reject txs with fees higher than this (if 0, accept any fee) |
[in] | relay | flag if both mempool insertion and p2p relay are requested |
[in] | wait_callback | wait until callbacks have been processed to avoid stale result due to a sequentially RPC. |
Definition at line 37 of file transaction.cpp.
CacheSizes node::CalculateCacheSizes | ( | const ArgsManager & | args, |
size_t | n_indexes | ||
) |
Definition at line 12 of file caches.cpp.
|
static |
std::atomic_bool node::fImporting | ( | false | ) |
|
static |
Definition at line 177 of file coinstats.cpp.
|
static |
|
static |
Definition at line 185 of file coinstats.cpp.
void node::FindCoins | ( | const NodeContext & | node, |
std::map< COutPoint, Coin > & | coins | ||
) |
Look up unspent output information.
Returns coins in the mempool and in the current chain UTXO set. Iterates through all the keys in the map and populates the values.
[in] | node | The node context to use for lookup |
[in,out] | coins | map to fill |
Definition at line 12 of file coin.cpp.
std::atomic_bool node::fReindex | ( | false | ) |
fs::path node::GetBlockPosFilename | ( | const FlatFilePos & | pos | ) |
Translation to a filesystem path.
Definition at line 575 of file blockstorage.cpp.
uint64_t node::GetBogoSize | ( | const CScript & | script_pub_key | ) |
Definition at line 21 of file coinstats.cpp.
|
static |
const CBlockIndex* node::GetFirstStoredBlock | ( | const CBlockIndex * | start_block | ) |
Definition at line 389 of file blockstorage.cpp.
CTransactionRef node::GetTransaction | ( | const CBlockIndex *const | block_index, |
const CTxMemPool *const | mempool, | ||
const TxId & | txid, | ||
const Consensus::Params & | consensusParams, | ||
BlockHash & | hashBlock | ||
) |
Return transaction with a given txid.
If mempool is provided and block_index is not provided, check it first for the tx. If -txindex is available, check it next for the tx. Finally, if block_index is provided, check for tx by reading entire block from disk.
[in] | block_index | The block to read from disk, or nullptr |
[in] | mempool | If provided, check mempool for tx |
[in] | txid | The txid |
[in] | consensusParams | The params |
[out] | hashBlock | The block hash, if the tx was found via -txindex or block_index |
Definition at line 129 of file transaction.cpp.
|
static |
Calculate statistics about the unspent transaction output set.
Definition at line 91 of file coinstats.cpp.
bool node::GetUTXOStats | ( | CCoinsView * | view, |
BlockManager & | blockman, | ||
CCoinsStats & | stats, | ||
const std::function< void()> & | interruption_point, | ||
const CBlockIndex * | pindex | ||
) |
Calculate statistics about the unspent transaction output set.
Definition at line 147 of file coinstats.cpp.
|
static |
Definition at line 24 of file transaction.cpp.
void node::IncrementExtraNonce | ( | CBlock * | pblock, |
const CBlockIndex * | pindexPrev, | ||
uint64_t | nExcessiveBlockSize, | ||
unsigned int & | nExtraNonce | ||
) |
std::optional< ChainstateLoadingError > node::LoadChainstate | ( | bool | fReset, |
ChainstateManager & | chainman, | ||
CTxMemPool * | mempool, | ||
bool | fPruneMode, | ||
const Consensus::Params & | consensus_params, | ||
bool | fReindexChainState, | ||
int64_t | nBlockTreeDBCache, | ||
int64_t | nCoinDBCache, | ||
int64_t | nCoinCacheUsage, | ||
bool | block_tree_db_in_memory, | ||
bool | coins_db_in_memory, | ||
std::function< bool()> | shutdown_requested = nullptr , |
||
std::function< void()> | coins_error_cb = nullptr |
||
) |
This sequence can have 4 types of outcomes:
Currently, LoadChainstate returns a std::optional<ChainstateLoadingError> which:
Either "Soft failure", "Hard failure", or "Shutdown requested", differentiable by the specific enumerator.
Note that a return value of SHUTDOWN_PROBED means ONLY that "during this sequence, when we explicitly checked shutdown_requested() at arbitrary points, one of those calls returned true". Therefore, a return value other than SHUTDOWN_PROBED does not guarantee that shutdown_requested() hasn't been called indirectly.
Definition at line 14 of file chainstate.cpp.
FILE * node::OpenBlockFile | ( | const FlatFilePos & | pos, |
bool | fReadOnly | ||
) |
Open a block file (blk?????.dat)
Definition at line 566 of file blockstorage.cpp.
|
static |
Open an undo file (rev?????.dat)
Definition at line 571 of file blockstorage.cpp.
|
static |
|
static |
Definition at line 174 of file coinstats.cpp.
|
static |
Definition at line 175 of file coinstats.cpp.
bool node::ReadBlockFromDisk | ( | CBlock & | block, |
const CBlockIndex * | pindex, | ||
const Consensus::Params & | params | ||
) |
bool node::ReadBlockFromDisk | ( | CBlock & | block, |
const FlatFilePos & | pos, | ||
const Consensus::Params & | params | ||
) |
Functions for disk access for blocks.
Definition at line 730 of file blockstorage.cpp.
bool node::ReadTxFromDisk | ( | CMutableTransaction & | tx, |
const FlatFilePos & | pos | ||
) |
Functions for disk access for txs.
Definition at line 776 of file blockstorage.cpp.
bool node::ReadTxUndoFromDisk | ( | CTxUndo & | tx_undo, |
const FlatFilePos & | pos | ||
) |
void node::ThreadImport | ( | const Config & | config, |
ChainstateManager & | chainman, | ||
std::vector< fs::path > | vImportFiles, | ||
const ArgsManager & | args | ||
) |
Definition at line 853 of file blockstorage.cpp.
CDataStream node::TxOutSer | ( | const COutPoint & | outpoint, |
const Coin & | coin | ||
) |
Definition at line 27 of file coinstats.cpp.
|
static |
Definition at line 562 of file blockstorage.cpp.
bool node::UndoReadFromDisk | ( | CBlockUndo & | blockundo, |
const CBlockIndex * | pindex | ||
) |
Definition at line 476 of file blockstorage.cpp.
|
static |
void node::UnlinkPrunedFiles | ( | const std::set< int > & | setFilesToPrune | ) |
Actually unlink the specified files.
Definition at line 545 of file blockstorage.cpp.
int64_t node::UpdateTime | ( | CBlockHeader * | pblock, |
const CChainParams & | chainParams, | ||
const CBlockIndex * | pindexPrev | ||
) |
std::optional< ChainstateLoadVerifyError > node::VerifyLoadedChainstate | ( | ChainstateManager & | chainman, |
bool | fReset, | ||
bool | fReindexChainState, | ||
const Config & | config, | ||
unsigned int | check_blocks, | ||
unsigned int | check_level, | ||
std::function< int64_t()> | get_unix_time_seconds | ||
) |
|
static |
|
staticconstexpr |
The pre-allocation chunk size for blk?????.dat files (since 0.8)
Definition at line 41 of file blockstorage.h.
void node::CleanupBlockRevFiles | ( | ) |
Find the first block that is not pruned.
Definition at line 205 of file blockstorage.h.
Maximum fee rate for sendrawtransaction and testmempoolaccept RPC calls.
Also used by the GUI when broadcasting a completed PSBT. By default, a transaction with a fee rate higher than this will be rejected by these RPCs and the GUI. This can be overridden with the maxfeerate argument.
Definition at line 32 of file transaction.h.
|
staticconstexpr |
Definition at line 38 of file blockstorage.h.
|
extern |
bool node::fPruneMode = false |
Pruning-related variables and constants.
True if we're running in -prune mode.
Definition at line 27 of file blockstorage.cpp.
|
extern |
|
static |
The maximum size of a blk?????.dat file (since 0.8)
Definition at line 45 of file blockstorage.h.
uint64_t node::nPruneTarget = 0 |
Number of MiB of block files that we're trying to stay below.
Definition at line 28 of file blockstorage.cpp.
|
static |
The pre-allocation chunk size for rev?????.dat files (since 0.8)
Definition at line 43 of file blockstorage.h.