Flow区块链介绍--第三部分
在上一篇文章中,我们研究了创建块的过程。在这篇文章中,我们将继续在我们所学的基础上,扩展我们对块生命周期的理解。
区块链分叉
我们需要了解区块链为什么会分叉以及如何分叉,以了解为什么区块终结很重要。
流量协议区块链可以在3种情况下分叉。
1)共识领袖没有收到最新的区块。
💡 ?在图中表示共识节点在看到区块链中的分叉时需要做出的决定,称为分叉选择规则。HotStuff算法在这里提供了一定程度的自由,在Flow中我们选择 "最新的分叉"(即QC拥有最大视图的分叉)。
2) 共识领袖没有收到足够权重的票数来形成法定人数证书(QC)。与上图相同,但共识领袖D并没有收到区块B2a,而是没有收到足够的票数来为区块B2a形成QC。在这种情况下,共识领袖D将根据最后一个承诺了QC的区块来提议一个区块。
3) 恶意的共识领袖从一个不是最新的父块中建立了一个区块。恶意节点可能出于多种原因这样做,例如排除它不希望被执行的交易。
现在我们了解了区块链的分叉,我们可以看看区块的最终确定。
块的最终确定
最终化是构建Flow区块链的一个重要概念--它意味着共识已经承诺了这个区块,并保证它在链上保留。
对于提交交易的客户来说,如果该交易被包含在一个最终确定的区块中,这就保证了该交易被提交到链上并将被执行。
区块的最终确定对于参与网络的节点来说是很重要的,因为当一个区块被最终确定时,意味着他们可以丢弃任何不包含最终确定的区块的分叉。
这篇帖子完成了区块和交易生命周期的大部分内容。要谈最后一步--区块封存,我们需要先看一下数据存储。敬请期待下一篇文章!