![]() |
PIVX Core
5.6.99
P2P Digital Currency
|
A CService with information about it as peer. More...
#include <protocol.h>
Public Member Functions | |
| CAddress () | |
| CAddress (CService ipIn, ServiceFlags nServicesIn) | |
| CAddress (CService ipIn, ServiceFlags nServicesIn, uint32_t nTimeIn) | |
| SERIALIZE_METHODS (CAddress, obj) | |
Public Member Functions inherited from CService | |
| CService () | |
| CService (const CNetAddr &ip, uint16_t port) | |
| CService (const struct in_addr &ipv4Addr, uint16_t port) | |
| CService (const struct sockaddr_in &addr) | |
| uint16_t | GetPort () const |
| bool | GetSockAddr (struct sockaddr *paddr, socklen_t *addrlen) const |
| bool | SetSockAddr (const struct sockaddr *paddr) |
| std::vector< unsigned char > | GetKey () const |
| std::string | ToString () const |
| std::string | ToStringPort () const |
| std::string | ToStringIPPort () const |
| CService (const struct in6_addr &ipv6Addr, uint16_t port) | |
| CService (const struct sockaddr_in6 &addr) | |
| SERIALIZE_METHODS (CService, obj) | |
Public Member Functions inherited from CNetAddr | |
| CNetAddr () | |
| Construct an unspecified IPv6 network address (::/128). More... | |
| CNetAddr (const struct in_addr &ipv4Addr) | |
| void | SetIP (const CNetAddr &ip) |
| void | SetLegacyIPv6 (Span< const uint8_t > ipv6) |
| Set from a legacy IPv6 address. More... | |
| bool | SetInternal (const std::string &name) |
| Transform an arbitrary string into a non-routable ipv6 address. More... | |
| bool | SetSpecial (const std::string &strName) |
| Parse a TOR address and set this object to it. More... | |
| bool | IsBindAny () const |
| bool | IsIPv4 () const |
| bool | IsIPv6 () const |
| bool | IsRFC1918 () const |
| bool | IsRFC2544 () const |
| bool | IsRFC6598 () const |
| bool | IsRFC5737 () const |
| bool | IsRFC3849 () const |
| bool | IsRFC3927 () const |
| bool | IsRFC3964 () const |
| bool | IsRFC4193 () const |
| bool | IsRFC4380 () const |
| bool | IsRFC4843 () const |
| bool | IsRFC7343 () const |
| bool | IsRFC4862 () const |
| bool | IsRFC6052 () const |
| bool | IsRFC6145 () const |
| bool | IsHeNet () const |
| bool | IsTor () const |
| Check whether this object represents a TOR address. More... | |
| bool | IsI2P () const |
| Check whether this object represents an I2P address. More... | |
| bool | IsCJDNS () const |
| Check whether this object represents a CJDNS address. More... | |
| bool | IsLocal () const |
| bool | IsRoutable () const |
| bool | IsInternal () const |
| bool | IsValid () const |
| bool | IsAddrV1Compatible () const |
| Check if the current object can be serialized in pre-ADDRv2/BIP155 format. More... | |
| enum Network | GetNetwork () const |
| std::string | ToString () const |
| std::string | ToStringIP () const |
| uint64_t | GetHash () const |
| bool | GetInAddr (struct in_addr *pipv4Addr) const |
| Network | GetNetClass () const |
| uint32_t | GetLinkedIPv4 () const |
| For IPv4, mapped IPv4, SIIT translated IPv4, Teredo, 6to4 tunneled addresses, return the relevant IPv4 address as a uint32. More... | |
| bool | HasLinkedIPv4 () const |
| Whether this address has a linked IPv4 address (see GetLinkedIPv4()). More... | |
| uint32_t | GetMappedAS (const std::vector< bool > &asmap) const |
| std::vector< unsigned char > | GetGroup (const std::vector< bool > &asmap) const |
| Get the canonical identifier of our network group. More... | |
| std::vector< unsigned char > | GetAddrBytes () const |
| int | GetReachabilityFrom (const CNetAddr *paddrPartner=nullptr) const |
| Calculates a metric for how reachable (*this) is from a given partner. More... | |
| CNetAddr (const struct in6_addr &pipv6Addr, const uint32_t scope=0) | |
| bool | GetIn6Addr (struct in6_addr *pipv6Addr) const |
| Try to get our IPv6 address. More... | |
| bool | IsRelayable () const |
| Whether this address should be relayed to other peers even if we can't reach it ourselves. More... | |
| template<typename Stream > | |
| void | Serialize (Stream &s) const |
| Serialize to a stream. More... | |
| template<typename Stream > | |
| void | Unserialize (Stream &s) |
| Unserialize from a stream. More... | |
Public Attributes | |
| uint32_t | nTime {TIME_INIT} |
| Always included in serialization, except in the network format on INIT_PROTO_VERSION. More... | |
| ServiceFlags | nServices {NODE_NONE} |
| Serialized as uint64_t in V1, and as CompactSize in V2. More... | |
Static Private Attributes | |
| static constexpr uint32_t | TIME_INIT {100000000} |
| static constexpr uint32_t | DISK_VERSION_INIT {220000} |
| Historically, CAddress disk serialization stored the CLIENT_VERSION, optionally OR'ed with the ADDRV2_FORMAT flag to indicate V2 serialization. More... | |
| static constexpr uint32_t | DISK_VERSION_IGNORE_MASK {0b00000000'00000111'11111111'11111111} |
| static constexpr uint32_t | DISK_VERSION_ADDRV2 {1 << 29} |
| The version number written in disk serialized addresses to indicate V2 serializations. More... | |
Additional Inherited Members | |
Protected Attributes inherited from CService | |
| uint16_t | port |
Protected Attributes inherited from CNetAddr | |
| prevector< ADDR_IPV6_SIZE, uint8_t > | m_addr {ADDR_IPV6_SIZE, 0x0} |
| Raw representation of the network address. More... | |
| Network | m_net {NET_IPV6} |
| Network to which this address belongs. More... | |
| uint32_t | scopeId {0} |
A CService with information about it as peer.
Definition at line 337 of file protocol.h.
|
inline |
Definition at line 367 of file protocol.h.
|
inline |
Definition at line 368 of file protocol.h.
|
inline |
Definition at line 369 of file protocol.h.
|
inline |
Definition at line 371 of file protocol.h.
|
staticconstexprprivate |
The version number written in disk serialized addresses to indicate V2 serializations.
It must be exactly 1<<29, as that is the value that historical versions used for this (they used their internal ADDRV2_FORMAT flag here).
Definition at line 362 of file protocol.h.
|
staticconstexprprivate |
Definition at line 358 of file protocol.h.
|
staticconstexprprivate |
Historically, CAddress disk serialization stored the CLIENT_VERSION, optionally OR'ed with the ADDRV2_FORMAT flag to indicate V2 serialization.
The first field has since been disentangled from client versioning, and now instead:
For disk deserialization, ADDRV2_FORMAT in the stream version signals that ADDRV2 deserialization is permitted, but the actual format is determined by the high bits in the stored version field. For network serialization, the stream version having ADDRV2_FORMAT or not determines the actual format used (as it has no embedded version number).
Definition at line 357 of file protocol.h.
| ServiceFlags CAddress::nServices {NODE_NONE} |
Serialized as uint64_t in V1, and as CompactSize in V2.
Definition at line 430 of file protocol.h.
| uint32_t CAddress::nTime {TIME_INIT} |
Always included in serialization, except in the network format on INIT_PROTO_VERSION.
Definition at line 428 of file protocol.h.
|
staticconstexprprivate |
Definition at line 339 of file protocol.h.