一个新加入的节点如何找到对等节点呢?

  • A+

 为了与已知节点相连,需要与之建立起TCP(传输控制协议)连接,比特币节点的服务端口通常为8333(约定俗成的比特币端口),或者其他约定的服务端口。一旦连接建立,新节点立即向服务端发送一个版本信息进行“握手(handshake)”。握手信息主要是识别信息,包括如下信息。

 协议版本(PROTOCOL_VERSION)

 定义比特币P2P协议版本的常量(比如:70002)。

 本地服务(nLocalServices)

 节点提供的本地服务列表,目前只有网络节点(NODE_NETWORK)。

时间(nTime)

 当前时间。

 对端地址(addrYou)

 从本地节点看到的远端节点IP地址。

 本地地址(addrMe) 

本地节点发现的本机IP地址。

 子版本(subver) 显示本地节点软件类型的子版本号(比如:“/Satoshi:0.9.2.1/”)+。

 最佳高度(BestHeight)

 本地节点区块链的高度。

 [GitHub(http://bit.ly/1qlsC7w)上可看到版本网络信息的例子]。

远端节点返回一个verack消息进行应答,并建立连接,如果希望回连新节点并互换信息,也可以将它自己的版本消息发给新节点。

 一个新加入的节点如何找到对等节点呢?一种方式是利用一系列被称为“DNS种子”的、能够提供比特币节点IP地址的DNS服务器进行查询。一些DNS种子可以提供稳定的比特币节点的静态IP地址列表;另一些则是BIND(Berkeley Internet Name Demon)协议的定制化实现,它们会返回通过爬虫收集到的或长期运行的比特币节点列表的一个子集。比特币核心客户端包含5个不同的DNS种子的名称。




加密数字货币介绍:

龙链/ Dragonchain/DRGN可开发商业应用的区块链服务平原于迪士尼内部区块链项目的 Dragonchain(龙链)是独立的公有链平基于龙链可以创建智能合约、开发区块链应用(DAps),并且支持编程语言,龙链致力于打造一站式区块链商业服务平台,并可能进一展成为类似以太坊的生态系统,而龙链孵化器旨在帮助区块链初创项央速成型并实现商业化,通过战略合作的方式,发展成功的通证化生态。


weinxin
扫码关注
了解更多内容
免费领取10套量化交易策略

发表评论

目前评论: