Bitcoin Core 28.99.0
P2P Digital Currency
|
#include <string>
#include <stdint.h>
Go to the source code of this file.
Enumerations | |
enum class | ConnectionType { INBOUND , OUTBOUND_FULL_RELAY , MANUAL , FEELER , BLOCK_RELAY , ADDR_FETCH } |
Different types of connections to a peer. More... | |
enum class | TransportProtocolType : uint8_t { DETECTING , V1 , V2 } |
Transport layer version. More... | |
Functions | |
std::string | ConnectionTypeAsString (ConnectionType conn_type) |
Convert ConnectionType enum to a string value. More... | |
std::string | TransportTypeAsString (TransportProtocolType transport_type) |
Convert TransportProtocolType enum to a string value. More... | |
|
strong |
Different types of connections to a peer.
This enum encapsulates the information we have available at the time of opening or accepting the connection. Aside from INBOUND, all types are initiated by us.
If adding or removing types, please update CONNECTION_TYPE_DOC in src/rpc/net.cpp and src/qt/rpcconsole.cpp, as well as the descriptions in src/qt/guiutil.cpp and src/bitcoin-cli.cppNetinfoRequestHandler.
Enumerator | |
---|---|
INBOUND | Inbound connections are those initiated by a peer. This is the only property we know at the time of connection, until P2P messages are exchanged. |
OUTBOUND_FULL_RELAY | These are the default connections that we use to connect with the network. There is no restriction on what is relayed; by default we relay blocks, addresses & transactions. We automatically attempt to open MAX_OUTBOUND_FULL_RELAY_CONNECTIONS using addresses from our AddrMan. |
MANUAL | We open manual connections to addresses that users explicitly requested via the addnode RPC or the -addnode/-connect configuration options. Even if a manual connection is misbehaving, we do not automatically disconnect or add it to our discouragement filter. |
FEELER | Feeler connections are short-lived connections made to check that a node is alive. They can be useful for:
|
BLOCK_RELAY | We use block-relay-only connections to help prevent against partition attacks. By not relaying transactions or addresses, these connections are harder to detect by a third party, thus helping obfuscate the network topology. We automatically attempt to open MAX_BLOCK_RELAY_ONLY_ANCHORS using addresses from our anchors.dat. Then addresses from our AddrMan if MAX_BLOCK_RELAY_ONLY_CONNECTIONS isn't reached yet. |
ADDR_FETCH | AddrFetch connections are short lived connections used to solicit addresses from peers. These are initiated to addresses submitted via the -seednode command line argument, or under certain conditions when the AddrMan is empty. |
Definition at line 18 of file connection_types.h.
|
strong |
Transport layer version.
Enumerator | |
---|---|
DETECTING | Peer could be v1 or v2. |
V1 | Unencrypted, plaintext protocol. |
V2 | BIP324 protocol. |
Definition at line 84 of file connection_types.h.
std::string ConnectionTypeAsString | ( | ConnectionType | conn_type | ) |
Convert ConnectionType enum to a string value.
Definition at line 8 of file connection_types.cpp.
std::string TransportTypeAsString | ( | TransportProtocolType | transport_type | ) |
Convert TransportProtocolType enum to a string value.
Definition at line 28 of file connection_types.cpp.