Bitcoin Core 31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
interfaces::Node Class Referenceabstract

Top-level interface for a bitcoin node (bitcoind process). More...

#include <node.h>

Public Types

using NodesStats = std::vector<std::tuple<CNodeStats, bool, CNodeStateStats>>
 Get stats for connected nodes.
using InitMessageFn = std::function<void(const std::string& message)>
 Register handler for init messages.
using MessageBoxFn
 Register handler for message box messages.
using QuestionFn
 Register handler for question messages.
using ShowProgressFn = std::function<void(const std::string& title, int progress, bool resume_possible)>
 Register handler for progress messages.
using InitWalletFn = std::function<void()>
 Register handler for wallet loader constructed messages.
using NotifyNumConnectionsChangedFn = std::function<void(int new_num_connections)>
 Register handler for number of connections changed messages.
using NotifyNetworkActiveChangedFn = std::function<void(bool network_active)>
 Register handler for network active messages.
using NotifyAlertChangedFn = std::function<void()>
 Register handler for notify alert messages.
using BannedListChangedFn = std::function<void()>
 Register handler for ban list messages.
using NotifyBlockTipFn
 Register handler for block tip messages.
using NotifyHeaderTipFn
 Register handler for header tip messages.

Public Member Functions

virtual ~Node ()=default
virtual void initLogging ()=0
 Init logging.
virtual void initParameterInteraction ()=0
 Init parameter interaction.
virtual bilingual_str getWarnings ()=0
 Get warnings.
virtual int getExitStatus ()=0
 Get exit status.
virtual BCLog::CategoryMask getLogCategories ()=0
virtual bool baseInitialize ()=0
 Initialize app dependencies.
virtual bool appInitMain (interfaces::BlockAndHeaderTipInfo *tip_info=nullptr)=0
 Start node.
virtual void appShutdown ()=0
 Stop node.
virtual void startShutdown ()=0
 Start shutdown.
virtual bool shutdownRequested ()=0
 Return whether shutdown was requested.
virtual bool isSettingIgnored (const std::string &name)=0
virtual common::SettingsValue getPersistentSetting (const std::string &name)=0
 Return setting value from <datadir>/settings.json or bitcoin.conf.
virtual void updateRwSetting (const std::string &name, const common::SettingsValue &value)=0
 Update a setting in <datadir>/settings.json.
virtual void forceSetting (const std::string &name, const common::SettingsValue &value)=0
virtual void resetSettings ()=0
virtual void mapPort (bool enable)=0
 Map port.
virtual bool getProxy (Network net, Proxy &proxy_info)=0
 Get proxy.
virtual size_t getNodeCount (ConnectionDirection flags)=0
 Get number of connections.
virtual bool getNodesStats (NodesStats &stats)=0
virtual bool getBanned (banmap_t &banmap)=0
 Get ban map entries.
virtual bool ban (const CNetAddr &net_addr, int64_t ban_time_offset)=0
 Ban node.
virtual bool unban (const CSubNet &ip)=0
 Unban node.
virtual bool disconnectByAddress (const CNetAddr &net_addr)=0
 Disconnect node by address.
virtual bool disconnectById (NodeId id)=0
 Disconnect node by id.
virtual std::vector< std::unique_ptr< ExternalSigner > > listExternalSigners ()=0
 Return list of external signers (attached devices which can sign transactions).
virtual int64_t getTotalBytesRecv ()=0
 Get total bytes recv.
virtual int64_t getTotalBytesSent ()=0
 Get total bytes sent.
virtual size_t getMempoolSize ()=0
 Get mempool size.
virtual size_t getMempoolDynamicUsage ()=0
 Get mempool dynamic usage.
virtual size_t getMempoolMaxUsage ()=0
 Get mempool maximum memory usage.
virtual bool getHeaderTip (int &height, int64_t &block_time)=0
 Get header tip height and time.
virtual int getNumBlocks ()=0
 Get num blocks.
virtual std::map< CNetAddr, LocalServiceInfogetNetLocalAddresses ()=0
 Get network local addresses.
virtual uint256 getBestBlockHash ()=0
 Get best block hash.
virtual int64_t getLastBlockTime ()=0
 Get last block time.
virtual double getVerificationProgress ()=0
 Get verification progress.
virtual bool isInitialBlockDownload ()=0
 Is initial block download.
virtual bool isLoadingBlocks ()=0
 Is loading blocks.
virtual void setNetworkActive (bool active)=0
 Set network active.
virtual bool getNetworkActive ()=0
 Get network active.
virtual CFeeRate getDustRelayFee ()=0
 Get dust relay fee.
virtual UniValue executeRpc (const std::string &command, const UniValue &params, const std::string &uri)=0
 Execute rpc command.
virtual std::vector< std::string > listRpcCommands ()=0
 List rpc commands.
