25

引介 | 当前的 Medalla 测试网失常:如何开始,将如何结束?

 3 years ago
source link: https://ethfans.org/posts/eli10_what_is_happening_with_medalla
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Medalla 测试网在 2020 年 10 月 17 号出现了变故(编者注:实际上,自 2020 年 10 月 14 号以来,Medalla 测试网便一直没有敲定区块)。那到底发生了什么事?这里有一份 5 岁小孩也能懂得解释。(可能 5 岁不行,要 10 岁,但反正说是这么说。)

  • 1)一堆验证者停机了(也许是因为参与 zinken 测试网,也许是因为觉得厌烦了,谁知道呢)
  • 2)Medalla 测试网进入了无法敲定区块的状态。
  • 3)Prysm 客户端和 Nimbus 客户端开始浮现一些同步方法上的 bug
  • 4)因为这个 bug,我们失去了更多验证者,有一些从此再无音信
  • 5)网络没有终局性,加大了节点的内存和 CPU 负担,又使我们试去了许多验证者,因为他们的节点没有办法处理那么大的负担
  • 6-1)要么大批验证者重新上线,让网络重新获得终局性;要么
  • 6-2)他们不上线,然后这些离线的验证者一直一直、越来越快地丧失押金,直至我们重新获得终局性。在这个过程中,可能某些验证者还会因为余额太低而被踢出队伍
  • 7)你可以盯着 beaconcha.in 了解最新的网络参与率。其他网站基本上没能追上最新的情况
  • 8)这种情况如果在主网上发生,不会持续那么久,因为如果烧掉的是真正的 ETH,人们不会这样无动于衷
  • 9)整个网络正像它设计的那样,在大规模分裂的场景中自我修复
  • 10)如果是 6-2) 这种情况,我不确定网络多快能恢复正常,最快可能要到 10 月 25 号,最晚可能是(25 号)再晚 5 天
  • 11)如果你已经离线,但不想回去重新运营验证者,这里有个工具可以帮助你有序退出验证者队伍: https://github.com/eth2-educators/medalla-exit

更为技术性的细节:

非激活状态(inactive)的验证者不会被惩罚。一个验证者可能因为还待在待激活队列中,或者其押金还为得到处理,而停留在这种非活跃的状态中 —— 当网络重新获得终局性时,这些验证者就会被激活。另外,如果一个激活状态的验证者发送了主动退出的消息,也会变成非激活状态,也就不会被惩罚。

激活状态且在线的验证者将保持早不赚不亏的状态,如果他们的见证消息的打包距离都是完美的 1 的话(即在上一个 slot 发出的见证消息,在这一个 slot 就被打包)。但这是不可能的,所以他们会被轻微地惩罚。以太坊基金会的 djrwto(即 Danny Ryan)已经声明他们正在寻找一种办法来安全地降低对这部分 “尽忠职守” 的验证者的惩罚,因为这种惩罚,总的来说,体验不好。

激活状态且不在线的验证者会被惩罚,而且惩罚会呈平方级上升,也就是说,每个 epoch 处的惩罚都会不断提高。

当一个验证者在一个 epoch 内都没有被打包见证消息,它就会被认定时离线了。当然,如果一个验证者所连接的信标链节点与昂罗失去同步,或者验证者客户端本身无法工作,也会出现这种无法提交见证消息的情况。可以查找的原因包括客户端的 bug 和 内存/CPU 的资源使用。你也可以乘机学学如果从源代码编译客户端,然后检查以下自己的节点的 资源用量

我们在美国东部时间的 10 月 12 号早上就已经陷入无法敲定区块的状态了。(这种状态的定义是连续 4 个 epoch 无法敲定。)

从那时候开始,“平方型惩罚” 就开始启动。离线的验证者的惩罚力度会随着无终局性状态的持续而不断提高。公式是 惩罚 = 有效余额 * 无终局性持续时间(Epochs-Since-Finality,即当前 epoch 高度减去上一次获得终局性的 epoch 高度)/(2^25)。在数学上可以这么说:单个 epoch 对这些离线验证者的惩罚会随着无终局状态的推移而线性增加,因此总惩罚(惩罚的总和)是平方型上升的(谢谢 torfbolt 指出)。

很难估计网络重新获得终局性的时间,因为验证者参与率会受到客户端故障的影响而不断波动。

如果一个验证者的 “有效余额” 低于 16ETH(超不多是在账户余额还剩 16.75 ETH 的时候),它会被踢出验证者队伍。

即使验证者还未被踢出,不断下降的余额也意味着他们在共识过程中的权重会不断降低。我已经看到一份估计,认为我们会在约 13 天以后重新获得终局性。因此最早就是 10 月 25 号,附近。一些验证者自 8 月份激活以来就没发出过一条见证消息,这些验证者的存在也会加速这个过程。

一个验证者的余额要降到 60.6% 需要大概 18 天,这也就是耗时的上限。

再经过三个连续的时段之后,终局性就将得以重建。离线验证者的惩罚会回复到常规的、不那么严厉的默认值上。

这里有一份很好的 Eth2.0 和信标链介绍材料: https://ethos.dev/beacon-chain/https://ethfans.org/posts/beacon-chain-explainer-you-should-read-first-by-ethos-dev)) ([中文译本](

最后,如果你想找一个自动从源代码编译客户端的工具,请看: eth2-docker

(完)

原文链接: https://www.reddit.com/r/ethereum/comments/jcuigo/eli10_what_is_happening_with_medalla/?utm_source=share&utm_medium=ios_app

作者:yorickdowne

翻译&校对:阿剑


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK