科普 | 10 月中旬的 Medalla 测试网失常:如何开始,将如何结束?_ETH:BlockMedal Token

转自:以太坊爱好者

Medalla测试网在2020年10月17号出现了变故。那到底发生了什么事?这里有一份5岁小孩也能懂得解释。

1)一堆验证者停机了2)Medalla测试网进入了无法敲定区块的状态。3)Prysm客户端和Nimbus客户端开始浮现一些同步方法上的bug4)因为这个bug,我们失去了更多验证者,有一些从此再无音信5)网络没有终局性,加大了节点的内存和CPU负担,又使我们试去了许多验证者,因为他们的节点没有办法处理那么大的负担6-1)要么大批验证者重新上线,让网络重新获得终局性;要么6-2)他们不上线,然后这些离线的验证者一直一直、越来越快地丧失押金,直至我们重新获得终局性。在这个过程中,可能某些验证者还会因为余额太低而被踢出队伍7)你可以盯着beaconcha.in了解最新的网络参与率。其他网站基本上没能追上最新的情况8)这种情况如果在主网上发生,不会持续那么久,因为如果烧掉的是真正的ETH,人们不会这样无动于衷9)整个网络正像它设计的那样,在大规模分裂的场景中自我修复10)如果是6-2)这种情况,我不确定网络多快能恢复正常,最快可能要到10月25号,最晚可能是再晚5天11)如果你已经离线,但不想回去重新运营验证者,这里有个工具可以帮助你有序退出验证者队伍:https://github.com/eth2-educators/medalla-exit更为技术性的细节:非激活状态的验证者不会被惩罚。一个验证者可能因为还待在待激活队列中,或者其押金还未得到处理,而停留在这种非活跃的状态中——当网络重新获得终局性时,这些验证者就会被激活。另外,如果一个激活状态的验证者发送了主动退出的消息,也会变成非激活状态,也就不会被惩罚。激活状态且在线的验证者将保持不赚不亏的状态,如果他们的见证消息的打包距离都是完美的1的话。但这是不可能的,所以他们会被轻微地惩罚。以太坊基金会的djrwto已经声明他们正在寻找一种办法来安全地降低对这部分“尽忠职守”的验证者的惩罚,因为这种惩罚,总的来说,体验不好。激活状态且不在线的验证者会被惩罚,而且惩罚会呈平方级上升,也就是说,每个epoch处的惩罚都会不断提高。当一个验证者在一个epoch内都没有被打包见证消息,它就会被认定是离线了。当然,如果一个验证者所连接的信标链节点与网络失去同步,或者验证者客户端本身无法工作,也会出现这种无法提交见证消息的情况。可以查找的原因包括客户端的bug和内存/CPU的资源使用。你也可以乘机学学如果从源代码编译客户端,然后检查一下自己的节点的资源用量。我们在美国东部时间的10月12号早上就已经陷入无法敲定区块的状态了。从那时候开始,“平方型惩罚”就开始启动。离线的验证者的惩罚力度会随着无终局性状态的持续而不断提高。公式是惩罚=有效余额*无终局性持续时间/。在数学上可以这么说:单个epoch对这些离线验证者的惩罚会随着无终局状态的推移而线性增加,因此总惩罚是平方型上升的。很难估计网络重新获得终局性的时间,因为验证者参与率会受到客户端故障的影响而不断波动。如果一个验证者的“有效余额”低于16ETH,它会被踢出验证者队伍。即使验证者还未被踢出,不断下降的余额也意味着他们在共识过程中的权重会不断降低。我已经看到一份估计,认为我们会在约13天以后重新获得终局性。因此最早就是10月25号,附近。一些验证者自8月份激活以来就没发出过一条见证消息,这些验证者的存在也会加速这个过程。一个验证者的余额要降到60.6%需要大概18天,这也就是耗时的上限。再经过三个连续的时段之后,终局性就将得以重建。离线验证者的惩罚会回复到常规的、不那么严厉的默认值上。这里有一份很好的Eth2.0和信标链介绍材料:https://ethos.dev/beacon-chain/最后,如果你想找一个自动从源代码编译客户端的工具,请看:eth2-docker

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:31ms0-8:17ms