virtual std::optional< CoingetUnspentOutput (const COutPoint &output)=0
 Get unspent output associated with a transaction.
virtual node::TransactionError broadcastTransaction (CTransactionRef tx, CAmount max_tx_fee, std::string &err_string)=0
 Broadcast transaction.
virtual WalletLoaderwalletLoader ()=0
 Get wallet loader.
virtual std::unique_ptr< HandlerhandleInitMessage (InitMessageFn fn)=0
virtual std::unique_ptr< HandlerhandleMessageBox (MessageBoxFn fn)=0
virtual std::unique_ptr< HandlerhandleQuestion (QuestionFn fn)=0
virtual std::unique_ptr< HandlerhandleShowProgress (ShowProgressFn fn)=0
virtual std::unique_ptr< HandlerhandleInitWallet (InitWalletFn fn)=0
virtual std::unique_ptr< HandlerhandleNotifyNumConnectionsChanged (NotifyNumConnectionsChangedFn fn)=0
virtual std::unique_ptr< HandlerhandleNotifyNetworkActiveChanged (NotifyNetworkActiveChangedFn fn)=0
virtual std::unique_ptr< HandlerhandleNotifyAlertChanged (NotifyAlertChangedFn fn)=0
virtual std::unique_ptr< HandlerhandleBannedListChanged (BannedListChangedFn fn)=0
virtual std::unique_ptr< HandlerhandleNotifyBlockTip (NotifyBlockTipFn fn)=0
virtual std::unique_ptr< HandlerhandleNotifyHeaderTip (NotifyHeaderTipFn fn)=0
virtual node::NodeContextcontext ()
virtual void setContext (node::NodeContext *context)

Detailed Description

Top-level interface for a bitcoin node (bitcoind process).

Definition at line 69 of file node.h.

Member Typedef Documentation

◆ BannedListChangedFn

using interfaces::Node::BannedListChangedFn = std::function<void()>

Register handler for ban list messages.

Definition at line 252 of file node.h.

◆ InitMessageFn

using interfaces::Node::InitMessageFn = std::function<void(const std::string& message)>

Register handler for init messages.

Definition at line 217 of file node.h.

◆ InitWalletFn

using interfaces::Node::InitWalletFn = std::function<void()>

Register handler for wallet loader constructed messages.

Definition at line 236 of file node.h.

◆ MessageBoxFn

Initial value:
std::function<bool(const bilingual_str& message, unsigned int style)>
Bilingual messages:
Definition translation.h:24

Register handler for message box messages.

Definition at line 221 of file node.h.

◆ NodesStats

using interfaces::Node::NodesStats = std::vector<std::tuple<CNodeStats, bool, CNodeStateStats>>

Get stats for connected nodes.

Definition at line 132 of file node.h.

◆ NotifyAlertChangedFn

using interfaces::Node::NotifyAlertChangedFn = std::function<void()>

Register handler for notify alert messages.

Definition at line 248 of file node.h.

◆ NotifyBlockTipFn

Initial value:
std::function<void(SynchronizationState, interfaces::BlockTip tip, double verification_progress)>
Block tip (could be a header or not, depends on the subscribed signal).
Definition node.h:275
SynchronizationState
Current sync state passed to tip changed callbacks.
Definition validation.h:93

Register handler for block tip messages.

Definition at line 256 of file node.h.

◆ NotifyHeaderTipFn

Initial value:
std::function<void(SynchronizationState, interfaces::BlockTip tip, bool presync)>

Register handler for header tip messages.

Definition at line 261 of file node.h.

◆ NotifyNetworkActiveChangedFn

using interfaces::Node::NotifyNetworkActiveChangedFn = std::function<void(bool network_active)>

Register handler for network active messages.

Definition at line 244 of file node.h.

◆ NotifyNumConnectionsChangedFn

using interfaces::Node::NotifyNumConnectionsChangedFn = std::function<void(int new_num_connections)>

Register handler for number of connections changed messages.

Definition at line 240 of file node.h.

◆ QuestionFn

Initial value:
std::function<bool(const bilingual_str& message,
const std::string& non_interactive_message,
unsigned int style)>

Register handler for question messages.

Definition at line 226 of file node.h.

◆ ShowProgressFn

using interfaces::Node::ShowProgressFn = std::function<void(const std::string& title, int progress, bool resume_possible)>

Register handler for progress messages.

Definition at line 232 of file node.h.

Constructor & Destructor Documentation

◆ ~Node()

virtual interfaces::Node::~Node ( )
virtualdefault

Member Function Documentation

◆ appInitMain()

virtual bool interfaces::Node::appInitMain ( interfaces::BlockAndHeaderTipInfo * tip_info = nullptr)
pure virtual

Start node.

◆ appShutdown()

