在像比特币这样的区块链系统中,每个对等体(参与节点)都会保留分类帐的完整副本。对等体在接收并验证新到达的块时更新其分类帐副本。然而,对等体分散在全球各地,并且这些对等体之间的网络延迟变化很大。因此,区块链系统如何保证所有对等体在传播一个块后已完成更新其分类账副本?
答案 0 :(得分:2)
比特币不能保证所有分类账同时更新,比特币区块链为您提供一致的分类账:
以上保证,如果一个组控制的网络不超过51%,您最终会看到一致的分类帐,例如:如果您的分类帐号为1001,则表示网络中的所有节点都将看到相同的块链,直到1001。
对于您的问题,比特币使用随机覆盖网络来分发新块(非常类似于八卦算法)。
<强>更新强>
参见 B部分。来自here的传播方法:
用于更新和同步分类帐 副本只交易( TX )和阻止( 块 )消息是 相关。这些消息比任何其他消息都要常见 在网络上发送的消息可能会增长到相当大的程度 尺寸。为了避免发送事务和阻止消息 对于已经从其他节点接收过它们的节点,它们是 不直接转发。相反,他们的可用性已公布 通过发送给他们的邻居 INV 消息一旦发生 事务或块已经完全验证。邀请 message包含一组事务哈希和块哈希 发件人已收到并且现已可用 被要求。一个节点,接收一个用于的inv消息 将发布尚未在本地拥有的交易或区块 一个 的GetData 发送给包含的inv消息的发送者的消息 它需要的信息的哈希值。块或事务的实际传输是通过单个块或tx完成的 消息。图2显示了单个协议流程 跳到广播中。