Bitcoin ABC 0.26.3
P2P Digital Currency
|
Extended statistics about a CAddress. More...
#include <addrman_impl.h>
Public Member Functions | |
SERIALIZE_METHODS (AddrInfo, obj) | |
AddrInfo (const CAddress &addrIn, const CNetAddr &addrSource) | |
AddrInfo () | |
int | GetTriedBucket (const uint256 &nKey, const std::vector< bool > &asmap) const |
Calculate in which "tried" bucket this entry belongs. | |
int | GetNewBucket (const uint256 &nKey, const CNetAddr &src, const std::vector< bool > &asmap) const |
Calculate in which "new" bucket this entry belongs, given a certain source. | |
int | GetNewBucket (const uint256 &nKey, const std::vector< bool > &asmap) const |
Calculate in which "new" bucket this entry belongs, using its default source. | |
int | GetBucketPosition (const uint256 &nKey, bool fNew, int nBucket) const |
Calculate in which position of a bucket to store this entry. | |
bool | IsTerrible (NodeSeconds now=Now< NodeSeconds >()) const |
Determine whether the statistics about this entry are bad enough so that it can just be deleted. | |
double | GetChance (NodeSeconds now=Now< NodeSeconds >()) const |
Calculate the relative chance this entry should be given when selecting nodes to connect to. | |
Public Member Functions inherited from CAddress | |
CAddress () | |
CAddress (CService ipIn, ServiceFlags nServicesIn) | |
CAddress (CService ipIn, ServiceFlags nServicesIn, NodeSeconds time) | |
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 |
Obtain the IPv4/6 socket address this represents. | |
bool | SetSockAddr (const struct sockaddr *paddr) |
std::vector< uint8_t > | 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). | |
CNetAddr (const struct in_addr &ipv4Addr) | |
void | SetIP (const CNetAddr &ip) |
void | SetLegacyIPv6 (Span< const uint8_t > ipv6) |
Set from a legacy IPv6 address. | |
bool | SetInternal (const std::string &name) |
Create an "internal" address that represents a name or FQDN. | |
bool | SetSpecial (const std::string &addr) |
Parse a Tor or I2P address and set this object to it. | |
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. | |
bool | IsI2P () const |
Check whether this object represents an I2P address. | |
bool | IsCJDNS () const |
Check whether this object represents a CJDNS address. | |
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. | |
enum Network | GetNetwork () const |
std::string | ToString () const |
std::string | ToStringIP () const |
bool | GetInAddr (struct in_addr *pipv4Addr) const |
Try to get our IPv4 address. | |
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. | |
bool | HasLinkedIPv4 () const |
Whether this address has a linked IPv4 address (see GetLinkedIPv4()). | |
uint32_t | GetMappedAS (const std::vector< bool > &asmap) const |
std::vector< uint8_t > | GetGroup (const std::vector< bool > &asmap) const |
Get the canonical identifier of our network group. | |
std::vector< uint8_t > | GetAddrBytes () const |
int | GetReachabilityFrom (const CNetAddr *paddrPartner=nullptr) const |
Calculates a metric for how reachable (*this) is from a given partner. | |
CNetAddr (const struct in6_addr &pipv6Addr, const uint32_t scope=0) | |
bool | GetIn6Addr (struct in6_addr *pipv6Addr) const |
Try to get our IPv6 address. | |
bool | IsRelayable () const |
Whether this address should be relayed to other peers even if we can't reach it ourselves. | |
template<typename Stream > | |
void | Serialize (Stream &s) const |
Serialize to a stream. | |
template<typename Stream > | |
void | Unserialize (Stream &s) |
Unserialize from a stream. | |
Public Attributes | |
NodeSeconds | m_last_try {0s} |
last try whatsoever by us (memory only) | |
NodeSeconds | m_last_count_attempt {0s} |
last counted attempt (memory only) | |
CNetAddr | source |
where knowledge about this address first came from | |
NodeSeconds | m_last_success {0s} |
last successful connection by us | |
int | nAttempts {0} |
connection attempts since last successful attempt | |
int | nRefCount {0} |
reference count in new sets (memory only) | |
bool | fInTried {false} |
in tried set? (memory only) | |
int | nRandomPos {-1} |
position in vRandom | |
Public Attributes inherited from CAddress | |
NodeSeconds | nTime {TIME_INIT} |
Always included in serialization, except in the network format on INIT_PROTO_VERSION. | |
ServiceFlags | nServices {NODE_NONE} |
Serialized as uint64_t in V1, and as CompactSize in V2. | |
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. | |
Network | m_net {NET_IPV6} |
Network to which this address belongs. | |
uint32_t | m_scope_id {0} |
Scope id if scoped/link-local IPV6 address. | |
Extended statistics about a CAddress.
Definition at line 43 of file addrman_impl.h.
Definition at line 76 of file addrman_impl.h.
|
inline |
Definition at line 79 of file addrman_impl.h.
Calculate in which position of a bucket to store this entry.
Definition at line 77 of file addrman.cpp.
double AddrInfo::GetChance | ( | NodeSeconds | now = Now<NodeSeconds>() | ) | const |
Calculate the relative chance this entry should be given when selecting nodes to connect to.
Definition at line 117 of file addrman.cpp.
int AddrInfo::GetNewBucket | ( | const uint256 & | nKey, |
const CNetAddr & | src, | ||
const std::vector< bool > & | asmap | ||
) | const |
Calculate in which "new" bucket this entry belongs, given a certain source.
Definition at line 64 of file addrman.cpp.
Calculate in which "new" bucket this entry belongs, using its default source.
Definition at line 92 of file addrman_impl.h.
Calculate in which "tried" bucket this entry belongs.
Definition at line 55 of file addrman.cpp.
bool AddrInfo::IsTerrible | ( | NodeSeconds | now = Now<NodeSeconds>() | ) | const |
Determine whether the statistics about this entry are bad enough so that it can just be deleted.
Definition at line 86 of file addrman.cpp.
in tried set? (memory only)
Definition at line 64 of file addrman_impl.h.
NodeSeconds AddrInfo::m_last_count_attempt {0s} |
last counted attempt (memory only)
Definition at line 49 of file addrman_impl.h.
NodeSeconds AddrInfo::m_last_success {0s} |
last successful connection by us
Definition at line 55 of file addrman_impl.h.
NodeSeconds AddrInfo::m_last_try {0s} |
last try whatsoever by us (memory only)
Definition at line 46 of file addrman_impl.h.
int AddrInfo::nAttempts {0} |
connection attempts since last successful attempt
Definition at line 58 of file addrman_impl.h.
|
mutable |
position in vRandom
Definition at line 67 of file addrman_impl.h.
int AddrInfo::nRefCount {0} |
reference count in new sets (memory only)
Definition at line 61 of file addrman_impl.h.
CNetAddr AddrInfo::source |
where knowledge about this address first came from
Definition at line 52 of file addrman_impl.h.