virtual void interfaces::Node::appShutdown ( )
pure virtual

Stop node.

◆ ban()

virtual bool interfaces::Node::ban ( const CNetAddr & net_addr,
int64_t ban_time_offset )
pure virtual

Ban node.

◆ baseInitialize()

virtual bool interfaces::Node::baseInitialize ( )
pure virtual

Initialize app dependencies.

Here is the caller graph for this function:

◆ broadcastTransaction()

virtual node::TransactionError interfaces::Node::broadcastTransaction ( CTransactionRef tx,
CAmount max_tx_fee,
std::string & err_string )
pure virtual

Broadcast transaction.

◆ context()

virtual node::NodeContext * interfaces::Node::context ( )
inlinevirtual

Get and set internal node context. Useful for testing, but not accessible across processes.

Definition at line 267 of file node.h.

Here is the caller graph for this function:

◆ disconnectByAddress()

virtual bool interfaces::Node::disconnectByAddress ( const CNetAddr & net_addr)
pure virtual

Disconnect node by address.

◆ disconnectById()

virtual bool interfaces::Node::disconnectById ( NodeId id)
pure virtual

Disconnect node by id.

◆ executeRpc()

virtual UniValue interfaces::Node::executeRpc ( const std::string & command,
const UniValue & params,
const std::string & uri )
pure virtual

Execute rpc command.

◆ forceSetting()

virtual void interfaces::Node::forceSetting ( const std::string & name,
const common::SettingsValue & value )
pure virtual

Force a setting value to be applied, overriding any other configuration source, but not being persisted.

Here is the caller graph for this function:

◆ getBanned()

virtual bool interfaces::Node::getBanned ( banmap_t & banmap)
pure virtual

Get ban map entries.

◆ getBestBlockHash()

virtual uint256 interfaces::Node::getBestBlockHash ( )
pure virtual

Get best block hash.

◆ getDustRelayFee()

virtual CFeeRate interfaces::Node::getDustRelayFee ( )
pure virtual

Get dust relay fee.

◆ getExitStatus()

virtual int interfaces::Node::getExitStatus ( )
pure virtual

Get exit status.

Here is the caller graph for this function:

◆ getHeaderTip()

virtual bool interfaces::Node::getHeaderTip ( int & height,
int64_t & block_time )
pure virtual

Get header tip height and time.

◆ getLastBlockTime()

virtual int64_t interfaces::Node::getLastBlockTime ( )
pure virtual

Get last block time.

◆ getLogCategories()

virtual BCLog::CategoryMask interfaces::Node::getLogCategories ( )
pure virtual

◆ getMempoolDynamicUsage()

virtual size_t interfaces::Node::getMempoolDynamicUsage ( )
pure virtual

Get mempool dynamic usage.

◆ getMempoolMaxUsage()

virtual size_t interfaces::Node::getMempoolMaxUsage ( )
pure virtual

Get mempool maximum memory usage.

◆ getMempoolSize()

virtual size_t interfaces::Node::getMempoolSize ( )
pure virtual

Get mempool size.

◆ getNetLocalAddresses()

virtual std::map< CNetAddr, LocalServiceInfo > interfaces::Node::getNetLocalAddresses ( )
pure virtual

Get network local addresses.

◆ getNetworkActive()

virtual bool interfaces::Node::getNetworkActive ( )
pure virtual

Get network active.

◆ getNodeCount()

virtual size_t interfaces::Node::getNodeCount ( ConnectionDirection flags)
pure virtual

Get number of connections.

◆ getNodesStats()

virtual bool interfaces::Node::getNodesStats ( NodesStats & stats)
pure virtual

◆ getNumBlocks()

virtual int interfaces::Node::getNumBlocks ( )
pure virtual

Get num blocks.

◆ getPersistentSetting()

virtual common::SettingsValue interfaces::Node::getPersistentSetting ( const std::string & name)
pure virtual

Return setting value from <datadir>/settings.json or bitcoin.conf.

Here is the caller graph for this function:

◆ getProxy()

virtual bool interfaces::Node::getProxy ( Network net,
Proxy & proxy_info )
pure virtual

Get proxy.

◆ getTotalBytesRecv()

virtual int64_t interfaces::Node::getTotalBytesRecv ( )
pure virtual

Get total bytes recv.

Here is the caller graph for this function:

◆ getTotalBytesSent()

virtual int64_t interfaces::Node::getTotalBytesSent ( )
pure virtual

Get total bytes sent.

Here is the caller graph for this function:

◆ getUnspentOutput()

virtual std::optional< Coin > interfaces::Node::getUnspentOutput ( const COutPoint & output)
pure virtual

Get unspent output associated with a transaction.

◆ getVerificationProgress()

virtual double interfaces::Node::getVerificationProgress ( )
pure virtual

Get verification progress.

