Bitcoin Core 28.99.0
P2P Digital Currency
|
#include <bip324.h>
#include <chainparams.h>
#include <common/bloom.h>
#include <compat/compat.h>
#include <consensus/amount.h>
#include <crypto/siphash.h>
#include <hash.h>
#include <i2p.h>
#include <kernel/messagestartchars.h>
#include <net_permissions.h>
#include <netaddress.h>
#include <netbase.h>
#include <netgroup.h>
#include <node/connection_types.h>
#include <node/protocol_version.h>
#include <policy/feerate.h>
#include <protocol.h>
#include <random.h>
#include <span.h>
#include <streams.h>
#include <sync.h>
#include <uint256.h>
#include <util/check.h>
#include <util/sock.h>
#include <util/threadinterrupt.h>
#include <atomic>
#include <condition_variable>
#include <cstdint>
#include <deque>
#include <functional>
#include <list>
#include <map>
#include <memory>
#include <optional>
#include <queue>
#include <thread>
#include <unordered_set>
#include <vector>
Go to the source code of this file.
Classes | |
struct | AddedNodeParams |
struct | AddedNodeInfo |
struct | CSerializedNetMsg |
struct | LocalServiceInfo |
class | CNodeStats |
class | CNetMessage |
Transport protocol agnostic message container. More... | |
class | Transport |
The Transport converts one connection's sent messages to wire bytes, and received bytes back. More... | |
struct | Transport::Info |
class | V1Transport |
class | V2Transport |
struct | CNodeOptions |
class | CNode |
Information about a peer. More... | |
class | NetEventsInterface |
Interface for message handling. More... | |
class | CConnman |
struct | CConnman::Options |
struct | CConnman::ListenSocket |
struct | CConnman::CachedAddrResponse |
Cache responses to addr requests to minimize privacy leak. More... | |
struct | CConnman::ReconnectionInfo |
Struct for entries in m_reconnections. More... | |
class | CConnman::NodesSnapshot |
RAII helper to atomically create a copy of m_nodes and add a reference to each of the nodes. More... | |
Typedefs | |
typedef int64_t | NodeId |
using | mapMsgTypeSize = std::map< std::string, uint64_t > |
Enumerations | |
enum | { LOCAL_NONE , LOCAL_IF , LOCAL_BIND , LOCAL_MAPPED , LOCAL_MANUAL , LOCAL_MAX } |
Functions | |
void | Discover () |
Look up IP addresses from all interfaces on the machine and add them to the list of local addresses to self-advertise. More... | |
uint16_t | GetListenPort () |
std::optional< CService > | GetLocalAddrForPeer (CNode &node) |
Returns a local address that we should advertise to this peer. More... | |
bool | AddLocal (const CService &addr, int nScore=LOCAL_NONE) |
bool | AddLocal (const CNetAddr &addr, int nScore=LOCAL_NONE) |
void | RemoveLocal (const CService &addr) |
bool | SeenLocal (const CService &addr) |
vote for a local address More... | |
bool | IsLocal (const CService &addr) |
check whether a given address is potentially local More... | |
CService | GetLocalAddress (const CNode &peer) |
std::map< CNetAddr, LocalServiceInfo > mapLocalHost | GUARDED_BY (g_maplocalhost_mutex) |
Variables | |
static constexpr std::chrono::minutes | TIMEOUT_INTERVAL {20} |
Time after which to disconnect, after waiting for a ping response (or inactivity). More... | |
static constexpr auto | FEELER_INTERVAL = 2min |
Run the feeler connection loop once every 2 minutes. More... | |
static constexpr auto | EXTRA_BLOCK_RELAY_ONLY_PEER_INTERVAL = 5min |
Run the extra block-relay-only connection loop once every 5 minutes. More... | |
static const unsigned int | MAX_PROTOCOL_MESSAGE_LENGTH = 4 * 1000 * 1000 |
Maximum length of incoming protocol messages (no message over 4 MB is currently acceptable). More... | |
static const unsigned int | MAX_SUBVERSION_LENGTH = 256 |
Maximum length of the user agent string in version message. More... | |
static const int | MAX_OUTBOUND_FULL_RELAY_CONNECTIONS = 8 |
Maximum number of automatic outgoing nodes over which we'll relay everything (blocks, tx, addrs, etc) More... | |
static const int | MAX_ADDNODE_CONNECTIONS = 8 |
Maximum number of addnode outgoing nodes. More... | |
static const int | MAX_BLOCK_RELAY_ONLY_CONNECTIONS = 2 |
Maximum number of block-relay-only outgoing connections. More... | |
static const int | MAX_FEELER_CONNECTIONS = 1 |
Maximum number of feeler connections. More... | |
static const bool | DEFAULT_LISTEN = true |
-listen default More... | |
static const unsigned int | DEFAULT_MAX_PEER_CONNECTIONS = 125 |
The maximum number of peer connections to maintain. More... | |
static const std::string | DEFAULT_MAX_UPLOAD_TARGET {"0M"} |
The default for -maxuploadtarget. More... | |
static const bool | DEFAULT_BLOCKSONLY = false |
Default for blocks only. More... | |
static const int64_t | DEFAULT_PEER_CONNECT_TIMEOUT = 60 |
-peertimeout default More... | |
static const int | NUM_FDS_MESSAGE_CAPTURE = 1 |
Number of file descriptors required for message capture. More... | |
static constexpr std::chrono::hours | ASMAP_HEALTH_CHECK_INTERVAL {24} |
Interval for ASMap Health Check. More... | |
static constexpr bool | DEFAULT_FORCEDNSSEED {false} |
static constexpr bool | DEFAULT_DNSSEED {true} |
static constexpr bool | DEFAULT_FIXEDSEEDS {true} |
static const size_t | DEFAULT_MAXRECEIVEBUFFER = 5 * 1000 |
static const size_t | DEFAULT_MAXSENDBUFFER = 1 * 1000 |
static constexpr bool | DEFAULT_V2_TRANSPORT {true} |
bool | fDiscover |
bool | fListen |
std::string | strSubVersion |
Subversion as sent to the P2P network in version messages. More... | |
GlobalMutex | g_maplocalhost_mutex |
const std::string | NET_MESSAGE_TYPE_OTHER |
std::function< void(const CAddress &addr, const std::string &msg_type, Span< const unsigned char > data, bool is_incoming)> | CaptureMessage |
Defaults to CaptureMessageToFile() , but can be overridden by unit tests. More... | |
using mapMsgTypeSize = std::map< std::string, uint64_t> |
anonymous enum |
bool AddLocal | ( | const CNetAddr & | addr, |
int | nScore = LOCAL_NONE |
||
) |
bool AddLocal | ( | const CService & | addr, |
int | nScore = LOCAL_NONE |
||
) |
void Discover | ( | ) |
uint16_t GetListenPort | ( | ) |
std::map< CNetAddr, LocalServiceInfo > mapLocalHost GUARDED_BY | ( | g_maplocalhost_mutex | ) |
bool IsLocal | ( | const CService & | addr | ) |
void RemoveLocal | ( | const CService & | addr | ) |
bool SeenLocal | ( | const CService & | addr | ) |
|
staticconstexpr |
|
extern |
Defaults to CaptureMessageToFile()
, but can be overridden by unit tests.
|
static |
|
static |
|
static |
|
static |
|
staticconstexpr |
|
staticconstexpr |
|
extern |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
extern |