当前位置:首页区块链本文回顾了medalla测试网崩溃的全过程

本文回顾了medalla测试网崩溃的全过程

来源:ETH2的新功能

作者:Ben Edgington

请尽快升级到alpha.23

本期更新超出了wnie2的计划。它将在周末回顾和分析ETH2 medalla测试网络的事件。

我们大约在两周前,也就是8月4日,推出了medalla,它是一个大的、公共的多客户端测试网络,运行ETH2主网络规范。有关medalla测试网络的介绍,请参阅上一期。

虽然验证人员的参与率低于预期(70%-80%的验证人员长期在线),但测试网络运行10天仍很顺利。但没关系。测试网络可以处理它。

然而,在星期五晚上,我看到控制面板上验证者的参与度急剧下降。几分钟内,活动验证器的数量从22000个下降到大约5000个,大约80%的网络验证器消失了。

因此,本文将对这起事件进行回顾,包括其后果和下一步行动。

怎么搞的?

我们发现在网络中运行Prysm客户端的每个验证器都突然消失了。由于Prysm是最常用的客户端,其后果非常严重。

prysmatic团队在此次事件中打开了一份文档报告,并不断更新事件细节和团队响应。以下是一些要点和我的意见。

事件的原因是时钟同步有问题。Prysm客户端的配置使用cloudflare的粗略时间来计算时间。原因(在我看来)不是很清楚,但很明显,劳夫时间已经把时间移到了接下来的四个小时,持续了一个多小时。Prysm客户端验证器突然发现他们的时间快了4个小时,并继续为尚不存在的区块链生成区块和证书。

它本身并不足以造成灾难性的后果。即使丢失了许多区块并面临大量的未来证明,剩余的客户仍然可以建立在原始链上。渐渐地,随着Prysm节点时钟的调整,它们开始返回网络,验证器参与率开始上升。网络似乎正在恢复正常。

但几个小时后,情况变得更糟。

在最初的四个小时后,又发生了两件事。首先,将来由Prysm客户生成的所有证据都开始有效。其次,重新加入网络的Prysm节点又开始消失,因为没收保护机制被触发以防止它们生成任何不一致的证据。

这两件事同时发生,使网络陷入混乱。其余的客户机仍在尝试处理他们收到的信息,信标链变成了一片枝繁叶茂的丛林。(prysmatic团队的劳尔告诉我,Prysm第一次修复中的一个缺陷使情况变得更糟。)

在一段时间内,网络中的信息仍然处于控制之下。但在接下来的24小时左右,在越来越复杂和混乱的分岔处导航所需的内存和CPU变得难以忍受。我看到一个lighthouse客户机使用30GB内存(大约是正常数量的100倍),对于teku客户机,即使使用12gb的JAVA内存堆并最大化处理器也是有问题的。

请注意,这一切都发生在周末。感谢前线的所有客户团队,他们需要不断优化内存和效率,以使节点能够应对混沌网络。

到目前为止,网络正在逐步恢复。用户报告是不同的,但新版本的Prysm和lighthouse可以找到正确的链头并继续构建信标链。ETH2stats当前显示灯塔、Prysm和teku节点的一些节点位于或靠近链头。我们将继续优化teku,以减少同步所需的资源。

没有达成共识的失败

有一点需要明确的是,客户端之间不存在共识失效,即网络恢复后,所有客户端都能对链头的状态达成共识,这意味着信标链不会从根本上失效,也没有必要进行任何硬分岔。

经验教训

我们将在这一集上花更多的时间进行全面的反思和总结。以下是我的一些拙见。

时间同步的重要性

高度依赖第三方时间服务对于网络来说是一个致命点。碰巧的是,ConsenSys TX/RX研究团队的Alex Vlasov之前就撰文详尽阐释了时间同步及其在 以太坊 2.0网络中的重要性。他的工作在飞速进展当中,或许这也是一次让大家关注到这个方面的契机。此处是他的 相关文章和ETHresear.ch贴文。

客户多元化的意义