◆ getWarnings()

virtual bilingual_str interfaces::Node::getWarnings ( )
pure virtual

Get warnings.

Here is the caller graph for this function:

◆ handleBannedListChanged()

virtual std::unique_ptr< Handler > interfaces::Node::handleBannedListChanged ( BannedListChangedFn fn)
pure virtual

◆ handleInitMessage()

virtual std::unique_ptr< Handler > interfaces::Node::handleInitMessage ( InitMessageFn fn)
pure virtual

◆ handleInitWallet()

virtual std::unique_ptr< Handler > interfaces::Node::handleInitWallet ( InitWalletFn fn)
pure virtual

◆ handleMessageBox()

virtual std::unique_ptr< Handler > interfaces::Node::handleMessageBox ( MessageBoxFn fn)
pure virtual

◆ handleNotifyAlertChanged()

virtual std::unique_ptr< Handler > interfaces::Node::handleNotifyAlertChanged ( NotifyAlertChangedFn fn)
pure virtual

◆ handleNotifyBlockTip()

virtual std::unique_ptr< Handler > interfaces::Node::handleNotifyBlockTip ( NotifyBlockTipFn fn)
pure virtual

◆ handleNotifyHeaderTip()

virtual std::unique_ptr< Handler > interfaces::Node::handleNotifyHeaderTip ( NotifyHeaderTipFn fn)
pure virtual

◆ handleNotifyNetworkActiveChanged()

virtual std::unique_ptr< Handler > interfaces::Node::handleNotifyNetworkActiveChanged ( NotifyNetworkActiveChangedFn fn)
pure virtual

◆ handleNotifyNumConnectionsChanged()

virtual std::unique_ptr< Handler > interfaces::Node::handleNotifyNumConnectionsChanged ( NotifyNumConnectionsChangedFn fn)
pure virtual

◆ handleQuestion()

virtual std::unique_ptr< Handler > interfaces::Node::handleQuestion ( QuestionFn fn)
pure virtual

◆ handleShowProgress()

virtual std::unique_ptr< Handler > interfaces::Node::handleShowProgress ( ShowProgressFn fn)
pure virtual

◆ initLogging()

virtual void interfaces::Node::initLogging ( )
pure virtual

Init logging.

◆ initParameterInteraction()

virtual void interfaces::Node::initParameterInteraction ( )
pure virtual

Init parameter interaction.

Here is the caller graph for this function:

◆ isInitialBlockDownload()

virtual bool interfaces::Node::isInitialBlockDownload ( )
pure virtual

Is initial block download.

◆ isLoadingBlocks()

virtual bool interfaces::Node::isLoadingBlocks ( )
pure virtual

Is loading blocks.

◆ isSettingIgnored()

virtual bool interfaces::Node::isSettingIgnored ( const std::string & name)
pure virtual

Return whether a particular setting in <datadir>/settings.json is or would be ignored because it is also specified in the command line.

◆ listExternalSigners()

virtual std::vector< std::unique_ptr< ExternalSigner > > interfaces::Node::listExternalSigners ( )
pure virtual

Return list of external signers (attached devices which can sign transactions).

Here is the caller graph for this function:

◆ listRpcCommands()

virtual std::vector< std::string > interfaces::Node::listRpcCommands ( )
pure virtual

List rpc commands.

◆ mapPort()

virtual void interfaces::Node::mapPort ( bool enable)
pure virtual

Map port.

Here is the caller graph for this function:

◆ resetSettings()

virtual void interfaces::Node::resetSettings ( )
pure virtual

Clear all settings in <datadir>/settings.json and store a backup of previous settings in <datadir>/settings.json.bak.

Here is the caller graph for this function:

◆ setContext()

virtual void interfaces::Node::setContext ( node::NodeContext * context)
inlinevirtual

Definition at line 268 of file node.h.

Here is the call graph for this function:

◆ setNetworkActive()

virtual void interfaces::Node::setNetworkActive ( bool active)
pure virtual

Set network active.

◆ shutdownRequested()

virtual bool interfaces::Node::shutdownRequested ( )
pure virtual

Return whether shutdown was requested.

◆ startShutdown()

virtual void interfaces::Node::startShutdown ( )
pure virtual

Start shutdown.

Here is the caller graph for this function:

◆ unban()

virtual bool interfaces::Node::unban ( const CSubNet & ip)
pure virtual

Unban node.

Here is the call graph for this function:

◆ updateRwSetting()

virtual void interfaces::Node::updateRwSetting ( const std::string & name,
const common::SettingsValue & value )
pure virtual

Update a setting in <datadir>/settings.json.

◆ walletLoader()

virtual WalletLoader & interfaces::Node::walletLoader ( )
pure virtual

Get wallet loader.

Here is the caller graph for this function:

The documentation for this class was generated from the following file: