Bitcoin ABC 0.30.3
P2P Digital Currency
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | Friends | List of all members
CNode Class Reference

Information about a peer. More...

#include <net.h>

Collaboration diagram for CNode:
[legend]

Public Member Functions

SOCKET hSocket GUARDED_BY (cs_hSocket)
 
size_t nSendSize GUARDED_BY (cs_vSend)
 Total size of all vSendMsg entries. More...
 
size_t nSendOffset GUARDED_BY (cs_vSend)
 Offset inside the first vSendMsg already sent. More...
 
uint64_t nSendBytes GUARDED_BY (cs_vSend)
 
std::deque< std::vector< uint8_t > > vSendMsg GUARDED_BY (cs_vSend)
 
std::list< CNetMessage > vProcessMsg GUARDED_BY (cs_vProcessMsg)
 
uint64_t nRecvBytes GUARDED_BY (cs_vRecv)
 
std::string cleanSubVer GUARDED_BY (m_subver_mutex)
 
bool HasPermission (NetPermissionFlags permission) const
 
bool IsOutboundOrBlockRelayConn () const
 
bool IsFullOutboundConn () const
 
bool IsManualConn () const
 
bool IsBlockOnlyConn () const
 
bool IsFeelerConn () const
 
bool IsAddrFetchConn () const
 
bool IsInboundConn () const
 
bool IsAvalancheOutboundConnection () const
 
bool ExpectServicesFromConn () const
 
Network ConnectedThroughNetwork () const
 Get network the peer connected through. More...
 
std::optional< CPubKey > m_avalanche_pubkey GUARDED_BY (cs_avalanche_pubkey)
 
void invsPolled (uint32_t count)
 The node was polled for count invs. More...
 
void invsVoted (uint32_t count)
 The node voted for count invs. More...
 
void updateAvailabilityScore (double decayFactor)
 The availability score is calculated using an exponentially weighted average. More...
 
double getAvailabilityScore () const
 
 CNode (NodeId id, SOCKET hSocketIn, const CAddress &addrIn, uint64_t nKeyedNetGroupIn, uint64_t nLocalHostNonceIn, uint64_t nLocalExtraEntropyIn, const CAddress &addrBindIn, const std::string &addrNameIn, ConnectionType conn_type_in, bool inbound_onion)
 
 ~CNode ()
 
 CNode (const CNode &)=delete
 
CNodeoperator= (const CNode &)=delete
 
void PongReceived (std::chrono::microseconds ping_time)
 A ping-pong round trip has completed successfully. More...
 
NodeId GetId () const
 
uint64_t GetLocalNonce () const
 
uint64_t GetLocalExtraEntropy () const
 
int GetRefCount () const
 
bool ReceiveMsgBytes (const Config &config, Span< const uint8_t > msg_bytes, bool &complete) EXCLUSIVE_LOCKS_REQUIRED(!cs_vRecv)
 Receive bytes from the buffer and deserialize them into messages. More...
 
void SetCommonVersion (int greatest_common_version)
 
int GetCommonVersion () const
 
CService GetAddrLocal () const EXCLUSIVE_LOCKS_REQUIRED(!m_addr_local_mutex)
 
void SetAddrLocal (const CService &addrLocalIn) EXCLUSIVE_LOCKS_REQUIRED(!m_addr_local_mutex)
 May not be called more than once. More...
 
CNodeAddRef ()
 
void Release ()
 
void CloseSocketDisconnect () EXCLUSIVE_LOCKS_REQUIRED(!cs_hSocket)
 