理想情况是我们会有四个及以上独立客户端,每个客户端节点所占比例不超过网络的30%。如此一来,即使有一个客户端出现了问题,而影响都不足以引起我们的注意。

即使我们不能达到这种理想的情况,降低单个客户端的极高利用率也可以使网络更加健壮。假设只有50%的验证器离线,而不是80%,网络将更容易恢复。这是因为当客户端出现问题时,会影响到网络块的生成、证明打包、广播效率、点对点通信和同步,这些因素也会对剩余的验证器产生联合影响。

替代方案的有效性

一些质押者能够切换签名密钥到其他客户端的热备份节点。这无疑使非常棒的安全网络,虽然需要当心避免被罚没:新验证者可能对于既有验证者的投票历史一无所知,因此可能做出相悖的投票。

将来,一旦我们完成了新的API,我们应该能够在不同的信标节点之间切换验证器客户端,而不仅仅是密钥。例如,Prysm验证器可以很容易地从Prysm信标节点分离并重新连接到teku信标节点。这可以解决上述没收问题。

出质人的责任

目前参与ETH2并不是一劳永逸的事。质押者们需要保持一定注意力,游走于论坛之间,为开发者提供反馈并且能够在短时内更新客户端。我非常支持大家运行自己的个人验证者,但前提是对自己应承担的责任有所意识。

欲速则不达。

为什么总是在周五傍晚出岔子?

即使是在这个时候,来自普莱斯马特团队的反应也是惊人的。详情请参阅小组的事故报告。我在下面的发言并不是要给普瑞斯马特团队带来负面影响,他们做得很好,而是要为泰库团队在类似情况下提供经验。

当如此多的用户失去了他们的资产(即使只测试币),网络也处于高压之下时,想要快速响应是很自然的,但有时可能会比快速响应快。

在这起事件中有两件事可以避免。首先,alpha.21的初始修复版本中存在一个bug,导致用户需要在17小时后回滚。

据prysmatic团队劳尔称,这个缺陷是导致随后网络混乱的原因。其次,调查组在处理情况时无意中删除了1024名核查员的反没收记录数据库,导致大多数核查员受到处罚和没收。

任何比特币客户端都可能有类似的情况。因此,即使在高压状态下,无论是开发者还是用户,我们都应该冷静应对,而不是一味追求速度。因此,在恢复网络时,我们采取的是慢工细作的方式。

暴露问题以避免将来的麻烦

最后,这次插曲其实是有必要的。如果测试网中什么都没测试出来,那它有何意义?一直处于顺滑运行的状态显然是不现实的。

这是一个伟大的考验!这也许是网络可能遭受的最严重的一种影响,即使我们自己设计,也可能无法设计出这样的测试。让测试网络遭受这种程度的冲击是我们加强客户端的必要条件。

上周,block在一篇文章中引用了我的声明:

在这封电子邮件中,Pegasys工程师Ben Edgington写道,medallaamp;是第一个具有主网络大小和配置的测试网络。

“这是第一次大规模的试验,只是屏幕上的规格,或者说是玩具网络。点对点网络有许多方面需要测试和优化。到目前为止,一切都在正常运行,但这需要更多的时间、更大的规模和更大的网络压力才能确定。

说实话,我真的很期待。

下一步是什么?

目前,所有客户团队都致力于增强客户能力,以应对极端网络环境。这不是什么大问题。我们应该能够让梅达拉在未来几天恢复正常,这可能会对所有核查人员的平衡产生影响,其中一些人将面临没收。

如果之后,即使网络能够正常运行,但是验证者的参与率仍然无法恢复,那么我们可以考虑从一开始重新定位存款合同(重新创建也可能是一个不错的选择)。但这只是现阶段的一种选择。

梅达拉万岁

温馨提示:

文章标题:本文回顾了medalla测试网崩溃的全过程

文章链接:https://www.btchangqing.cn/88035.html

更新时间:2020年08月19日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

本文回顾了medalla测试网崩溃的全过程
区块链

币安app官网下载,如何前往币安下载官方app?

2020-8-19 12:51:05

区块链行情

Uniswap:摆脱集中交换还有多远?

2020-8-19 14:06:14

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索