Bitcoin ABC 0.30.5
P2P Digital Currency
|
Classes | |
class | BlockAssembler |
Generate a new block, without valid proof-of-work. More... | |
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 | CBlockTemplate |
struct | CBlockTemplateEntry |
struct | ChainstateLoadOptions |
class | ImportingNow |
class | KernelNotifications |
struct | NodeContext |
NodeContext struct containing references to chain state and connection state. More... | |
struct | PruneLockInfo |
struct | PSBTAnalysis |
Holds the results of AnalyzePSBT (miscellaneous information about a PSBT) More... | |
struct | PSBTInputAnalysis |
Holds an analysis of one input from 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 > |
using | ChainstateLoadResult = std::tuple< ChainstateLoadStatus, bilingual_str > |
Chainstate load status code and optional error string. More... | |
Enumerations | |
enum class | ChainstateLoadStatus { SUCCESS , FAILURE , FAILURE_FATAL , FAILURE_INCOMPATIBLE_DB , FAILURE_INSUFFICIENT_DBCACHE , INTERRUPTED } |
Chainstate load status. More... | |
Functions | |
std::optional< bilingual_str > | ApplyArgsManOptions (const ArgsManager &args, BlockManager::Options &opts) |
std::atomic_bool | fReindex (false) |
void | ThreadImport (ChainstateManager &chainman, avalanche::Processor *const avalanche, std::vector< fs::path > vImportFiles, const fs::path &mempool_path) |
CacheSizes | CalculateCacheSizes (const ArgsManager &args, size_t n_indexes) |
static ChainstateLoadResult | CompleteChainstateInitialization (ChainstateManager &chainman, const CacheSizes &cache_sizes, const ChainstateLoadOptions &options) EXCLUSIVE_LOCKS_REQUIRED( |
ChainstateLoadResult | LoadChainstate (ChainstateManager &chainman, const CacheSizes &cache_sizes, const ChainstateLoadOptions &options) |
This sequence can have 4 types of outcomes: More... | |
ChainstateLoadResult | VerifyLoadedChainstate (ChainstateManager &chainman, const ChainstateLoadOptions &options) |
std::optional< bilingual_str > | ApplyArgsManOptions (const ArgsManager &args, ChainstateManager::Options &opts) |
void | FindCoins (const NodeContext &node, std::map< COutPoint, Coin > &coins) |
Look up unspent output information. More... | |
void | ReadCoinsViewArgs (const ArgsManager &args, CoinsViewOptions &options) |
std::optional< kernel::CCoinsStats > | GetUTXOStats (CCoinsView *view, node::BlockManager &blockman, kernel::CoinStatsHashType hash_type, const std::function< void()> &interruption_point={}, const CBlockIndex *pindex=nullptr, bool index_requested=true) |
Calculate statistics about the unspent transaction output set. More... | |
void | ReadDatabaseArgs (const ArgsManager &args, DBOptions &options) |
bool | ShouldPersistMempool (const ArgsManager &argsman) |
fs::path | MempoolPath (const ArgsManager &argsman) |
int64_t | UpdateTime (CBlockHeader *pblock, const CChainParams &chainParams, const CBlockIndex *pindexPrev, int64_t adjustedTime) |
static BlockAssembler::Options | DefaultOptions (const Config &config) |
void | ApplyArgsManOptions (const ArgsManager &argsman, PeerManager::Options &options) |
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 (const NodeContext &node, 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, BlockHash &hashBlock, const BlockManager &blockman) |
Return transaction with a given txid. More... | |
bool | WriteSnapshotBaseBlockhash (Chainstate &snapshot_chainstate) |
std::optional< BlockHash > | ReadSnapshotBaseBlockhash (const fs::path &chaindir) |
std::optional< fs::path > | FindSnapshotChainstateDir () |
Return a path to the snapshot-based chainstate dir, if one exists. More... | |
void | ApplyArgsManOptions (const ArgsManager &argsman, ValidationCacheSizes &cache_sizes) |
Variables | |
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... | |
static constexpr size_t | BLOCK_SERIALIZATION_HEADER_SIZE |
Size of header written by WriteBlockToDisk before a serialized CBlock. More... | |
std::atomic_bool | fReindex |
static constexpr bool | DEFAULT_PERSIST_MEMPOOL {true} |
Default for -persistmempool, indicating whether the node should attempt to automatically load the mempool on start and save to disk on shutdown. 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... | |
const fs::path | SNAPSHOT_BLOCKHASH_FILENAME {"base_blockhash"} |
The file in the snapshot chainstate dir which stores the base blockhash. More... | |
bool WriteSnapshotBaseBlockhash(Chainstate &snapshot_chainstate) EXCLUSIVE_LOCKS_REQUIRED(std::optional< BlockHash > ReadSnapshotBaseBlockhash(const fs::path &chaindir) EXCLUSIVE_LOCKS_REQUIRED(constexpr std::string_view | SNAPSHOT_CHAINSTATE_SUFFIX = "_snapshot" |
Write out the blockhash of the snapshot base block that was used to construct this chainstate. More... | |
using node::BlockMap = typedef std::unordered_map<BlockHash, CBlockIndex, BlockHasher> |
Definition at line 60 of file blockstorage.h.
using node::ChainstateLoadResult = typedef std::tuple<ChainstateLoadStatus, bilingual_str> |
Chainstate load status code and optional error string.
Definition at line 56 of file chainstate.h.
|
strong |
Chainstate load status.
Simple applications can just check for the success case, and treat other cases as errors. More complex applications may want to try reindexing in the generic failure case, and pass an interrupt callback and exit cleanly in the interrupted case.
Enumerator | |
---|---|
SUCCESS | |
FAILURE | Generic failure which reindexing may fix. |
FAILURE_FATAL | Fatal error which should not prompt to reindex. |
FAILURE_INCOMPATIBLE_DB | |
FAILURE_INSUFFICIENT_DBCACHE | |
INTERRUPTED |
Definition at line 44 of file chainstate.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.
std::optional< bilingual_str > node::ApplyArgsManOptions | ( | const ArgsManager & | args, |
BlockManager::Options & | opts | ||
) |
std::optional< bilingual_str > node::ApplyArgsManOptions | ( | const ArgsManager & | args, |
ChainstateManager::Options & | opts | ||
) |
void node::ApplyArgsManOptions | ( | const ArgsManager & | argsman, |
PeerManager::Options & | options | ||
) |
void node::ApplyArgsManOptions | ( | const ArgsManager & | argsman, |
ValidationCacheSizes & | cache_sizes | ||
) |
TransactionError node::BroadcastTransaction | ( | const NodeContext & | node, |
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 |
Definition at line 18 of file chainstate.cpp.
|
static |
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::optional< fs::path > node::FindSnapshotChainstateDir | ( | ) |
Return a path to the snapshot-based chainstate dir, if one exists.
Definition at line 86 of file utxo_snapshot.cpp.
std::atomic_bool node::fReindex | ( | false | ) |
CTransactionRef node::GetTransaction | ( | const CBlockIndex *const | block_index, |
const CTxMemPool *const | mempool, | ||
const TxId & | txid, | ||
BlockHash & | hashBlock, | ||
const BlockManager & | blockman | ||
) |
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 |
[out] | hashBlock | The block hash, if the tx was found via -txindex or block_index |
Definition at line 129 of file transaction.cpp.
std::optional< kernel::CCoinsStats > node::GetUTXOStats | ( | CCoinsView * | view, |
node::BlockManager & | blockman, | ||
kernel::CoinStatsHashType | hash_type, | ||
const std::function< void()> & | interruption_point = {} , |
||
const CBlockIndex * | pindex = nullptr , |
||
bool | index_requested = true |
||
) |
Calculate statistics about the unspent transaction output set.
[in] | index_requested | Signals if the coinstatsindex should be used (when available). |
Definition at line 16 of file coinstats.cpp.
|
static |
Definition at line 24 of file transaction.cpp.
ChainstateLoadResult node::LoadChainstate | ( | ChainstateManager & | chainman, |
const CacheSizes & | cache_sizes, | ||
const ChainstateLoadOptions & | options | ||
) |
This sequence can have 4 types of outcomes:
LoadChainstate returns a (status code, error string) tuple.
Definition at line 167 of file chainstate.cpp.
fs::path node::MempoolPath | ( | const ArgsManager & | argsman | ) |
Definition at line 17 of file mempool_persist_args.cpp.
void node::ReadCoinsViewArgs | ( | const ArgsManager & | args, |
CoinsViewOptions & | options | ||
) |
Definition at line 11 of file coins_view_args.cpp.
void node::ReadDatabaseArgs | ( | const ArgsManager & | args, |
DBOptions & | options | ||
) |
Definition at line 11 of file database_args.cpp.
bool node::ShouldPersistMempool | ( | const ArgsManager & | argsman | ) |
Definition at line 13 of file mempool_persist_args.cpp.
void node::ThreadImport | ( | ChainstateManager & | chainman, |
avalanche::Processor *const | avalanche, | ||
std::vector< fs::path > | vImportFiles, | ||
const fs::path & | mempool_path | ||
) |
Definition at line 914 of file blockstorage.cpp.
int64_t node::UpdateTime | ( | CBlockHeader * | pblock, |
const CChainParams & | chainParams, | ||
const CBlockIndex * | pindexPrev, | ||
int64_t | adjustedTime | ||
) |
ChainstateLoadResult node::VerifyLoadedChainstate | ( | ChainstateManager & | chainman, |
const ChainstateLoadOptions & | options | ||
) |
Definition at line 262 of file chainstate.cpp.
bool node::WriteSnapshotBaseBlockhash | ( | Chainstate & | snapshot_chainstate | ) |
Definition at line 19 of file utxo_snapshot.cpp.
|
staticconstexpr |
Size of header written by WriteBlockToDisk before a serialized CBlock.
Definition at line 51 of file blockstorage.h.
|
staticconstexpr |
The pre-allocation chunk size for blk?????.dat files (since 0.8)
Definition at line 44 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 33 of file transaction.h.
|
staticconstexpr |
Default for -persistmempool, indicating whether the node should attempt to automatically load the mempool on start and save to disk on shutdown.
Definition at line 18 of file mempool_persist_args.h.
|
extern |
|
static |
The maximum size of a blk?????.dat file (since 0.8)
Definition at line 48 of file blockstorage.h.
const fs::path node::SNAPSHOT_BLOCKHASH_FILENAME {"base_blockhash"} |
The file in the snapshot chainstate dir which stores the base blockhash.
This is needed to reconstruct snapshot chainstates on init.
Because we only allow loading a single snapshot at a time, there will only be one chainstate directory with this filename present within it.
Definition at line 46 of file utxo_snapshot.h.
|
constexpr |
Write out the blockhash of the snapshot base block that was used to construct this chainstate.
This value is read in during subsequent initializations and used to reconstruct snapshot-based chainstates. Read the blockhash of the snapshot base block that was used to construct the chainstate. Suffix appended to the chainstate (leveldb) dir when created based upon a snapshot.
Definition at line 61 of file utxo_snapshot.h.
|
static |
The pre-allocation chunk size for rev?????.dat files (since 0.8)
Definition at line 46 of file blockstorage.h.