#include <bitcoin-build-config.h>
#include <net.h>
#include <addrdb.h>
#include <addrman.h>
#include <banman.h>
#include <clientversion.h>
#include <common/args.h>
#include <common/netif.h>
#include <compat/compat.h>
#include <consensus/consensus.h>
#include <crypto/sha256.h>
#include <i2p.h>
#include <key.h>
#include <logging.h>
#include <memusage.h>
#include <net_permissions.h>
#include <netaddress.h>
#include <netbase.h>
#include <node/eviction.h>
#include <node/interface_ui.h>
#include <protocol.h>
#include <random.h>
#include <scheduler.h>
#include <util/fs.h>
#include <util/sock.h>
#include <util/strencodings.h>
#include <util/thread.h>
#include <util/threadinterrupt.h>
#include <util/trace.h>
#include <util/translation.h>
#include <util/vector.h>
#include <algorithm>
#include <array>
#include <cmath>
#include <cstdint>
#include <cstring>
#include <functional>
#include <optional>
#include <string_view>
#include <unordered_map>
Go to the source code of this file.
|
| | TRACEPOINT_SEMAPHORE (net, closed_connection) |
| |
| | TRACEPOINT_SEMAPHORE (net, evicted_inbound_connection) |
| |
| | TRACEPOINT_SEMAPHORE (net, inbound_connection) |
| |
| | TRACEPOINT_SEMAPHORE (net, outbound_connection) |
| |
| | TRACEPOINT_SEMAPHORE (net, outbound_message) |
| |
| std::map< CNetAddr, LocalServiceInfo > mapLocalHost | GUARDED_BY (g_maplocalhost_mutex) |
| |
| uint16_t | GetListenPort () |
| |
| static std::optional< CService > | GetLocal (const CNode &peer) |
| |
| static std::vector< CAddress > | ConvertSeeds (const std::vector< uint8_t > &vSeedsIn) |
| | Convert the serialized seeds into usable address objects.
|
| |
| CService | GetLocalAddress (const CNode &peer) |
| |
| static int | GetnScore (const CService &addr) |
| |
| static bool | IsPeerAddrLocalGood (CNode *pnode) |
| |
| std::optional< CService > | GetLocalAddrForPeer (CNode &node) |
| | Returns a local address that we should advertise to this peer.
|
| |
| void | ClearLocal () |
| |
| bool | AddLocal (const CService &addr_, int nScore) |
| |
| bool | AddLocal (const CNetAddr &addr, int nScore) |
| |
| void | RemoveLocal (const CService &addr) |
| |
| bool | SeenLocal (const CService &addr) |
| | vote for a local address
|
| |
| bool | IsLocal (const CService &addr) |
| | check whether a given address is potentially local
|
| |
| void | Discover () |
| | Look up IP addresses from all interfaces on the machine and add them to the list of local addresses to self-advertise.
|
| |
| static std::unique_ptr< Transport > | MakeTransport (NodeId id, bool use_v2transport, bool inbound) noexcept |
| |
| static bool | IsOutboundMessageAllowedInPrivateBroadcast (std::string_view type) noexcept |
| | Private broadcast connections only need to send certain message types.
|
| |
| static void | CaptureMessageToFile (const CAddress &addr, const std::string &msg_type, std::span< const unsigned char > data, bool is_incoming) |
| |
◆ BindFlags
Used to pass flags to the Bind() function.
| Enumerator |
|---|
| BF_NONE | |
| BF_REPORT_ERROR | |
| BF_DONT_ADVERTISE | Do not call AddLocal() for our special addresses, e.g., for incoming Tor connections, to prevent gossiping them over the network.
|
Definition at line 94 of file net.cpp.
◆ AddLocal() [1/2]
◆ AddLocal() [2/2]
◆ CaptureMessageToFile()
◆ ClearLocal()
◆ ConvertSeeds()
Convert the serialized seeds into usable address objects.
Definition at line 195 of file net.cpp.
◆ 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.
Definition at line 3343 of file net.cpp.
◆ GetListenPort()
◆ GetLocal()
◆ GetLocalAddress()
◆ GetLocalAddrForPeer()
Returns a local address that we should advertise to this peer.
Definition at line 240 of file net.cpp.
◆ GetnScore()
◆ GUARDED_BY()
◆ IsLocal()
check whether a given address is potentially local
Definition at line 329 of file net.cpp.
◆ IsOutboundMessageAllowedInPrivateBroadcast()
Private broadcast connections only need to send certain message types.
Other messages are not needed and may degrade privacy.
Definition at line 4049 of file net.cpp.
◆ IsPeerAddrLocalGood()
◆ MakeTransport()
◆ RemoveLocal()
◆ SeenLocal()
vote for a local address
Definition at line 318 of file net.cpp.
◆ TRACEPOINT_SEMAPHORE() [1/5]
◆ TRACEPOINT_SEMAPHORE() [2/5]
◆ TRACEPOINT_SEMAPHORE() [3/5]
◆ TRACEPOINT_SEMAPHORE() [4/5]
◆ TRACEPOINT_SEMAPHORE() [5/5]
◆ ANCHORS_DATABASE_FILENAME
| const char* const ANCHORS_DATABASE_FILENAME = "anchors.dat" |
Anchor IP address database file name.
Definition at line 60 of file net.cpp.
◆ CaptureMessage
◆ DNSSEEDS_DELAY_FEW_PEERS
How long to delay before querying DNS seeds.
If we have more than THRESHOLD entries in addrman, then it's likely that we got those addresses from having previously connected to the P2P network, and that we'll be able to successfully reconnect to the P2P network via contacting one of them. So if that's the case, spend a little longer trying to connect to known peers before querying the DNS seeds.
Definition at line 80 of file net.cpp.
◆ DNSSEEDS_DELAY_MANY_PEERS
◆ DNSSEEDS_DELAY_PEER_THRESHOLD
◆ DNSSEEDS_TO_QUERY_AT_ONCE
Number of DNS seeds to query when the number of connections is low.
Definition at line 66 of file net.cpp.
◆ DUMP_PEERS_INTERVAL
◆ EXTRA_NETWORK_PEER_INTERVAL
Frequency to attempt extra connections to reachable networks we're not connected to yet.
Definition at line 91 of file net.cpp.
◆ fDiscover
◆ FEELER_SLEEP_WINDOW
◆ fListen
◆ g_maplocalhost_mutex
◆ instance_of_cnetcleanup
◆ MAX_BLOCK_RELAY_ONLY_ANCHORS
Maximum number of block-relay-only anchor connections.
Definition at line 57 of file net.cpp.
◆ MAX_UPLOAD_TIMEFRAME
The default timeframe for -maxuploadtarget.
1 day.
Definition at line 85 of file net.cpp.
◆ NET_MESSAGE_TYPE_OTHER
| const std::string NET_MESSAGE_TYPE_OTHER = "*other*" |
◆ RANDOMIZER_ID_LOCALHOSTNONCE
| const uint64_t RANDOMIZER_ID_LOCALHOSTNONCE = 0xd93e69e2bbfa5735ULL |
|
static |
◆ RANDOMIZER_ID_NETGROUP
| const uint64_t RANDOMIZER_ID_NETGROUP = 0x6c0edd8036ef4036ULL |
|
static |
◆ RANDOMIZER_ID_NETWORKKEY
| const uint64_t RANDOMIZER_ID_NETWORKKEY = 0x0e8a2b136c592a7dULL |
|
static |
◆ SEED_OUTBOUND_CONNECTION_THRESHOLD
Minimum number of outbound connections under which we will keep fetching our address seeds.
Definition at line 69 of file net.cpp.
◆ SELECT_TIMEOUT_MILLISECONDS
| const uint64_t SELECT_TIMEOUT_MILLISECONDS = 50 |
|
static |
◆ strSubVersion
| std::string strSubVersion |
Subversion as sent to the P2P network in version messages.
Definition at line 120 of file net.cpp.