比特币的网络结构

比特币的网络结构

比特币采用了基于国际互联网(Internet)的P2P(peer-to-peer)网络架构。P2P是指位于同一网络中的每台计算机都彼此对等,各个节点共同提供网络服务,不存在任何“特殊”节点。每个网络节点以“扁平(flat)”的拓扑结构相互连通。 在P2P网络中不存在任何服务端(server)、中央化的服务、以及层级结构。P2P网络的节点之间交互运作、协同处理:每个节点在对外提供服务的同时也使用网络中其他节点所提供的服务。

1 节点的发现

当新的节点第一次启动的时候,需要考虑三个问题

  1. 如何找到其他的节点
  2. 如何与其他节点建立连接
  3. 建立连接之后如何传递数据。

在比特币网络中,提供两种方法初始节点发现对等节点的方法。
第一种叫DNS-seed,DNS-seed,又称为DNS种子节点,比特币的社区会维护一些域名,例如seed.bitcoin.sipa.be 通过nslookup 命令解析域名得到节点ip。


比特币的网络结构_第1张图片
解析节点

另一种方式比特币网络保存了一部分硬编码的节点(直接写在代码里的那种),当dns种子节点失效当时候,就会使用硬编码的节点。
由于比特币网络的拓扑结构并不基于节点间的地理位置,因此各个节点之间的地理信息完全无关。在新节点连接时,可以随机选择网络中存在的比特币节点与之相连。(第1个问题已解决)
节点通常采用TCP协议、使用8333端口 与已知的对等节点建立连接。在建立连接时,该节点会通过发送一条包含基本认证内容的version消息开始“握手”通信过 程。这一过程包括如下内容:


比特币的网络结构_第2张图片
检点建立连接.png

你可能感兴趣的:(比特币的网络结构)