您当前位置:网站首页 >> 比特币新闻 >> MEDALLA测试网“崩溃”事件始末

MEDALLA测试网“崩溃”事件始末

2020-08-19 08:26:23 来源:比特币 比特币价格 比特币行情 比特币交易 浏览:8
内容提要:我们在差不多两周前启动了Medalla,也就是8月4日,这是一个大型的、公开的多客户端测试网

我们在差不多两周前启动了Medalla,也就是8月4日,这是一个大型的、公开的多客户端测试网,运行Eth2主网规范。关于Medalla测试网的介绍,可以参阅上期。

 

测试网平稳运行了10天,即使验证者参与率比我们预期中要低 (70%-80%的验证者保持长期在线)。但这无伤大雅,测试网完全能应付。

 

然而周五的傍晚,我在控制板中目睹了验证者参与率突然断崖式下降。在几分钟之内,活跃验证者从22000降低到5000左右,网络中约80%的验证者都消失了。

 

因此,本文将对此事件进行回顾,包括其后果和下一步的措施。

 

究竟发生了什么?
 
我们发现,网络中每个运行Prysm客户端的验证者都突然消失了。由于Prysm是使用度最高的客户端,其后果严重性可想而知。

 

Prysmatic团队在此次事件中开放了一个文档报告,并且持续在其中更新事件细节以及团队响应。以下是一些重点内容以及我的注释。

 

事件起因是时钟同步 (clock sync) 出现问题。Prysm客户端的配置使用了Cloudflare的Roughtime来计算时间。(在我看来) 其起因还不是非常明确,但很显然Roughtime将时间推移到了未来的四小时,并且持续了一个多小时。Prysm客户端验证者们突然发现他们的时间快了四个小时,并且继续为尚不存在的区块链生成区块和证明。

 

就其本身而言,还不足以造成灾难性的后果。即使有许多区块丢失,并且面临大量来自未来的证明,剩下的客户端仍然能够在原链上进行建设。渐渐地,随着Prysm节点的时钟调整回来,他们开始回到网络中,并且验证者参与率也开始回升。网络似乎在恢复正常。

 

但几小时之后,情形又急转直下。

 

在初始时间发生的四小时之后,又发生了两件事。首先,所有Prysm客户端在未来生成的证明都开始具备有效性。其次,重新加入网络的Prysm节点又开始消失了,原因是为了防止他们生成任何相悖的证明,罚没保护机制被触发了。

 

这两件事同时发生,让网络陷入了混乱。剩下的客户端仍在努力地处理他们所接收到的信息,信标链变成了不停分支的丛林。(Prysmatic团队的Raul告诉我,Prysm首次修复中的一个bug使得情况恶化)

 

在一段时间之内,网络中的信息仍处于可控范围内。但在接下来的24小时左右,要导航愈加复杂混乱的分叉,所需的内存和CPU变得难以负担。我看到一个Lighthouse客户端使用了30GB内存 (约为通常情况下的100倍),对于Teku客户端来说,即使使用12GB的Java内存堆并最大化处理器,也遇到了麻烦。

 

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

 

到目前为止,网络正在逐渐恢复。用户报告不尽相同,但是Prysm和Lighthouse的新版本刚好能够找到正确的链头并继续构建信标链。 Eth2Stats当前显示链头或附近的Lighthouse、Prysm和Teku节点的一些节点。我们会继续优化Teku,减少其在同步时所需的资源。

发表评论
网名:
评论:
验证:
共有0人对本文发表评论查看所有评论(网友评论仅供表达个人看法,并不表明本站同意其观点或证实其描述)
赞助商链接
关于我们 - 联系我们