主页 > imtoken钱包新版下载 > 紧凑型区块:比特币全节点用户的福音

紧凑型区块:比特币全节点用户的福音

imtoken钱包新版下载 2023-03-03 06:23:11

紧凑型区块中继,或 BIP152(比特币改进提案),是一种减少 p2p 网络节点广播区块所需带宽量的方案。

概括

当许多相同的内存池内容已经在全节点之间共享时,使用简单的技术可以减少将新块广播到全节点所需的带宽量。 发送方节点向接收方节点发送密集块“摘要”,其中包括以下信息:

新区块的 80 字节区块头; 缩短的事务标识符 (txid),旨在防止拒绝服务攻击; 完成某些发送节点预测但接受节点没有的交易;

接收节点将尝试使用接收到的信息和其内存池中的交易来重建整个区块。 如果仍然缺少一些交易,它将请求广播节点。

bitcoin

这种方法的优点是交易数据只需要在最好的情况下发送(当它们处于初始广播时),这大大降低了整体带宽。

此外,dense block relay proposal 还提供了第二种操作模式(称为高带宽模式),其中接收节点直接请求它的一些对等节点发送新的块而无需事先获得许可,这可能会增加带宽(因为两个对等点可能同时发送同一个块),但它进一步减少了块传播时间。

下图展示了当前节点发送区块和紧凑型区块中继的两种运行模式。

protocol-flow

在传统的中继模式中,一个区块(灰色条)由节点 A 验证,然后节点 A 将向节点 B 发送 inv 消息以请求允许发送该区块。 节点 B 回复区块请求(getdata),节点 A 发送区块。

在高带宽中继中,节点 B 使用 sendcmpt(1)(发送紧凑块)告诉节点 A 它希望尽快接收块。 当一个新区块到达时,节点 A 执行一些基本验证(例如验证区块头),然后自动将区块头、缩短的交易标识符 (txid) 和预测的丢失交易(如上所述)发送给节点 B。 节点 B 尝试重建块并请求节点 A (blocktxn) 发送的任何仍然丢失的交易 (getblocktxn)。 在这种情况下,两个节点在将块添加到各自的区块链副本之前完成完整的块验证,从而保持与以前相同的全节点安全性。

在低带宽中继中,节点 B 使用 sendcmpt(0) 告诉节点 A 它希望最小化带宽使用。 当一个新块到达时,节点 A 会完全验证它(因此它不会中继任何无效块)。 然后它会询问节点 B 是否需要该块 (inv),这样如果节点 B 已经从另一个对等方接收到该块,它就可以避免再次下载它。 如果节点 B 不想要该块,它会要求以紧凑模式 (getdata(CMPCT)) 进行处理,节点 A 发送块头,缩短交易标识符 (txids)btc全节点,并预测丢失的交易。 节点 B 尝试重建区块,请求仍然缺失的交易,而节点 A 发送这些交易。 节点 B 然后完全验证这些块。

如何考虑快速中继网络的因素?

快速中继网络(FRN)由两部分组成:

当前在快速中继网络中的节点集。 快速块中继协议 (FBRP)。

目前在快速中继网络(FRN)中的节点是经过精心挑选的。 这些节点的故障将导致挖矿算力的浪费,并导致挖矿进一步中心化。 目前,大部分挖矿算力都联网。

最近,一些矿工一直在测试部署名为 RN-NextGeneration 的 UDP 和前向纠错 (FEC) 协议。 使用紧凑块的协议层改进将缩小节点网络和一般 P2P 网络之间的性能差距。 P2P 网络稳定性的提高和区块广播的速度将在网络未来的发展中发挥作用。

这个产品可以扩容比特币吗?

密集区块的目的是降低节点带宽峰值,提升用户网络体验。 然而,目前集中在比特币挖矿上的压力很大一部分存在于区块广播的延迟上,如下面的视频所述。 Compact block version 1,其主要目的不是解决比特币扩容问题。

谁将从紧凑块中受益?

想要中继交易但网络带宽有限的全节点用户。 如果你只是想尽可能节省带宽,同时仍然能够将块中继到对等方,那么目前在 Bitcoin Core v0.12 中启用了 blockonly 模式。 在 blocksonly 模式下,节点只接受包含在区块中的交易btc全节点,因此不会接受额外的交易。

减少 p2p 网络的区块广播时间可以创建更健康的网络。

紧凑块的编码、测试、审查和部署的时间表是什么?

紧凑块的第一个版本已在 BIP152 上提出,并且有一个正在由开发人员社区积极测试的工作实现。

BIP152:

参考实现:

它可以容纳更快的 p2p 中继吗?

compact block scheme还可以有其他的改进,涉及到RN-NG和两个方面:

首先,用UDP传输代替TCP块信息传输。 其次,前向纠错 (FEC) 代码用于丢弃数据包并预测丢失的传输事务数据。 这是一个新想法吗?

几年前就有人提出使用布隆过滤器(Bloom filters)来改进块广播(bloom filters),2013年Pieter Wuille(sipa)就在尝试这个方案。

额外的阅读资源:

~greg/efficient.block.xfer.txt

~greg/lowlatency.block.xfer.txt

~greg/weakblocks.txt

~greg/mempool_sync_relay.txt

:Gmaxwell/block_network_coding

~bryan/irc/bitcoin/block-propagation-links.2016-05-09.txt

~bryan/irc/bitcoin/weak-blocks-links.2016-05-09.txt

~bryan/irc/bitcoin/propagation-links.2016-05-09.txt