void copyStats (CNodeStats &stats) EXCLUSIVE_LOCKS_REQUIRED(!m_subver_mutex
 
std::string ConnectionTypeAsString () const
 

Public Attributes

std::unique_ptr< TransportDeserializerm_deserializer
 
std::unique_ptr< TransportSerializerm_serializer
 
Mutex cs_vSend
 
Mutex cs_hSocket
 
Mutex cs_vRecv
 
RecursiveMutex cs_vProcessMsg
 
size_t nProcessQueueSize {0}
 
std::atomic< std::chrono::seconds > m_last_send {0s}
 
std::atomic< std::chrono::seconds > m_last_recv {0s}
 
const std::chrono::seconds m_connected
 Unix epoch time at peer connection. More...
 
std::atomic< int64_t > nTimeOffset {0}
 
const CAddress addr
 
const CAddress addrBind
 
const std::string m_addr_name
 
const bool m_inbound_onion
 Whether this peer is an inbound onion, i.e. More...
 
std::atomic< int > nVersion {0}
 
uint64_t nRemoteHostNonce {0}
 
uint64_t nRemoteExtraEntropy {0}
 
Mutex m_subver_mutex
 cleanSubVer is a sanitized string of the user agent byte array we read from the wire. More...
 
bool m_prefer_evict {false}
 
std::atomic_bool fSuccessfullyConnected {false}
 
std::atomic_bool fDisconnect {false}
 
CSemaphoreGrant grantOutbound
 
std::atomic< int > nRefCount {0}
 
const uint64_t nKeyedNetGroup
 
std::atomic_bool fPauseRecv {false}
 
std::atomic_bool fPauseSend {false}
 
std::atomic< bool > m_bip152_highbandwidth_to {false}
 
std::atomic< bool > m_bip152_highbandwidth_from {false}
 
std::atomic_bool m_has_all_wanted_services {false}
 Whether this peer provides all services that we want. More...
 
std::atomic_bool m_relays_txs {false}
 Whether we should relay transactions to this peer. More...
 
std::atomic_bool m_bloom_filter_loaded {false}
 Whether this peer has loaded a bloom filter. More...
 
std::atomic< bool > m_avalanche_enabled {false}
 
Mutex cs_avalanche_pubkey
 
std::chrono::seconds m_nextGetAvaAddr {0}
 
std::atomic< std::chrono::seconds > m_avalanche_last_message_fault {0s}
 
std::atomic< int > m_avalanche_message_fault_counter {0}
 
SteadyMilliseconds m_last_poll {}
 
std::atomic< std::chrono::seconds > m_last_block_time {0s}
 UNIX epoch time of the last block received from this peer that we had not yet seen (e.g. More...
 
std::atomic< std::chrono::seconds > m_last_tx_time {0s}
 UNIX epoch time of the last transaction received from this peer that we had not yet seen (e.g. More...
 
std::atomic< std::chrono::seconds > m_last_proof_time {0s}
 UNIX epoch time of the last proof received from this peer that we had not yet seen (e.g. More...
 
std::atomic< std::chrono::microseconds > m_last_ping_time {0us}
 Last measured round-trip time. More...
 
std::atomic< std::chrono::microseconds > m_min_ping_time
 Lowest measured round-trip time. More...
 
void !m_addr_local_mutex
 
void !cs_vSend
 
void !cs_vRecv
 

Private Member Functions

CService addrLocal GUARDED_BY (m_addr_local_mutex)
 
mapMsgCmdSize mapSendBytesPerMsgCmd GUARDED_BY (cs_vSend)
 
mapMsgCmdSize mapRecvBytesPerMsgCmd GUARDED_BY (cs_vRecv)
 

Private Attributes

const NodeId id
 
const uint64_t nLocalHostNonce
 
const uint64_t nLocalExtraEntropy
 
const ConnectionType m_conn_type
 
std::atomic< int > m_greatest_common_version {INIT_PROTO_VERSION}
 
NetPermissionFlags m_permissionFlags {NetPermissionFlags::None}
 
std::list< CNetMessagevRecvMsg
 
Mutex m_addr_local_mutex
 
std::atomic< uint64_t > invCounters {0}
 The inventories polled and voted counters since last score computation, stored as a pair of uint32_t with the poll counter being the 32 lowest bits and the vote counter the 32 highest bits. More...
 
std::atomic< double > availabilityScore {0.}
 The last computed score. More...
 

Friends

class CConnman
 
struct ConnmanTestMsg
 

Detailed Description

Information about a peer.

Definition at line 456 of file net.h.

Constructor & Destructor Documentation

◆ CNode() [1/2]

CNode::CNode ( NodeId  id,
SOCKET  hSocketIn,
const CAddress addrIn,
uint64_t  nKeyedNetGroupIn,
uint64_t  nLocalHostNonceIn,
uint64_t  nLocalExtraEntropyIn,
const CAddress addrBindIn,
const std::string &  addrNameIn,
ConnectionType  conn_type_in,
bool  inbound_onion 
)

Definition at line 3447 of file net.cpp.

Here is the call graph for this function:

◆ ~CNode()

CNode::~CNode ( )

Definition at line 3485 of file net.cpp.

Here is the call graph for this function:

◆ CNode() [2/2]

CNode::CNode ( const CNode )
delete

Member Function Documentation

◆ AddRef()

CNode * CNode::AddRef ( )
inline

Definition at line 743 of file net.h.

Here is the caller graph for this function:

◆ CloseSocketDisconnect()

void CNode::CloseSocketDisconnect ( )

Definition at line 558 of file net.cpp.

Here is the call graph for this function:

◆ ConnectedThroughNetwork()

Network CNode::ConnectedThroughNetwork ( ) const

Get network the peer connected through.

Returns Network::NET_ONION for inbound onion connections, and CNetAddr::GetNetClass() otherwise. The latter cannot be used directly because it doesn't detect the former, and it's not the responsibility of the CNetAddr class to know the actual network a peer is connected through.

Returns
network the peer connected through.

Definition at line 615 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConnectionTypeAsString()

std::string CNode::ConnectionTypeAsString ( ) const
inline

Definition at line 756 of file net.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ copyStats()

void CNode::copyStats ( CNodeStats stats)

Definition at line 619 of file net.cpp.

Here is the call graph for this function:

◆ ExpectServicesFromConn()

bool CNode::ExpectServicesFromConn ( ) const
inline

Definition at line 563 of file net.h.

Here is the call graph for this function:

◆ GetAddrLocal()

CService CNode::GetAddrLocal ( ) const

Definition at line 597 of file net.cpp.

Here is the caller graph for this function:

◆ getAvailabilityScore()

double CNode::getAvailabilityScore ( ) const

Definition at line 3441 of file net.cpp.

Here is the caller graph for this function:

◆ GetCommonVersion()

int CNode::GetCommonVersion ( ) const
inline

Definition at line 736 of file net.h.

Here is the caller graph for this function:

◆ GetId()

NodeId CNode::GetId ( ) const
inline

Definition at line 710 of file net.h.

Here is the caller graph for this function:

◆ GetLocalExtraEntropy()

uint64_t CNode::GetLocalExtraEntropy ( ) const
inline

Definition at line 713 of file net.h.

Here is the caller graph for this function:

◆ GetLocalNonce()

uint64_t CNode::GetLocalNonce ( ) const
inline

Definition at line 712 of file net.h.

Here is the caller graph for this function:

◆ GetRefCount()

int CNode::GetRefCount ( ) const
inline

Definition at line 715 of file net.h.

Here is the call graph for this function:

◆ GUARDED_BY() [1/12]

std::optional< CPubKey > m_avalanche_pubkey CNode::GUARDED_BY ( cs_avalanche_pubkey  )

◆ GUARDED_BY() [2/12]

SOCKET hSocket CNode::GUARDED_BY ( cs_hSocket  )

◆ GUARDED_BY() [3/12]

std::list< CNetMessage > vProcessMsg CNode::GUARDED_BY ( cs_vProcessMsg  )

◆ GUARDED_BY() [4/12]

uint64_t nRecvBytes CNode::GUARDED_BY ( cs_vRecv  )
inline

Definition at line 480 of file net.h.

◆ GUARDED_BY() [5/12]

mapMsgCmdSize mapRecvBytesPerMsgCmd CNode::GUARDED_BY ( cs_vRecv  )
private

◆ GUARDED_BY() [6/12]

size_t nSendSize CNode::GUARDED_BY ( cs_vSend  )
inline

Total size of all vSendMsg entries.

Definition at line 467 of file net.h.

◆ GUARDED_BY() [7/12]

size_t nSendOffset CNode::GUARDED_BY ( cs_vSend  )
inline

Offset inside the first vSendMsg already sent.

Definition at line 469 of file net.h.

◆ GUARDED_BY() [8/12]

uint64_t nSendBytes CNode::GUARDED_BY ( cs_vSend  )
inline

Definition at line 470 of file net.h.

◆ GUARDED_BY() [9/12]

std::deque< std::vector< uint8_t > > vSendMsg CNode::GUARDED_BY ( cs_vSend  )

◆ GUARDED_BY() [10/12]

mapMsgCmdSize mapSendBytesPerMsgCmd CNode::GUARDED_BY ( cs_vSend  )
private

◆ GUARDED_BY() [11/12]

CService addrLocal CNode::GUARDED_BY ( m_addr_local_mutex  )
private

◆ GUARDED_BY() [12/12]

std::string cleanSubVer CNode::GUARDED_BY ( m_subver_mutex  )
inline

Definition at line 505 of file net.h.

◆ HasPermission()

bool CNode::HasPermission ( NetPermissionFlags  permission) const
inline

Definition at line 508 of file net.h.

Here is the call graph for this function:

◆ invsPolled()

void CNode::invsPolled ( uint32_t  count)

The node was polled for count invs.

Definition at line 3418 of file net.cpp.

Here is the caller graph for this function:

◆ invsVoted()

void CNode::invsVoted ( uint32_t  count)

The node voted for count invs.

Definition at line 3422 of file net.cpp.

◆ IsAddrFetchConn()

bool CNode::IsAddrFetchConn ( ) const
inline

Definition at line 551 of file net.h.

◆ IsAvalancheOutboundConnection()

bool CNode::IsAvalancheOutboundConnection ( ) const
inline

Definition at line 559 of file net.h.

◆ IsBlockOnlyConn()

bool CNode::IsBlockOnlyConn ( ) const
inline

Definition at line 545 of file net.h.

◆ IsFeelerConn()

bool CNode::IsFeelerConn ( ) const
inline

Definition at line 549 of file net.h.

◆ IsFullOutboundConn()

bool CNode::IsFullOutboundConn ( ) const
inline

Definition at line 538 of file net.h.

◆ IsInboundConn()

bool CNode::IsInboundConn ( ) const
inline

Definition at line 555 of file net.h.

Here is the caller graph for this function:

◆ IsManualConn()

bool CNode::IsManualConn ( ) const
inline

Definition at line 543 of file net.h.

◆ IsOutboundOrBlockRelayConn()

bool CNode::IsOutboundOrBlockRelayConn ( ) const
inline

Definition at line 522 of file net.h.

Here is the call graph for this function:

◆ operator=()

CNode & CNode::operator= ( const CNode )
delete

◆ PongReceived()

void CNode::PongReceived ( std::chrono::microseconds  ping_time)
inline

A ping-pong round trip has completed successfully.

Update latest and minimum ping times.

Definition at line 705 of file net.h.

◆ ReceiveMsgBytes()

bool CNode::ReceiveMsgBytes ( const Config config,
Span< const uint8_t >  msg_bytes,
bool &  complete 
)

Receive bytes from the buffer and deserialize them into messages.

Parameters
[in]msg_bytesThe raw data
[out]completeSet True if at least one message has been deserialized and is ready to be processed
Returns
True if the peer should stay connected, False if the peer should be disconnected from.

Definition at line 667 of file net.cpp.

Here is the call graph for this function:

◆ Release()

void CNode::Release ( )
inline

Definition at line 748 of file net.h.

◆ SetAddrLocal()

void CNode::SetAddrLocal ( const CService addrLocalIn)

May not be called more than once.

Definition at line 603 of file net.cpp.

Here is the call graph for this function:

◆ SetCommonVersion()

void CNode::SetCommonVersion ( int  greatest_common_version)
inline

Definition at line 732 of file net.h.

◆ updateAvailabilityScore()

void CNode::updateAvailabilityScore ( double  decayFactor)

The availability score is calculated using an exponentially weighted average.

This has several interesting properties:

  • The most recent polls/responses have more weight than the previous ones. A node that recently stopped answering will see its ratio decrease quickly.
  • This is a low-pass filter, so it causes delay. This means that a node needs to have a track record for the ratio to be high. A node that has been little requested will have a lower ratio than a node that failed to answer a few polls but answered a lot of them.
  • It is cheap to compute.

This is expected to be called at a fixed interval of AVALANCHE_STATISTICS_REFRESH_PERIOD.

Definition at line 3426 of file net.cpp.

Friends And Related Function Documentation

◆ CConnman

friend class CConnman
friend

Definition at line 457 of file net.h.

◆ ConnmanTestMsg

friend struct ConnmanTestMsg
friend

Definition at line 458 of file net.h.

Member Data Documentation

◆ !cs_vRecv

void CNode::!cs_vRecv

Definition at line 754 of file net.h.

◆ !cs_vSend

void CNode::!cs_vSend

Definition at line 754 of file net.h.

◆ !m_addr_local_mutex

void CNode::!m_addr_local_mutex

Definition at line 753 of file net.h.

◆ addr

const CAddress CNode::addr

Definition at line 488 of file net.h.

◆ addrBind

const CAddress CNode::addrBind

Definition at line 490 of file net.h.

◆ availabilityScore

std::atomic<double> CNode::availabilityScore {0.}
private

The last computed score.

Definition at line 783 of file net.h.

◆ cs_avalanche_pubkey

Mutex CNode::cs_avalanche_pubkey
mutable

Definition at line 618 of file net.h.

◆ cs_hSocket

Mutex CNode::cs_hSocket

Definition at line 473 of file net.h.

◆ cs_vProcessMsg

RecursiveMutex CNode::cs_vProcessMsg

Definition at line 476 of file net.h.

◆ cs_vRecv

Mutex CNode::cs_vRecv

Definition at line 474 of file net.h.

◆ cs_vSend

Mutex CNode::cs_vSend

Definition at line 472 of file net.h.

◆ fDisconnect

std::atomic_bool CNode::fDisconnect {false}

Definition at line 514 of file net.h.

◆ fPauseRecv

std::atomic_bool CNode::fPauseRecv {false}

Definition at line 519 of file net.h.

◆ fPauseSend

std::atomic_bool CNode::fPauseSend {false}

Definition at line 520 of file net.h.

◆ fSuccessfullyConnected

std::atomic_bool CNode::fSuccessfullyConnected {false}

Definition at line 511 of file net.h.

◆ grantOutbound

CSemaphoreGrant CNode::grantOutbound

Definition at line 515 of file net.h.

◆ id

const NodeId CNode::id
private

Definition at line 761 of file net.h.

◆ invCounters

std::atomic<uint64_t> CNode::invCounters {0}
private

The inventories polled and voted counters since last score computation, stored as a pair of uint32_t with the poll counter being the 32 lowest bits and the vote counter the 32 highest bits.

Definition at line 780 of file net.h.

◆ m_addr_local_mutex

Mutex CNode::m_addr_local_mutex
mutableprivate

Definition at line 772 of file net.h.

◆ m_addr_name

const std::string CNode::m_addr_name

Definition at line 491 of file net.h.

◆ m_avalanche_enabled

std::atomic<bool> CNode::m_avalanche_enabled {false}

Definition at line 616 of file net.h.

◆ m_avalanche_last_message_fault

std::atomic<std::chrono::seconds> CNode::m_avalanche_last_message_fault {0s}

Definition at line 651 of file net.h.

◆ m_avalanche_message_fault_counter

std::atomic<int> CNode::m_avalanche_message_fault_counter {0}

Definition at line 653 of file net.h.

◆ m_bip152_highbandwidth_from

std::atomic<bool> CNode::m_bip152_highbandwidth_from {false}

Definition at line 595 of file net.h.

◆ m_bip152_highbandwidth_to

std::atomic<bool> CNode::m_bip152_highbandwidth_to {false}

Definition at line 593 of file net.h.

◆ m_bloom_filter_loaded

std::atomic_bool CNode::m_bloom_filter_loaded {false}

Whether this peer has loaded a bloom filter.

Used only in inbound eviction logic.

Definition at line 613 of file net.h.

◆ m_conn_type

const ConnectionType CNode::m_conn_type
private

Definition at line 764 of file net.h.

◆ m_connected

const std::chrono::seconds CNode::m_connected

Unix epoch time at peer connection.

Definition at line 485 of file net.h.

◆ m_deserializer

std::unique_ptr<TransportDeserializer> CNode::m_deserializer

Definition at line 461 of file net.h.

◆ m_greatest_common_version

std::atomic<int> CNode::m_greatest_common_version {INIT_PROTO_VERSION}
private

Definition at line 765 of file net.h.

◆ m_has_all_wanted_services

std::atomic_bool CNode::m_has_all_wanted_services {false}

Whether this peer provides all services that we want.

Used for eviction decisions

Definition at line 601 of file net.h.

◆ m_inbound_onion

const bool CNode::m_inbound_onion

Whether this peer is an inbound onion, i.e.

connected via our Tor onion service.

Definition at line 494 of file net.h.

◆ m_last_block_time

std::atomic<std::chrono::seconds> CNode::m_last_block_time {0s}

UNIX epoch time of the last block received from this peer that we had not yet seen (e.g.

not already received from another peer), that passed preliminary validity checks and was saved to disk, even if we don't connect the block or it eventually fails connection. Used as an inbound peer eviction criterium in CConnman::AttemptToEvictConnection.

Definition at line 664 of file net.h.

◆ m_last_ping_time

std::atomic<std::chrono::microseconds> CNode::m_last_ping_time {0us}

Last measured round-trip time.

Used only for RPC/GUI stats/debugging.

Definition at line 683 of file net.h.

◆ m_last_poll

SteadyMilliseconds CNode::m_last_poll {}

Definition at line 655 of file net.h.

◆ m_last_proof_time

std::atomic<std::chrono::seconds> CNode::m_last_proof_time {0s}

UNIX epoch time of the last proof received from this peer that we had not yet seen (e.g.

not already received from another peer) and that was accepted into our proof pool. Used as an inbound peer eviction criterium in CConnman::AttemptToEvictConnection.

Definition at line 680 of file net.h.

◆ m_last_recv

std::atomic<std::chrono::seconds> CNode::m_last_recv {0s}

Definition at line 483 of file net.h.

◆ m_last_send

std::atomic<std::chrono::seconds> CNode::m_last_send {0s}

Definition at line 482 of file net.h.

◆ m_last_tx_time

std::atomic<std::chrono::seconds> CNode::m_last_tx_time {0s}

UNIX epoch time of the last transaction received from this peer that we had not yet seen (e.g.

not already received from another peer) and that was accepted into our mempool. Used as an inbound peer eviction criterium in CConnman::AttemptToEvictConnection.

Definition at line 672 of file net.h.

◆ m_min_ping_time

std::atomic<std::chrono::microseconds> CNode::m_min_ping_time
Initial value:
{
std::chrono::microseconds::max()}

Lowest measured round-trip time.

Used as an inbound peer eviction criterium in CConnman::AttemptToEvictConnection.

Definition at line 689 of file net.h.

◆ m_nextGetAvaAddr

std::chrono::seconds CNode::m_nextGetAvaAddr {0}

Definition at line 648 of file net.h.

◆ m_permissionFlags

NetPermissionFlags CNode::m_permissionFlags {NetPermissionFlags::None}
private

Definition at line 767 of file net.h.

◆ m_prefer_evict

bool CNode::m_prefer_evict {false}

Definition at line 507 of file net.h.

◆ m_relays_txs

std::atomic_bool CNode::m_relays_txs {false}

Whether we should relay transactions to this peer.

This only changes from false to true. It will never change back to false.

Definition at line 607 of file net.h.

◆ m_serializer

std::unique_ptr<TransportSerializer> CNode::m_serializer

Definition at line 462 of file net.h.

◆ m_subver_mutex

Mutex CNode::m_subver_mutex

cleanSubVer is a sanitized string of the user agent byte array we read from the wire.

This cleaned string can safely be logged or displayed.

Definition at line 504 of file net.h.

◆ nKeyedNetGroup

const uint64_t CNode::nKeyedNetGroup

Definition at line 518 of file net.h.

◆ nLocalExtraEntropy

const uint64_t CNode::nLocalExtraEntropy
private

Definition at line 763 of file net.h.

◆ nLocalHostNonce

const uint64_t CNode::nLocalHostNonce
private

Definition at line 762 of file net.h.

◆ nProcessQueueSize

size_t CNode::nProcessQueueSize {0}

Definition at line 478 of file net.h.

◆ nRefCount

std::atomic<int> CNode::nRefCount {0}

Definition at line 516 of file net.h.

◆ nRemoteExtraEntropy

uint64_t CNode::nRemoteExtraEntropy {0}

Definition at line 499 of file net.h.

◆ nRemoteHostNonce

uint64_t CNode::nRemoteHostNonce {0}

Definition at line 497 of file net.h.

◆ nTimeOffset

std::atomic<int64_t> CNode::nTimeOffset {0}

Definition at line 486 of file net.h.

◆ nVersion

std::atomic<int> CNode::nVersion {0}

Definition at line 495 of file net.h.

◆ vRecvMsg

std::list<CNetMessage> CNode::vRecvMsg
private

Definition at line 769 of file net.h.


The documentation for this class was generated from the following files: