Kusama网络断块原因和解决方案

Polkadot的Kusama网络(金丝雀网络)出现了一些问题。下面我们来简要分析下原因和解决方案。
《财富代码》-深度分析、挖掘区块链价值项目,https://www.first.vip/hodl

Kusama网络断块原因和解决方案

Polkadot的Kusama网络(金丝雀网络)出现了一些问题。下面我们来简要分析下原因和解决方案。

上周六中午(英国时间),经过全民公投结束了升级提案(旨在将Kusama区块链更新为Kusama运行时版本1034)。用升级的新逻辑替换Kusama的核心逻辑,这个相关的升级已经发生。但由于最近将Kusama逻辑从临时Polkadot逻辑中分离出来的命名问题,升级无意中将链更新到临时的Polkadot主网运行时而不是Kusama运行时!由于两者之间Babe共识算法的参数不同,因此新的运行时与Kusama客户端代码不兼容。Babe停止出块,而Kusama宕机了。

回滚

Kusama在区块链的尾部确认了一个区块。这意味着,在50%验证者的支持下,可能可以“回滚”某个区块,即通过在该区块中发生一些更改,来导致链停止,并可能通过修改输入的交易或外部数据来实现。

在我们的例子中,这并没有提供解决方案,因为公投总是在第#516559块的开头结束,从而导致代码更改。因此,仅仅回滚一个区块是没有用的:没有已知的交易可以被构造或删除,从而来避免有问题的代码更改。

值得庆幸的是,我们不需要回滚太多区块:升级提案的公投几乎没有投票,升级提案从“赞成”变为“否决”只需一票,就能确保它不会获得通过。该投票事务可能在区块#516558之前的任何时候发生,即在选票计数和提案执行(或未执行)之前的块。从理论上讲,我们只需要回滚两个区块,但实际上,还有更多的区块有助于提供安全边际,以确保包括所需的交易。

然而,有一个小问题是,这两个区块中的一个已经被我们的Grandpa确定了。至少在没有大量网络参与者的支持和对代码库的深入了解的情况下,故意将这种情况下的回滚设计为现实是不可能的。假设我们有Kusama验证者社区的协调帮助,回滚Grandpa状态虽是困难的,但也不是不可能的。

最后一个问题是Babe(我们的块生产方案)的设计,假设每个Babe session至少要创建一个块。在Kusama,每小时都会有Babe session。暂停后的第一个小时内,不会对Kusama的130个验证者进行任何修复;事实上,当我们对情况进行初步分析时,网络已经停止两个小时后了。这意味着即使我们可以恢复Grandpa并构建一个替代块来避免有问题的升级,但是一旦验证者节点在拖延了一个多小时之后仍尝试在链上进行构建,此链仍会在不久后堵塞。

发明 DeLorean

我们需要更有创造性地思考。如果我们现在还不能编写代码块,那么我们就需要修改代码块,以便所有缺失的代码块都能按照Babe的期望进行编写,至少每小时编写一个。实际上,我们希望每小时有超过一个的验证者,以便让验证者有机会注意到sessions 正在进行,并发出它们在线的信号——如果没有这个信号,好的验证人将被踢出,并可能因为“离线”而被削减。

根据Babe的角度来看,不仅要回滚几个区块,还要回滚时间本身。从 2020 年 1 月 7 日上午 9 点(格林尼治标准时间)开始,Kusama验证者将相信他们已经回到了格林尼治标准时间 2020 年 1 月 4 日 12:10:12,大约是有问题的升级事件发生前 25 分钟(和 48 个区块)。这使我们有时间拒绝升级建议并阻止Kusama生成金丝雀形的区块。

但除非我们想无限期地活在过去的两天半里 (我们不希望这样),否则我们的鸟类DeLorean也需要一种回到未来的方式。我们不能像Doc 和Marty那样直接进入未来;Babe会注意到缺失区块,然后停止工作。

最后

幸运的是,当你可以控制区块链的外部环境时,各种事情都会成为可能。你不仅可以在时间上前后跳跃,还可以做一些更微妙的事情,如加速时间。

因此,Kusama将在回访过去之后回到今天,但不是通过一次跳跃,而是通过扭曲时间本身来实现。具体来说,是现实世界与Kusama之间的六倍扭曲。在气泡内部,时间以气泡外部时间的六倍运行。这使验证者有机会产生区块并声明它们处于在线状态(尽管它们通常只有六分之一的时间,所以最好快一点!)。从链的角度来看,它使Babe感到高兴,因为它被包裹在气泡内并且无法看到外部状态,所以一切都将发展顺利。

当然,我们不能永远保持翘曲速度,否则Kusama就会飞向未来,把我们都抛在后面。所以我们安装了一个自动关闭开关;一旦Kusama赶上了我们现在的时间,起泡里面的时钟和外部时钟一样时,起泡就消失了,一切都恢复正常。

本文由 区块链资讯平台头等仓 作者:Mark 发表,其版权均为 区块链资讯平台头等仓 所有,文章内容系作者个人观点,不代表 区块链资讯平台头等仓 对观点赞同或支持。如需转载,请注明文章来源。
《财富代码》-深度分析、挖掘区块链价值项目,https://www.first.vip/hodl

发表评论