![]() |
Bitcoin ABC 0.31.8
P2P Digital Currency
|
#include <avalanche/proofid.h>
#include <avalanche/proofradixtreeadapter.h>
#include <chainparams.h>
#include <common/bloom.h>
#include <compat.h>
#include <consensus/amount.h>
#include <crypto/siphash.h>
#include <hash.h>
#include <i2p.h>
#include <kernel/cs_main.h>
#include <logging.h>
#include <net_permissions.h>
#include <netaddress.h>
#include <netbase.h>
#include <node/connection_types.h>
#include <node/eviction.h>
#include <nodeid.h>
#include <protocol.h>
#include <pubkey.h>
#include <radix.h>
#include <random.h>
#include <span.h>
#include <streams.h>
#include <sync.h>
#include <threadinterrupt.h>
#include <uint256.h>
#include <util/check.h>
#include <util/sock.h>
#include <util/time.h>
#include <atomic>
#include <condition_variable>
#include <cstdint>
#include <deque>
#include <functional>
#include <list>
#include <map>
#include <memory>
#include <thread>
#include <vector>
Go to the source code of this file.
Classes | |
struct | AddedNodeInfo |
struct | CSerializedNetMsg |
struct | LocalServiceInfo |
struct | CNodeStats |
POD that contains various stats about a node. More... | |
class | CNetMessage |
Transport protocol agnostic message container. More... | |
class | TransportDeserializer |
The TransportDeserializer takes care of holding and deserializing the network receive buffer. More... | |
class | V1TransportDeserializer |
class | TransportSerializer |
The TransportSerializer prepares messages for the network transport. More... | |
class | V1TransportSerializer |
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... | |
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 std::map< std::string, uint64_t > | mapMsgTypeSize |
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 () |
bool | IsPeerAddrLocalGood (CNode *pnode) |
std::optional< CService > | GetLocalAddrForPeer (CNode &node) |
Returns a local address that we should advertise to this peer. More... | |
void | SetReachable (enum Network net, bool reachable) |
Mark a network as reachable or unreachable (no automatic connects to it) More... | |
bool | IsReachable (enum Network net) |
bool | IsReachable (const CNetAddr &addr) |
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... | |
bool | GetLocal (CService &addr, const CNetAddr *paddrPeer=nullptr) |
CService | GetLocalAddress (const CNetAddr &addrPeer) |
std::map< CNetAddr, LocalServiceInfo > mapLocalHost | GUARDED_BY (g_maplocalhost_mutex) |
std::string | getSubVersionEB (uint64_t MaxBlockSize) |
This function convert MaxBlockSize from byte to MB with a decimal precision one digit rounded down E.g. More... | |
std::string | userAgent (const Config &config) |
void | CaptureMessageToFile (const CAddress &addr, const std::string &msg_type, Span< const uint8_t > data, bool is_incoming) |
Dump binary message to file, with timestamp. More... | |
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_SUBVERSION_LENGTH = 256 |
Maximum length of the user agent string in version message. More... | |
static const int | MAX_OUTBOUND_FULL_RELAY_CONNECTIONS = 16 |
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 | DEFAULT_MAX_AVALANCHE_OUTBOUND_CONNECTIONS = 300 |
Maximum number of avalanche enabled outgoing connections by default. 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 = 4096 |
The maximum number of peer connections to maintain. More... | |
static constexpr uint64_t | DEFAULT_MAX_UPLOAD_TARGET = 0 |
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 const bool | DEFAULT_FORCEDNSSEED = false |
static const bool | DEFAULT_DNSSEED = true |
static const bool | DEFAULT_FIXEDSEEDS = true |
static const size_t | DEFAULT_MAXRECEIVEBUFFER = 5 * 1000 |
static const size_t | DEFAULT_MAXSENDBUFFER = 1 * 1000 |
const std::vector< std::string > | CONNECTION_TYPE_DOC |
bool | fDiscover |
bool | fListen |
GlobalMutex | g_maplocalhost_mutex |
const std::string | NET_MESSAGE_TYPE_OTHER |
std::function< void(const CAddress &addr, const std::string &msg_type, Span< const uint8_t > data, bool is_incoming)> | CaptureMessage |
Defaults to CaptureMessageToFile() , but can be overridden by unit tests. More... | |
typedef std::map< std::string, uint64_t> mapMsgTypeSize |
anonymous enum |
bool AddLocal | ( | const CNetAddr & | addr, |
int | nScore = LOCAL_NONE |
||
) |
bool AddLocal | ( | const CService & | addr, |
int | nScore = LOCAL_NONE |
||
) |
void Discover | ( | ) |
Look up IP addresses from all interfaces on the machine and add them to the list of local addresses to self-advertise.
The loopback interface is skipped and only the first address from each interface is used.
Definition at line 2297 of file net.cpp.
uint16_t GetListenPort | ( | ) |
std::string getSubVersionEB | ( | uint64_t | MaxBlockSize | ) |
This function convert MaxBlockSize from byte to MB with a decimal precision one digit rounded down E.g.
1660000 -> 1.6 2010000 -> 2.0 1000000 -> 1.0 230000 -> 0.2 50000 -> 0.0
NB behavior for EB<1MB not standardized yet still the function applies the same algo used for EB greater or equal to 1MB
Definition at line 3122 of file net.cpp.
std::map< CNetAddr, LocalServiceInfo > mapLocalHost GUARDED_BY | ( | g_maplocalhost_mutex | ) |
bool IsLocal | ( | const CService & | addr | ) |
bool IsPeerAddrLocalGood | ( | CNode * | pnode | ) |
bool IsReachable | ( | const CNetAddr & | addr | ) |
bool IsReachable | ( | enum Network | net | ) |
void RemoveLocal | ( | const CService & | addr | ) |
bool SeenLocal | ( | const CService & | addr | ) |
void SetReachable | ( | enum Network | net, |
bool | reachable | ||
) |
std::string userAgent | ( | const Config & | config | ) |
|
extern |
Defaults to CaptureMessageToFile()
, but can be overridden by unit tests.
const std::vector<std::string> CONNECTION_TYPE_DOC |
|
static |
|
static |
|
static |
|
staticconstexpr |
|
static |
|
staticconstexpr |
|
staticconstexpr |
|
extern |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |