主页 > 苹果手机imtoken下载 > 比特币的点对点网络和改进建议

比特币的点对点网络和改进建议

苹果手机imtoken下载 2023-01-17 08:26:43

img

- 来源:-

本文旨在说明比特币点对点网络的工作原理。本文分为 3 个不同的部分,分别讨论比特币点对点网络的不同功能。

连接到网络中的一个节点

如果你在电脑上安装了比特币节点硬盘中找比特币,你会在配置文件中看到一些硬编码的比特币节点地址,即种子节点。种子节点是您在比特币网络中连接的第一个节点。

以下是其中一个种子节点的地址。您可以使用 dig 命令查看可连接的比特币节点 IP 地址列表。

$ dig seed.btc.petertodd.org

在连接到比特币网络中的远程节点之前,你的本地比特币节点会向你要连接的远程节点发送一个“PING”,然后收件人会回复“PONG”。但是,如果远程节点拒绝回复(由于被丢弃等原因),它将被“FIRED”,即断开连接。

在成功连接到网络中的一个比特币节点后,你执行一个初始的“握手”,即发起连接的本地节点发送它的版本消息,等待远程节点返回它的版本消息,然后本地节点发送其版本消息。发送“Verack”消息确认远程节点的版本,并等待远程节点返回相同的确认消息。

img

- 比特币节点的初始连接和握手-

在收到版本消息之前,远程节点不会发送任何消息。 “版本”消息包括您正在运行的比特币节点的版本。

检测网络中的其他节点

您可以发送“getaddr”消息来了解网络中的其他比特币节点。成功连接到远程节点后硬盘中找比特币,您可以向其发送“getaddr”消息,该消息将回复可用于连接的其他远程节点 IP 地址的示例列表。

此外,远程节点将继续向您发送它所连接的节点的 IP 地址。

img

- 比特币节点探测流-

接收交易或区块数据

在从属网络中当远程节点上的其他对等点收到块或交易时,远程节点会向连接的对等点发送“inv”消息,以检查它们是否已经存储了交易或块。不存储交易或区块的对等节点将回复“getdata”给远程节点,远程节点将返回交易或区块的详细信息。

img

-比特币数据请求流-

比特币点对点网络改进提案

为了提高比特币对等网络的性能,目前有几个比特币改进提案(BIP)。下面我们来看看其中的几个。

BIP 152 - 密集块

BIP 152 旨在减少比特币网络中节点之间转发块所占用的带宽。

该协议可以在“高带宽”和“低带宽”模式下使用,具体取决于可用的对等点和带宽。在低带宽模式下,对等方同时发送新块公告和 inv/块头公告。不支持密集块的节点仍然可以使用传统的块中继协议。

密集块包含普通块中事务 ID 的缩短版本。节点收到 cmpctblock 消息后,会计算其交易池(mempool)中所有交易的缩写 txid,然后根据缩写 txid 的匹配取回区块中包含的交易,从而构建一个完整的区块。如果找不到交易,则节点向发送 cmpctblock 消息的对等节点请求交易。这样,节点就可以在不发送区块所有数据的情况下完成区块中继。通常,区块中的大部分或全部交易都可以在节点的交易池中找到,然后进行区块重构。

img