Aggregates the node's subsystems and shared state during its lifetime.
Declared in <node/context.h>
struct NodeContext;
| Name | Description |
|---|---|
NodeContext [constructor] | Declare default constructor and destructor that are not inline, so code instantiating the NodeContext struct doesn't need to #include class definitions for all the unique_ptr members. |
~NodeContext [destructor] | Destroy the node context and release its owned members. |
| Name | Description |
|---|---|
addrman | Address manager tracking known peer addresses. |
args | Parsed command-line and configuration arguments (memory not owned by this struct). |
background_init_thread | Background thread that performs the remainder of node initialization. |
banman | Tracks and persists banned and discouraged peers. |
chain | Interface giving access to the node's chain state. |
chain_clients | List of all chain clients (wallet processes or other client) connected to node. |
chainman | Owns and coordinates the active and background chainstates. |
connman | Manages the node's peer-to-peer network connections. |
ecc_context | Owns the process-wide libsecp256k1 signing and verification context. |
exit_status | Process exit status, set to a failure value when a fatal error occurs. |
fee_estimator_man | Tracks fee-rate estimates derived from observed transactions. |
indexes | Active optional block-chain indexes (memory not owned by this struct). |
init | Init interface for initializing current process and connecting to other processes. |
kernel | libbitcoin_kernel context |
mempool | The node's memory pool of unconfirmed transactions. |
mining | Reference to chain client that should used to load or create wallets opened by the gui. |
mining_args | Mining options used to create block templates. This value member is an exception to the dependency guidance above because BlockCreateOptions is a minimal dependency. It could be moved to the BlockTemplateCache proposed in bitcoin/bitcoin#33421. |
netgroupman | Maps peer addresses to network groups for connection bucketing. |
notifications | Issues blocking calls about sync status, errors and warnings |
peerman | Drives peer-to-peer message processing and per-peer state. |
rpc_interruption_point | Hook invoked at interruption points during long-running RPCs. |
scheduler | Runs deferred and recurring background tasks. |
shutdown_request | Function to request a shutdown. |
shutdown_signal | Interrupt object used to track whether node shutdown was requested. |
tor_controller | Manages the node's Tor hidden service and control connection. |
validation_signals | Issues calls about blocks and transactions |
wallet_loader | Interface used to load or create wallets, owned elsewhere. |
warnings | Manages all the node warnings |
| Name | Description |
|---|---|
BroadcastTransaction | Submit a transaction to the mempool and (optionally) relay it to all P2P peers. |
FindCoins | 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. |
::AppInitInterfaces | Initialize node and wallet interface pointers. Has no prerequisites or side effects besides allocating memory. |
::AppInitMain | Bitcoin core main initialization. |
::CreateUTXOSnapshot | Helper to create UTXO snapshots given a chainstate and a file handle. |
::EnsureAddrman | Get the address manager from a node context, asserting it is present. |
::EnsureAnyNodeContext | Extract the node context from an opaque RPC context, asserting it is present. |
::EnsureArgsman | Get the argument manager from a node context, asserting it is present. |
::EnsureBanman | Get the ban manager from a node context, asserting it is present. |
::EnsureChainman | Get the chainstate manager from a node context, asserting it is present. |
::EnsureConnman | Get the connection manager from a node context, asserting it is present. |
::EnsureFeeEstimatorMan | Get the fee estimator from a node context, asserting it is present. |
::EnsureMemPool | Get the mempool from a node context, asserting it is present. |
::EnsureMining | Get the mining interface from a node context, asserting it is present. |
::EnsurePeerman | Get the peer manager from a node context, asserting it is present. |
::InitContext | Initialize node context shutdown and args variables. |
::Interrupt | Interrupt threads |
::Shutdown | Shut down the node, stopping threads and releasing resources. |
::ShutdownRequested | Return whether node shutdown was requested. |
::StartIndexBackgroundSync | Validates requirements to run the indexes and spawns each index initial sync thread |