Parity的Aura共识协议是如何工作的?

15

这里是一个只有公式的高层描述。我想要了解它的实际工作原理。

实际上,我不理解“step”是什么以及它的作用是什么?节点是否始终在更新步骤?当创建和广播块的时间到来时,它将取当前步骤值并检查是否应该进行广播。

“拒绝来自未来超过1个步骤的块”是什么意思?这是否意味着如果块时间为5秒,则下一个块时间戳应该正好比当前块时间戳高5秒。

当下一个主节点没有进行广播时会发生什么?网络如何处理?所有后续块都将被无效化,因为它们将不遵循5秒的时间戳差异。


问题中的链接无法使用。 - Alex Sed
1个回答

19
是Parity的一种权威证明(PoA)共识引擎,其名称最初来自(曾用名)。它在Kovan网络中使用。
PoA网络是有许可的,设计上不是公开的。只有严格定义的授权节点被允许封闭块。这对于测试网络或企业网络非常有用,在这些网络中,区块链上的原生代币不持有任何价值,因此在工作量证明(PoW)或股权证明(PoS)环境中很容易受到攻击。
一个<步骤>是权威<轮次>的一部分。每个权威可以在每个轮次中封闭一个块。假设我们有五个权威:0x0a .. 0x0e。这些将成为步骤,如在链规范或动态验证器合约中定义的那样:
1.步骤1: 0x0a封闭一个块 2.步骤2: 0x0b封闭一个块 3.步骤3: 0x0c封闭一个块 4.步骤4: 0x0d封闭一个块 5.步骤5: 0x0e封闭一个块
轮次结束后,它会重新开始。
“Blocks from more than 1 step into the future are rejected.”是什么意思?
如果节点0x0c在0x0a之后尝试生成一个区块,那么这个区块将会“超过1步”时间。区块的生成严格依赖于所有权威机构的区块步骤顺序。
还有,当下一个主节点没有广播时会发生什么?
这没问题,两个区块之间会有一个间隔,即加倍的区块时间。因此,如果0x0c注意到0x0b在指定的时间窗口内没有提供区块,它可以用自己的区块覆盖此步骤,轮回继续进行。有一定的时间戳容差以确保网络不会停滞。

Kovan Stats Screenshot

在上面的截图中,您可以看到科万网络中的两个机构没有封闭块。结果是这些步骤之间的块时间增加。
声明:我为Parity工作。

你们为什么在AuRa实现中改变了块头结构?事实上,我已经在geth上工作过AuRa实现,并尝试连接到parity AuRa,但我遇到了连接问题。 - Atif
很抱歉,AuRa一直是一个不断变化的目标,从未真正被明确。Parity以太坊客户端已不再维护,可以安全地宣布AuRa已经死亡。 - q9f
据我所了解,AuRa假定网络是同步的。如果这个假设不成立,那么会发生什么呢?当少于n/2个验证器出现故障时,安全性是否会受到影响? - amanusk
@Afr,Auro在OpenEthereum中是否仍然存在? - A.Ima
所以,它们没有像PBFT那样的预准备、准备和提交轮次吗?它们会自动签名、验证和提交吗? - ezio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接