![]() |
Bitcoin ABC 0.31.1
P2P Digital Currency
|
#include <net_processing.h>
Classes | |
struct | Options |
Public Member Functions | |
virtual | ~PeerManager () |
virtual std::optional< std::string > | FetchBlock (const Config &config, NodeId peer_id, const CBlockIndex &block_index)=0 |
Attempt to manually fetch block from a given peer. More... | |
virtual void | StartScheduledTasks (CScheduler &scheduler)=0 |
Begin running background tasks, should only be called once. More... | |
virtual bool | GetNodeStateStats (NodeId nodeid, CNodeStateStats &stats) const =0 |
Get statistics from node state. More... | |
virtual bool | IgnoresIncomingTxs ()=0 |
Whether this node ignores txs received over p2p. More... | |
virtual void | RelayTransaction (const TxId &txid)=0 |
Relay transaction to all peers. More... | |
virtual void | RelayProof (const avalanche::ProofId &proofid)=0 |
Relay proof to all peers. More... | |
virtual void | SendPings ()=0 |
Send ping message to all peers. More... | |
virtual void | SetBestHeight (int height)=0 |
Set the best height. More... | |
virtual void | UnitTestMisbehaving (const NodeId peer_id, const int howmuch)=0 |
Public for unit testing. More... | |
virtual void | CheckForStaleTipAndEvictPeers ()=0 |
Evict extra outbound peers. More... | |
virtual void | ProcessMessage (const Config &config, CNode &pfrom, const std::string &msg_type, CDataStream &vRecv, const std::chrono::microseconds time_received, const std::atomic< bool > &interruptMsgProc) EXCLUSIVE_LOCKS_REQUIRED(g_msgproc_mutex)=0 |
Process a single message from a peer. More... | |
virtual void | UpdateLastBlockAnnounceTime (NodeId node, int64_t time_in_seconds)=0 |
This function is used for testing the stale tip eviction logic, see denialofservice_tests.cpp. More... | |
![]() | |
virtual void | InitializeNode (const Config &config, CNode &node, ServiceFlags our_services)=0 |
Initialize a peer (setup state, queue any initial messages) More... | |
virtual void | FinalizeNode (const Config &config, const CNode &node)=0 |
Handle removal of a peer (clear state) More... | |
virtual bool | ProcessMessages (const Config &config, CNode *pnode, std::atomic< bool > &interrupt) EXCLUSIVE_LOCKS_REQUIRED(g_msgproc_mutex)=0 |
Process protocol messages received from a given node. More... | |
virtual bool | SendMessages (const Config &config, CNode *pnode) EXCLUSIVE_LOCKS_REQUIRED(g_msgproc_mutex)=0 |
Send queued protocol messages to a given node. More... | |
Static Public Member Functions | |
static std::unique_ptr< PeerManager > | make (CConnman &connman, AddrMan &addrman, BanMan *banman, ChainstateManager &chainman, CTxMemPool &pool, avalanche::Processor *const avalanche, Options opts) |
Additional Inherited Members | |
![]() | |
static Mutex | g_msgproc_mutex |
Mutex for anything that is only accessed via the msg processing thread. More... | |
![]() | |
~CValidationInterface ()=default | |
Protected destructor so that instances can only be deleted by derived classes. More... | |
virtual void | UpdatedBlockTip (const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload) |
Notifies listeners when the block chain tip advances. More... | |
virtual void | TransactionAddedToMempool (const CTransactionRef &tx, std::shared_ptr< const std::vector< Coin > > spent_coins, uint64_t mempool_sequence) |
Notifies listeners of a transaction having been added to mempool. More... | |
virtual void | TransactionRemovedFromMempool (const CTransactionRef &tx, MemPoolRemovalReason reason, uint64_t mempool_sequence) |
Notifies listeners of a transaction leaving mempool. More... | |
virtual void | BlockConnected (ChainstateRole role, const std::shared_ptr< const CBlock > &block, const CBlockIndex *pindex) |
Notifies listeners of a block being connected. More... | |
virtual void | BlockDisconnected (const std::shared_ptr< const CBlock > &block, const CBlockIndex *pindex) |
Notifies listeners of a block being disconnected. More... | |
virtual void | ChainStateFlushed (ChainstateRole role, const CBlockLocator &locator) |
Notifies listeners of the new active block chain on-disk. More... | |
virtual void | BlockChecked (const CBlock &, const BlockValidationState &) |
Notifies listeners of a block validation result. More... | |
virtual void | NewPoWValidBlock (const CBlockIndex *pindex, const std::shared_ptr< const CBlock > &block) |
Notifies listeners that a block which builds directly on our current tip has been received and connected to the headers tree, though not validated yet. More... | |
virtual void | BlockFinalized (const CBlockIndex *pindex) |
virtual void | BlockInvalidated (const CBlockIndex *pindex, const std::shared_ptr< const CBlock > &block) |
![]() | |
~NetEventsInterface ()=default | |
Protected destructor so that instances can only be deleted by derived classes. More... | |
Definition at line 69 of file net_processing.h.
|
inlinevirtual |
Definition at line 110 of file net_processing.h.
|
pure virtual |
Evict extra outbound peers.
If we think our tip may be stale, connect to an extra outbound.
|
pure virtual |
Attempt to manually fetch block from a given peer.
We must already have the header.
[in] | config | The global config |
[in] | peer_id | The peer id |
[in] | block_index | The block index |
|
pure virtual |
Get statistics from node state.
|
pure virtual |
Whether this node ignores txs received over p2p.
|
static |
|
pure virtual |
Process a single message from a peer.
Public for fuzz testing
|
pure virtual |
Relay proof to all peers.
|
pure virtual |
Relay transaction to all peers.
|
pure virtual |
Send ping message to all peers.
|
pure virtual |
Set the best height.
|
pure virtual |
Begin running background tasks, should only be called once.
|
pure virtual |
Public for unit testing.
|
pure virtual |
This function is used for testing the stale tip eviction logic, see denialofservice_tests.cpp.