5#ifndef BITCOIN_NODE_CONTEXT_H
6#define BITCOIN_NODE_CONTEXT_H
43class BlockTemplateManager;
44class KernelNotifications;
59 std::unique_ptr<kernel::Context>
kernel;
78 std::unique_ptr<interfaces::Chain>
chain;
Stochastic address manager.
Base class for indices of blockchain data.
Simple class for background tasks that should be run periodically or once "after a while".
CTxMemPool stores valid-according-to-the-current-best-chain transactions that may be included in the ...
Interface for managing multiple Chainstate objects, where each chainstate is associated with chainsta...
RAII class initializing and deinitializing global state for elliptic curve support.
Manages fee rate estimators.
Controller that connects to Tor control socket, authenticate, then create and maintain an ephemeral o...
Initial interface created when a process is first started, and used to give and get access to other i...
Wallet chain client that in addition to having chain client methods for starting up,...
Helper class that manages an interrupt flag, and allows a thread or signal to interrupt another threa...
std::thread thread
Thread variable should be after other struct members so the thread does not start until the other mem...
NodeContext struct containing references to chain state and connection state.
std::unique_ptr< ValidationSignals > validation_signals
Issues calls about blocks and transactions.
std::unique_ptr< TorController > tor_controller
std::unique_ptr< CConnman > connman
std::unique_ptr< kernel::Context > kernel
libbitcoin_kernel context
std::vector< BaseIndex * > indexes
std::vector< std::unique_ptr< interfaces::ChainClient > > chain_clients
List of all chain clients (wallet processes or other client) connected to node.
std::unique_ptr< CTxMemPool > mempool
std::unique_ptr< BanMan > banman
std::unique_ptr< BlockTemplateManager > block_template_manager
Must be destroyed before its dependencies (holds references to them).
std::unique_ptr< AddrMan > addrman
std::function< void()> rpc_interruption_point
std::unique_ptr< ChainstateManager > chainman
std::unique_ptr< node::Warnings > warnings
Manages all the node warnings.
std::unique_ptr< FeeRateEstimatorManager > fee_estimator_man
NodeContext()
Declare default constructor and destructor that are not inline, so code instantiating the NodeContext...
std::function< bool()> shutdown_request
Function to request a shutdown.
std::unique_ptr< KernelNotifications > notifications
Issues blocking calls about sync status, errors and warnings.
std::unique_ptr< CScheduler > scheduler
util::SignalInterrupt * shutdown_signal
Interrupt object used to track whether node shutdown was requested.
std::unique_ptr< PeerManager > peerman
std::atomic< int > exit_status
std::unique_ptr< const NetGroupManager > netgroupman
interfaces::WalletLoader * wallet_loader
std::thread background_init_thread
std::unique_ptr< ECC_Context > ecc_context
std::unique_ptr< interfaces::Chain > chain