diff options
| author | Pieter Wuille <[email protected]> | 2016-12-02 18:17:25 -0800 |
|---|---|---|
| committer | Pieter Wuille <[email protected]> | 2016-12-02 18:25:40 -0800 |
| commit | 2efcfa5acfacb958973d9e8125e1d81f102e2dfd (patch) | |
| tree | 6d62e14d6bb07b072421a426d72d70ae9dae3d9f /src/net_processing.h | |
| parent | Merge #9251: Improvement of documentation of command line parameter 'whitelist' (diff) | |
| parent | Rename the remaining main.{h,cpp} to validation.{h,cpp} (diff) | |
| download | discoin-2efcfa5acfacb958973d9e8125e1d81f102e2dfd.tar.xz discoin-2efcfa5acfacb958973d9e8125e1d81f102e2dfd.zip | |
Merge #9260: Mrs Peacock in The Library with The Candlestick (killed main.{h,cpp})
76faa3c Rename the remaining main.{h,cpp} to validation.{h,cpp} (Matt Corallo)
e736772 Move network-msg-processing code out of main to its own file (Matt Corallo)
87c35f5 Remove orphan state wipe from UnloadBlockIndex. (Matt Corallo)
Diffstat (limited to 'src/net_processing.h')
| -rw-r--r-- | src/net_processing.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/net_processing.h b/src/net_processing.h new file mode 100644 index 000000000..130433cc7 --- /dev/null +++ b/src/net_processing.h @@ -0,0 +1,51 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2015 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_NET_PROCESSING_H +#define BITCOIN_NET_PROCESSING_H + +#include "net.h" +#include "validationinterface.h" + +/** Register with a network node to receive its signals */ +void RegisterNodeSignals(CNodeSignals& nodeSignals); +/** Unregister a network node */ +void UnregisterNodeSignals(CNodeSignals& nodeSignals); + +class PeerLogicValidation : public CValidationInterface { +private: + CConnman* connman; + +public: + PeerLogicValidation(CConnman* connmanIn); + + virtual void SyncTransaction(const CTransaction& tx, const CBlockIndex* pindex, int nPosInBlock); + virtual void UpdatedBlockTip(const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload); + virtual void BlockChecked(const CBlock& block, const CValidationState& state); +}; + +struct CNodeStateStats { + int nMisbehavior; + int nSyncHeight; + int nCommonHeight; + std::vector<int> vHeightInFlight; +}; + +/** Get statistics from node state */ +bool GetNodeStateStats(NodeId nodeid, CNodeStateStats &stats); +/** Increase a node's misbehavior score. */ +void Misbehaving(NodeId nodeid, int howmuch); + +/** Process protocol messages received from a given node */ +bool ProcessMessages(CNode* pfrom, CConnman& connman); +/** + * Send queued protocol messages to be sent to a give node. + * + * @param[in] pto The node which we are sending messages to. + * @param[in] connman The connection manager for that node. + */ +bool SendMessages(CNode* pto, CConnman& connman); + +#endif // BITCOIN_NET_PROCESSING_H |