Bitcoin
|
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. More... | |
using | InitMessageFn = std::function< void(const std::string &message)> |
Register handler for init messages. More... | |
using | MessageBoxFn = std::function< bool(const std::string &message, const std::string &caption, unsigned int style)> |
Register handler for message box messages. More... | |
using | QuestionFn = std::function< bool(const std::string &message, const std::string &non_interactive_message, const std::string &caption, unsigned int style)> |
Register handler for question messages. More... | |
using | ShowProgressFn = std::function< void(const std::string &title, int progress, bool resume_possible)> |
Register handler for progress messages. More... | |
using | LoadWalletFn = std::function< void(std::unique_ptr< Wallet > wallet)> |
Register handler for load wallet messages. More... | |
using | NotifyNumConnectionsChangedFn = std::function< void(int new_num_connections)> |
Register handler for number of connections changed messages. More... | |
using | NotifyNetworkActiveChangedFn = std::function< void(bool network_active)> |
Register handler for network active messages. More... | |
using | NotifyAlertChangedFn = std::function< void()> |
Register handler for notify alert messages. More... | |
using | BannedListChangedFn = std::function< void()> |
Register handler for ban list messages. More... | |
using | NotifyBlockTipFn = std::function< void(bool initial_download, int height, int64_t block_time, double verification_progress)> |
Register handler for block tip messages. More... | |
using | NotifyHeaderTipFn = std::function< void(bool initial_download, int height, int64_t block_time, double verification_progress)> |
Register handler for header tip messages. More... | |
Public Member Functions | |
virtual | ~Node () |
virtual bool | parseParameters (int argc, const char *const argv[], std::string &error)=0 |
Set command line arguments. More... | |
virtual bool | softSetArg (const std::string &arg, const std::string &value)=0 |
Set a command line argument if it doesn't already have a value. More... | |
virtual bool | softSetBoolArg (const std::string &arg, bool value)=0 |
Set a command line boolean argument if it doesn't already have a value. More... | |
virtual bool | readConfigFiles (std::string &error)=0 |
Load settings from configuration file. More... | |
virtual void | selectParams (const std::string &network)=0 |
Choose network parameters. More... | |
virtual uint64_t | getAssumedBlockchainSize ()=0 |
Get the (assumed) blockchain size. More... | |
virtual uint64_t | getAssumedChainStateSize ()=0 |
Get the (assumed) chain state size. More... | |
virtual std::string | getNetwork ()=0 |
Get network name. More... | |
virtual void | initLogging ()=0 |
Init logging. More... | |
virtual void | initParameterInteraction ()=0 |
Init parameter interaction. More... | |
virtual std::string | getWarnings (const std::string &type)=0 |
Get warnings. More... | |
virtual uint32_t | getLogCategories ()=0 |
virtual bool | baseInitialize ()=0 |
Initialize app dependencies. More... | |
virtual bool | appInitMain ()=0 |
Start node. More... | |
virtual void | appShutdown ()=0 |
Stop node. More... | |
virtual void | startShutdown ()=0 |
Start shutdown. More... | |
virtual bool | shutdownRequested ()=0 |
Return whether shutdown was requested. More... | |
virtual void | setupServerArgs ()=0 |
Setup arguments. More... | |
virtual void | mapPort (bool use_upnp)=0 |
Map port. More... | |
virtual bool | getProxy (Network net, proxyType &proxy_info)=0 |
Get proxy. More... | |
virtual size_t | getNodeCount (CConnman::NumConnections flags)=0 |
Get number of connections. More... | |
virtual bool | getNodesStats (NodesStats &stats)=0 |
virtual bool | getBanned (banmap_t &banmap)=0 |
Get ban map entries. More... | |
virtual bool | ban (const CNetAddr &net_addr, BanReason reason, int64_t ban_time_offset)=0 |
Ban node. More... | |
virtual bool | unban (const CSubNet &ip)=0 |
Unban node. More... | |
virtual bool | disconnect (const CNetAddr &net_addr)=0 |
Disconnect node by address. More... | |
virtual bool | disconnect (NodeId id)=0 |
Disconnect node by id. More... | |
virtual int64_t | getTotalBytesRecv ()=0 |
Get total bytes recv. More... | |
virtual int64_t | getTotalBytesSent ()=0 |
Get total bytes sent. More... | |
virtual size_t | getMempoolSize ()=0 |
Get mempool size. More... | |
virtual size_t | getMempoolDynamicUsage ()=0 |
Get mempool dynamic usage. More... | |
virtual bool | getHeaderTip (int &height, int64_t &block_time)=0 |
Get header tip height and time. More... | |
virtual int | getNumBlocks ()=0 |
Get num blocks. More... | |
virtual int64_t | getLastBlockTime ()=0 |
Get last block time. More... | |
virtual double | getVerificationProgress ()=0 |
Get verification progress. More... | |
virtual bool | isInitialBlockDownload ()=0 |
Is initial block download. More... | |
virtual bool | getReindex ()=0 |
Get reindex. More... | |
virtual bool | getImporting ()=0 |
Get importing. More... | |
virtual void | setNetworkActive (bool active)=0 |
Set network active. More... | |
virtual bool | getNetworkActive ()=0 |
Get network active. More... | |
virtual CFeeRate | estimateSmartFee (int num_blocks, bool conservative, int *returned_target=nullptr)=0 |
Estimate smart fee. More... | |
virtual CFeeRate | getDustRelayFee ()=0 |
Get dust relay fee. More... | |
virtual UniValue | executeRpc (const std::string &command, const UniValue ¶ms, const std::string &uri)=0 |
Execute rpc command. More... | |
virtual std::vector< std::string > | listRpcCommands ()=0 |
List rpc commands. More... | |
virtual void | rpcSetTimerInterfaceIfUnset (RPCTimerInterface *iface)=0 |
Set RPC timer interface if unset. More... | |
virtual void | rpcUnsetTimerInterface (RPCTimerInterface *iface)=0 |
Unset RPC timer interface. More... | |
virtual bool | getUnspentOutput (const COutPoint &output, Coin &coin)=0 |
Get unspent outputs associated with a transaction. More... | |
virtual std::string | getWalletDir ()=0 |
Return default wallet directory. More... | |
virtual std::vector< std::string > | listWalletDir ()=0 |
Return available wallets in wallet directory. More... | |
virtual std::vector< std::unique_ptr< Wallet > > | getWallets ()=0 |
Return interfaces for accessing wallets (if any). More... | |
virtual std::unique_ptr< Wallet > | loadWallet (const std::string &name, std::string &error, std::string &warning)=0 |
virtual std::unique_ptr< Handler > | handleInitMessage (InitMessageFn fn)=0 |
virtual std::unique_ptr< Handler > | handleMessageBox (MessageBoxFn fn)=0 |
virtual std::unique_ptr< Handler > | handleQuestion (QuestionFn fn)=0 |
virtual std::unique_ptr< Handler > | handleShowProgress (ShowProgressFn fn)=0 |
virtual std::unique_ptr< Handler > | handleLoadWallet (LoadWalletFn fn)=0 |
virtual std::unique_ptr< Handler > | handleNotifyNumConnectionsChanged (NotifyNumConnectionsChangedFn fn)=0 |
virtual std::unique_ptr< Handler > | handleNotifyNetworkActiveChanged (NotifyNetworkActiveChangedFn fn)=0 |
virtual std::unique_ptr< Handler > | handleNotifyAlertChanged (NotifyAlertChangedFn fn)=0 |
virtual std::unique_ptr< Handler > | handleBannedListChanged (BannedListChangedFn fn)=0 |
virtual std::unique_ptr< Handler > | handleNotifyBlockTip (NotifyBlockTipFn fn)=0 |
virtual std::unique_ptr< Handler > | handleNotifyHeaderTip (NotifyHeaderTipFn fn)=0 |
Top-level interface for a bitcoin node (bitcoind process).
using interfaces::Node::BannedListChangedFn = std::function<void()> |
Register handler for ban list messages.
using interfaces::Node::InitMessageFn = std::function<void(const std::string& message)> |
Register handler for init messages.
using interfaces::Node::LoadWalletFn = std::function<void(std::unique_ptr<Wallet> wallet)> |
Register handler for load wallet messages.
using interfaces::Node::MessageBoxFn = std::function<bool(const std::string& message, const std::string& caption, unsigned int style)> |
Register handler for message box messages.
using interfaces::Node::NodesStats = std::vector<std::tuple<CNodeStats, bool, CNodeStateStats> > |
Get stats for connected nodes.
using interfaces::Node::NotifyAlertChangedFn = std::function<void()> |
Register handler for notify alert messages.
using interfaces::Node::NotifyBlockTipFn = std::function<void(bool initial_download, int height, int64_t block_time, double verification_progress)> |
Register handler for block tip messages.
using interfaces::Node::NotifyHeaderTipFn = std::function<void(bool initial_download, int height, int64_t block_time, double verification_progress)> |
Register handler for header tip messages.
using interfaces::Node::NotifyNetworkActiveChangedFn = std::function<void(bool network_active)> |
Register handler for network active messages.
using interfaces::Node::NotifyNumConnectionsChangedFn = std::function<void(int new_num_connections)> |
Register handler for number of connections changed messages.
using interfaces::Node::QuestionFn = std::function<bool(const std::string& message, const std::string& non_interactive_message, const std::string& caption, unsigned int style)> |
Register handler for question messages.
using interfaces::Node::ShowProgressFn = std::function<void(const std::string& title, int progress, bool resume_possible)> |
Register handler for progress messages.
|
inlinevirtual |
|
pure virtual |
Start node.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Stop node.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Ban node.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Initialize app dependencies.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Disconnect node by address.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Disconnect node by id.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Estimate smart fee.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Execute rpc command.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get the (assumed) blockchain size.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get the (assumed) chain state size.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get ban map entries.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get dust relay fee.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get header tip height and time.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get importing.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get last block time.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get mempool dynamic usage.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get mempool size.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get network name.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get network active.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get number of connections.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get num blocks.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
Get proxy.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get reindex.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get total bytes recv.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get total bytes sent.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get unspent outputs associated with a transaction.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get verification progress.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Return default wallet directory.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Return interfaces for accessing wallets (if any).
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Get warnings.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Init logging.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Init parameter interaction.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Is initial block download.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
List rpc commands.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Return available wallets in wallet directory.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Attempts to load a wallet from file or directory. The loaded wallet is also notified to handlers previously registered with handleLoadWallet.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Map port.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Set command line arguments.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Load settings from configuration file.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Set RPC timer interface if unset.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Unset RPC timer interface.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Choose network parameters.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Set network active.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Setup arguments.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Return whether shutdown was requested.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Set a command line argument if it doesn't already have a value.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Set a command line boolean argument if it doesn't already have a value.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Start shutdown.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.
|
pure virtual |
Unban node.
Implemented in interfaces::anonymous_namespace{node.cpp}::NodeImpl.