![]() |
Bitcoin Core 32.99.0
P2P Digital Currency
|
#include <rpc/blockchain.h>#include <rpc/register.h>#include <arith_uint256.h>#include <blockfilter.h>#include <chain.h>#include <chainparams.h>#include <chainparamsbase.h>#include <coins.h>#include <common/args.h>#include <consensus/amount.h>#include <consensus/consensus.h>#include <consensus/params.h>#include <consensus/validation.h>#include <core_io.h>#include <crypto/hex_base.h>#include <dbwrapper.h>#include <deploymentinfo.h>#include <flatfile.h>#include <index/base.h>#include <index/blockfilterindex.h>#include <index/coinstatsindex.h>#include <interfaces/types.h>#include <kernel/coinstats.h>#include <logging/timer.h>#include <net.h>#include <net_processing.h>#include <node/block_template_manager.h>#include <node/blockstorage.h>#include <node/context.h>#include <node/utxo_snapshot.h>#include <node/warnings.h>#include <policy/feerate.h>#include <prevector.h>#include <primitives/block.h>#include <primitives/transaction.h>#include <protocol.h>#include <rpc/rawtransaction_util.h>#include <rpc/request.h>#include <rpc/server.h>#include <rpc/server_util.h>#include <rpc/util.h>#include <script/descriptor.h>#include <script/interpreter.h>#include <script/script.h>#include <script/signingprovider.h>#include <serialize.h>#include <span.h>#include <streams.h>#include <sync.h>#include <tinyformat.h>#include <txdb.h>#include <txmempool.h>#include <uint256.h>#include <undo.h>#include <univalue.h>#include <util/chaintype.h>#include <util/check.h>#include <util/expected.h>#include <util/fs.h>#include <util/log.h>#include <util/result.h>#include <util/string.h>#include <util/syserror.h>#include <util/time.h>#include <util/translation.h>#include <validation.h>#include <validationinterface.h>#include <versionbits.h>#include <algorithm>#include <array>#include <atomic>#include <cerrno>#include <compare>#include <cstddef>#include <cstdint>#include <cstdio>#include <functional>#include <ios>#include <map>#include <memory>#include <optional>#include <ratio>#include <set>#include <span>#include <stdexcept>#include <string>#include <string_view>#include <tuple>#include <vector>Go to the source code of this file.
Classes | |
| struct | CompareBlocksByHeight |
| Comparison function for sorting the getchaintips heads. More... | |
| class | CoinsViewScanReserver |
| class | BlockFiltersScanReserver |
| class | TemporaryPruneLock |
| RAII class that registers a prune lock in its constructor to prevent block data from being pruned, and removes it in its destructor. More... | |
| class | TemporaryUTXODatabase |
| RAII class that creates a temporary database directory in its constructor and removes it in its destructor. More... | |
Variables | |
| static constexpr size_t | PER_UTXO_OVERHEAD = sizeof(COutPoint) + sizeof(uint32_t) |
| static std::atomic< int > | g_scan_progress |
| RAII object to prevent concurrency issue when scanning the txout set. | |
| static std::atomic< bool > | g_scan_in_progress |
| static std::atomic< bool > | g_should_abort_scan |
| static const auto | scan_action_arg_desc |
| static const auto | output_descriptor_obj |
| static const auto | scan_objects_arg_desc |
| static const auto | scan_result_abort |
| static const auto | scan_result_status_none |
| static const auto | scan_result_status_some |
| static std::atomic< int > | g_scanfilter_progress |
| RAII object to prevent concurrency issue when scanning blockfilters. | |
| static std::atomic< int > | g_scanfilter_progress_height |
| static std::atomic< bool > | g_scanfilter_in_progress |
| static std::atomic< bool > | g_scanfilter_should_abort_scan |
| const std::vector< RPCResult > | RPCHelpForChainstate |
| UniValue blockheaderToJSON | ( | const CBlockIndex & | tip, |
| const CBlockIndex & | blockindex, | ||
| const uint256 | pow_limit | ||
| ) |
Block header to JSON.
Definition at line 193 of file blockchain.cpp.
| UniValue blockToJSON | ( | BlockManager & | blockman, |
| const CBlock & | block, | ||
| const CBlockIndex & | tip, | ||
| const CBlockIndex & | blockindex, | ||
| TxVerbosity | verbosity, | ||
| const uint256 | pow_limit | ||
| ) |
Block description to JSON.
Definition at line 241 of file blockchain.cpp.
| void CalculatePercentilesByWeight | ( | CAmount | result[NUM_GETBLOCKSTATS_PERCENTILES], |
| std::vector< std::pair< CAmount, int64_t > > & | scores, | ||
| int64_t | total_weight | ||
| ) |
Used by getblockstats to get feerates at different percentiles by weight
Definition at line 1954 of file blockchain.cpp.
Definition at line 1939 of file blockchain.cpp.
| void CheckBlockDataAvailability | ( | BlockManager & | blockman, |
| const CBlockIndex & | blockindex, | ||
| bool | check_for_undo | ||
| ) |
Definition at line 710 of file blockchain.cpp.
|
static |
Definition at line 2545 of file blockchain.cpp.
| UniValue coinbaseTxToJSON | ( | const CTransaction & | coinbase_tx | ) |
Serialize coinbase transaction metadata.
Definition at line 224 of file blockchain.cpp.
|
static |
Definition at line 155 of file blockchain.cpp.
| UniValue CreateRolledBackUTXOSnapshot | ( | NodeContext & | node, |
| Chainstate & | chainstate, | ||
| const CBlockIndex * | target, | ||
| AutoFile && | afile, | ||
| const fs::path & | path, | ||
| const fs::path & | tmppath, | ||
| bool | in_memory | ||
| ) |
Definition at line 3242 of file blockchain.cpp.
| UniValue CreateUTXOSnapshot | ( | node::NodeContext & | node, |
| Chainstate & | chainstate, | ||
| AutoFile && | afile, | ||
| const fs::path & | path, | ||
| const fs::path & | tmppath | ||
| ) |
Helper to create UTXO snapshots given a chainstate and a file handle.
Definition at line 3497 of file blockchain.cpp.
Serialize the UTXO set to a file for loading elsewhere.
Definition at line 3104 of file blockchain.cpp.
Definition at line 308 of file blockchain.cpp.
Definition at line 834 of file blockchain.cpp.
| RPCMethod getblockchaininfo | ( | ) |
Definition at line 1398 of file blockchain.cpp.
|
static |
Definition at line 725 of file blockchain.cpp.
Definition at line 286 of file blockchain.cpp.
|
static |
Definition at line 776 of file blockchain.cpp.
Definition at line 2999 of file blockchain.cpp.
Definition at line 553 of file blockchain.cpp.
Definition at line 608 of file blockchain.cpp.
Definition at line 638 of file blockchain.cpp.
Definition at line 1994 of file blockchain.cpp.
Definition at line 3609 of file blockchain.cpp.
Definition at line 1612 of file blockchain.cpp.
Definition at line 1847 of file blockchain.cpp.
| RPCMethod getdeploymentinfo | ( | ) |
Definition at line 1544 of file blockchain.cpp.
Definition at line 2763 of file blockchain.cpp.
Definition at line 532 of file blockchain.cpp.
| double GetDifficulty | ( | const CBlockIndex & | blockindex | ) |
Get the difficulty of the net wrt to the given block index.
Definition at line 135 of file blockchain.cpp.
| std::optional< int > GetPruneHeight | ( | const BlockManager & | blockman, |
| const CChain & | chain | ||
| ) |
Return height of highest block that has been pruned, or std::nullopt if no blocks have been pruned.
Definition at line 922 of file blockchain.cpp.
|
static |
Definition at line 742 of file blockchain.cpp.
Definition at line 1216 of file blockchain.cpp.
Definition at line 1049 of file blockchain.cpp.
|
static |
Definition at line 757 of file blockchain.cpp.
|
static |
Calculate statistics about the unspent transaction output set.
| [in] | index_requested | Signals if the coinstatsindex should be used (when available). |
Definition at line 1024 of file blockchain.cpp.
Definition at line 1776 of file blockchain.cpp.
| void InvalidateBlock | ( | ChainstateManager & | chainman, |
| const uint256 | block_hash | ||
| ) |
Definition at line 1755 of file blockchain.cpp.
Definition at line 3515 of file blockchain.cpp.
|
static |
Definition at line 165 of file blockchain.cpp.
| CoinStatsHashType ParseHashType | ( | std::string_view | hash_type_input | ) |
Definition at line 1006 of file blockchain.cpp.
Definition at line 1711 of file blockchain.cpp.
| std::tuple< std::unique_ptr< CCoinsViewCursor >, CCoinsStats, const CBlockIndex * > PrepareUTXOSnapshot | ( | Chainstate & | chainstate, |
| const std::function< void()> & | interruption_point | ||
| ) |
Definition at line 3381 of file blockchain.cpp.
Definition at line 947 of file blockchain.cpp.
Definition at line 1821 of file blockchain.cpp.
| void ReconsiderBlock | ( | ChainstateManager & | chainman, |
| uint256 | block_hash | ||
| ) |
Definition at line 1801 of file blockchain.cpp.
Definition at line 3669 of file blockchain.cpp.
Definition at line 2570 of file blockchain.cpp.
Definition at line 2354 of file blockchain.cpp.
|
static |
|
static |
Definition at line 512 of file blockchain.cpp.
Definition at line 1296 of file blockchain.cpp.
Definition at line 388 of file blockchain.cpp.
Definition at line 449 of file blockchain.cpp.
Definition at line 329 of file blockchain.cpp.
| UniValue WriteUTXOSnapshot | ( | Chainstate & | chainstate, |
| CCoinsViewCursor * | pcursor, | ||
| CCoinsStats * | maybe_stats, | ||
| const CBlockIndex * | tip, | ||
| AutoFile && | afile, | ||
| const fs::path & | path, | ||
| const fs::path & | temppath, | ||
| const std::function< void()> & | interruption_point = {} |
||
| ) |
Definition at line 3418 of file blockchain.cpp.
|
static |
Definition at line 2289 of file blockchain.cpp.
|
static |
RAII object to prevent concurrency issue when scanning the txout set.
Definition at line 2288 of file blockchain.cpp.
|
static |
Definition at line 2520 of file blockchain.cpp.
|
static |
RAII object to prevent concurrency issue when scanning blockfilters.
Definition at line 2518 of file blockchain.cpp.
|
static |
Definition at line 2519 of file blockchain.cpp.
|
static |
Definition at line 2521 of file blockchain.cpp.
|
static |
Definition at line 2290 of file blockchain.cpp.
|
static |
Definition at line 2323 of file blockchain.cpp.
Definition at line 1992 of file blockchain.cpp.
| const std::vector<RPCResult> RPCHelpForChainstate |
Definition at line 3596 of file blockchain.cpp.
|
static |
Definition at line 2316 of file blockchain.cpp.
|
static |
Definition at line 2331 of file blockchain.cpp.
|
static |
Definition at line 2341 of file blockchain.cpp.
|
static |
Definition at line 2345 of file blockchain.cpp.
|
static |
Definition at line 2348 of file blockchain.cpp.