对等节点结构
对等节点信息用 CNode
类来表示,重要的字段有下面一些。
nServices
节点支持的服务,接收
version
消息时,设置的。当前支持的服务有:NODE_NETWORK
节点可以提供完整的区块而不仅仅是区块头。所有没有进行修剪的比特币核心客户端都是这个值,SPV客户端和其他轻量级客户端不设置这个值。
NODE_GETUTXO
节点支持
getutxo
协议请求,比特币核心客户端不支持这个,但 Bitcoin XT 补丁支持这个。详见 BIP 0064。NODE_BLOOM
节点有能力并且愿意支持布隆过滤器,比特币核心默认支持此功能而不用公告这个位。详见 BIP 0111。
NODE_WITNESS
节点可以响应包含隔离见证的区块和交易请求。详见 BIP 0144。
NODE_XTHIN
节点支持 Xtreme Thinblocks。
NODE_NETWORK_LIMITED
基本等于
NODE_NETWORK
,除了只提供 288 个区块,即2天内的区块。
hSocket
nSendSize
nSendOffset
nSendBytes
vSendMsg
vProcessMsg
nProcessQueueSize
vRecvGetData
接收到的请求数据队列,接收
getdata
消息时,设置的。nRecvBytes
nRecvVersion
版本信息,服务器发送的版本与 70015 这个版本的小者,接收
verack
消息时,设置的。nLastSend
nLastRecv
nTimeConnected
nTimeOffset
addr
对待节点的地址对象,类型为
CAddress
。addrBind
nVersion
客户端发送的版本,接收
version
消息时,设置的。fWhitelisted
布尔型,节点是否为白名单节点
fFeeler
布尔型,节点是否为临时的引导节点
fOneShot
m_manual_connection
布尔型,节点是否为手工指定连接的
fClient
布尔型,节点是否可以提供区块服务。如果节点没有设置
NODE_NETWORK
、或NODE_NETWORK_LIMITED
,这个值为假,即不能提供区块服务。如果设置其中一个,这个值就为真,即可以提供区块服务。m_limited_node
布尔型,节点是否为限制型节点。节点设置了
NODE_NETWORK_LIMITED
,但没有设置NODE_NETWORK
,这值就为真。fInbound
布尔型,节点是否为入站节点
fSuccessfullyConnected
布尔型,对等节点完全连接成功。只有在收到版本确认时,才会设置这个标志。
fDisconnect
布尔型,节点是否已经断开
fRelayTxes
布尔型,是否中继交易,接收
version
消息时,设置的。fSentAddr
是否发送过请求地址标志。
grantOutbound
pfilter
类型为 CBloomFilter 的智能指针,在接收
filterload
消息时设置。nRefCount
nKeyedNetGroup
fPauseRecv
fPauseSend
mapSendBytesPerMsgCmd
mapRecvBytesPerMsgCmd
hashContinue
nStartingHeight
节点最后一个区块的高度,也即节点开始接收区块的高度,接收
version
消息时,设置的。vAddrToSend
等待发送的地址,自身要发送的地址也放在这个集合中。
addrKnown
已知的地址集合,类型为
CRollingBloomFilter
。fGetAddr
布尔型,是否向这个节点请求过地址。
setKnown
nNextAddrSend
nNextLocalAddrSend
filterInventoryKnown
setInventoryTxToSend
vInventoryBlockToSend
setAskFor
mapAskFor
nNextInvSend
vBlockHashesToAnnounce
使用区块头部进行区块公告的集合
fSendMempool
timeLastMempoolReq
nLastBlockTime
nLastTXTime
nPingNonceSent
无符号 64 位,期待的 pong 中继,如果是 0,就是非期待的。
nPingUsecStart
nPingUsecTime
nMinPingUsecTime
fPingQueued
minFeeFilter
lastSentFeeFilter
nextSendTimeFeeFilter
nLocalHostNonce
在进行
version
时,生成的随机值。nLocalServices
nMyStartingHeight
nSendVersion
版本信息,客户端发送的版本与 70015 这个版本的小者,接收
version
消息时,设置的。vRecvMsg
addrName
addrLocal
对等节点的地址,接收
version
消息时,设置的。hashContinue
nLastTXTime
最后一次收到交易的时间
nLastBlockTime
最后一次收到区块的时间
Last updated
Was this helpful?