火星链 火星链
Ctrl+D收藏火星链
首页 > 波场 > 正文

以太坊:以太坊Medalla测试网“崩溃”事件始末

作者:

时间:1900/1/1 0:00:00

译者注:

请运行Prysm客户端的用户尽快升级到Alpha.23版本:

https://github.com/prysmaticlabs/prysm/releases

本期是wnie2计划之外的更新,将针对周末Eth2Medalla测试网发生的插曲进行回顾和分析。

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

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

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

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

究竟发生了什么?

数据:通过Frax Finance推出的流动性质押产品质押的以太坊突破7万枚:1月22日消息,通过Frax Finance推出的流动性质押产品质押的以太坊已突破7万枚,当前共发行71,116.6254枚frxETH,价值约1.15亿美元。[2023/1/22 11:25:57]

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

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

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

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

以太坊基金会发文总结2022年各团队的研究与发展:12月29日消息,以太坊基金会发文总结2022年各团队的研究与发展,其中提到共识研发团队今年将以太坊主网共识机制切换为权益证明 (PoS) ,此外一直在解决MEV领域的紧急问题,明年将致力于提款功能、继续完善EIP-4844共识层规范以及其他合并后研究主题。密码学团队为由NIST(美国国家标准与技术研究院)标准化的后量子签名方案做出了贡献,未来,可能会通过更好的聚合技术或不同的硬度假设来提高可扩展性。此外,还包含Fe-lang、Formal Verification、Geth、Javascript 团队、Ipsilon、Portal、隐私和扩展探索、Protocol Support等团队的更新。[2022/12/29 22:15:06]

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

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

以太坊未确认交易为179,660笔:金色财经消息,据OKLink数据显示,以太坊未确认交易179,660笔,当前全网算力为665.17TH/s,全网难度为8.90P,当前持币地址为62,829,062个,同比增加119,734个,24h链上交易量为2,695,763ETH,当前平均出块时间为13s。[2021/9/16 23:28:03]

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

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

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

USDC Treasury在以太坊网络增发近7086万枚USDC:Whale Alert数据显示,北京时间4月5日00:39,USDC Treasury在以太坊网络上增发70857280枚USDC。增发哈希为:0x98b00075e76925c01e44a63ea89098951aa627ae31b4be017440e570c6265d7d。[2021/4/5 19:45:34]

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

没有发生共识失败

有一点需要明确的是,客户端之间没有发生共识失败,也就是说网络恢复时,所有客户端都能就链头状态达成共识,也就意味着信标链不会从根本上失败,也不需要进行任何硬分叉。

经验

我们将会花更多时间对这个插曲进行全面反思和总结,以下是我个人的一些陋见。

OpenEthereum 2.7.2版本漏洞导致12%的以太坊节点基本不可用:OpenEthereum中的一个更新使运行在新版本上的节点基本上无用,这个bug似乎是在OpenEthereum的2.7.2版本中引入的。OpenEthereum决定简单地废弃2.7版本,因为此版本及其bug非常难修复。最新的2.5.13稳定版迭代定于9月中旬在Berlin硬分叉之前发布。

但是,在此之前,下载新版本的运营商将面临极具破坏性的降级任务。基础架构开发商BlockNative的开发商Liam Aharon在Twitter上强调,降级需要完全重新同步区块链,“对于某些节点配置,这将需要数月的时间。”该漏洞影响了当前Parity大约50%的节点,根据Ethernodes的数据,该节点总计占整个网络的12%。OpenEthereum团队正在研究一种转换过程,该过程将帮助节点避免昂贵的重新同步。(Cointelegraph)[2020/8/25]

时间同步的重要性

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

客户端多样性的意义

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

就算我们无法达到这种理想情况,但是降低单个客户端的极高使用率也能使得网络更加强健。假设这次只有50%的验证者下线而非80%,网络也会更容易恢复。这是因为当客户端出现问题时,会影响网络的区块产生、证明打包、广播效率、点对点通信以及同步,而这些因素也会对剩余的验证者产生连带效应。

备用方案的有效性

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

在将来,一旦我们完成了新的API,应该可以实现在不同的信标节点之间切换验证者客户端的能力,而不仅仅是密钥。例如,一个Prysm验证者能够轻易地脱离Prysm信标节点,并且重新连接到Teku信标节点。这能够解决上面提到的罚没问题。

质押者的责任感

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

欲速则不达

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

即使发生在这个时间,Prysmatic团队做出的响应令人惊叹。详情请参阅该团队的事件报告。我以下的表述并非意在给Prysmatic团队带来不良影响,他们的工作的确非常出色,而是为Teku团队在面临相似处境的时候提供经验。

当有这么多用户失去资产的时候(即使只是测试币),并且网络处于高压状态下,自然而然会想要做出迅速的反应,但是有时可能欲速则不达。

这次事件中有两件事是可以避免的。首先,在初始修复版本Alpha.21中有一个缺陷,导致要求用户在17小时后进行回滚。

据Prysmatic团队Raul的说法,此缺陷是造成随后出现网络混乱的原因。其次,团队在处理情况时无意中删除了其1024个验证者的防罚没记录数据库,导致大部分验证者被罚没。

任何一个客户端都可能会发生类似情况。所以即使处于高压状态下,无论是开发者还是用户,我们所有人都要沉稳应对,不能一味追求速度。因此当我们在尝试恢复网络时,遵循了慢工出细活的方式。

暴露问题以绝后患

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

这次是一场了不起的考验!这也许是网络所能遭受的最严重的一类冲击,就算让我们自己来设计,可能也设计不出这样的测试。让测试网遭受这种程度的冲击正是我们强化客户端所需的必备条件。

上周TheBlock在文章中引用了我的陈述:

在邮件中,PegaSys工程师BenEdgington写道Medalla“是首个具备主网规模和配置的测试网”。

“这是首次大规模试验,而之前只是屏幕上的规范,或是玩具网络。点对点网络中有许多方面需要进行测试和优化。到目前为止,一切都在正常运行中,但是在我们能确保无误之前,还需要更多的时间,更广的规模以及更大的网络压力”。

说实话,还真是盼啥来啥。

下一步是什么?

目前,所有客户端团队都在致力于强化客户端,使其能够应对极端的网络情况。问题不大,我们应该在接下来的几天内就能使Medalla恢复到正常状态,可能会对所有验证者的余额产生影响,也会有一些验证者面临罚没。

如果在这之后,即使网络能正常运行,但验证者参与率还是无法回升,那么我们可能会考虑从头开始,重新部署存款合约(重新创世或许也是一个不错的选择)。但这只是现阶段的一个备选方案。

Medalla万岁!

原文链接:https://hackmd.io/@benjaminion/wnie2_200817

来源:What'sNewinEth2?

作者:BenEdgington

标签:PRYETH以太坊THEPRYZEthereum Royalty以太坊行情Mytheria

波场热门资讯
比特币:8月20日比特币早间行情:BTC价格今天会有反弹

行情回顾昨日BTC基本上就是一直保持阴跌的状态,持续缓慢的跌了一整天,价格最低触及11580附近,已经完全回到区间当中运行.

1900/1/1 0:00:00
DEFI:揭秘DeFi迅速崛起的背后:风投机构近半年悄然布局17家DeFi协议

快速预览过去六个月,TheBlock确认出至少17家DeFi协议拿到了项目融资单是7月就有6笔投资,相当于3月至5月投资交易的总和伴随去中心化交易所近来的成功.

1900/1/1 0:00:00
INT:阿帆谈币:8.20BTC回调整理 何时迎来反弹?

各位朋友们,你们好,我是阿帆老师(aftb88888)。阿帆本着负责、诚恳、认真的态度用心写好每一篇分析文章,特点鲜明,不夸张,不含糊,力求能让大家看懂大的趋势分析以及小范围的多空搏杀力度!技术.

1900/1/1 0:00:00
金生论币:eth早间策略止盈第一目标 实力做事

恭喜跟上金生论币实盘布局多单的币友们,早间给出ETH现价422.6进场多单,止盈425,第二目标428.止损420.刚才行情跌到了420.23迅速反弹到最高点426.71.完美止盈第一目标425.

1900/1/1 0:00:00
BCH:发生了什么?影响范围有多大?美国最新数字货币涉恐案件素描

发生了什么?影响范围有多大?美国最新数字货币涉恐案件素描在全球反恐领域,对涉恐资金链的切断一直是反恐工作的重要组成部分,而恐怖分子们也通过各种方式与现代金融监管手段进行周旋,如今.

1900/1/1 0:00:00
币虎2020年8月20日18:00上线DIP,160,000 DIP参与即送!

尊敬的用户:币虎创新区将于2020年8月20日18:00上线DIP/USDT交易对,具体时间如下:1.开放充币:2020年8月19日18:00;2.开放交易:2020年8月20日18:00;3.

1900/1/1 0:00:00