基于最新的性能指标比较以太坊2.0主网上所有可用的客户端。
2020年12月以太坊2.0信标链发布之后,现在是时候介绍以及比较现有的协议实现了。本文作为该系列文章的第一部分,将按照字母排序比较5个主要客户端的信标链节点性能和资源利用率。
Lighthouse(Rust,SigmaPrime)
Lodestar(TypeScript,ChainSafeSystems)
Nimbus(Nim,Status)
Prysm(Go,PrysmaticLabs)
Teku(Java,ConsenSysQuorum)
以太坊2.0主网基础设施由三个主要组件组成:
信标链是PoS(权益证明)链。当前的以太坊1.x链(共识为PoW)与以太坊2.0合并之后,信标链将成为保障以太坊安全的主干网。
验证就好比PoS共识中的矿工。所有人都可以质押32ETH成为验证者,有权提议新区块、对区块敲定进行投票,然后获得奖励。
罚没者正监视验证者是否作恶,以防攻击事件发生。任何一名验证者违反规则,都会受到惩罚并被移出网络。
第111次以太坊核心开发者共识会议:计划在未来几周将EIP-7044等提案合并到Deneb规范中:6月19日消息,Galaxy研究副总裁Christine Kim发文总结第111次以太坊核心开发者共识会议,共识层团队讨论了Deneb升级的最终范围,验证者证明与聚合期限的潜在变化,以及将最大有效验证人余额从32枚ETH增加到2048枚ETH的建议。首先,开发者讨论了在Deneb中包含哪些以CL为中心的EIP,Teku开发者Mikhail Kalinin围绕EIP-6988进行更新,该提案提出了一个代码更改,以防止强行从网络中弹出的slashed验证器被协议选为区块提议者。开发者还讨论了EIP-7044、EIP-7045与EIP-4788三个提案。其中,EIP-7044提出一个代码更改以改善质押者体验,确保签名的验证器退出永久有效。EIP-7045提出代码更改以加强网络的安全性,扩大证明槽的包含范围。EIP-4788提出一个代码更改,以改善质押者体验,它将公开信标链区块的根,其中包含EVM内部链状态信息,供DApp开发者的信任最小化访问。以太坊基金会研究员AlexStokes表示,计划在未来几周内将上述三个EIP合并到Deneb规范中,并鼓励CL客户端团队尽快对其进行审查。
同时,CL客户端团队已同意在下一个EIP-4844测试网Devnet6上测试增加的blob数量,并在两周内就此事做出最终决定。与围绕最大blob计数的讨论相关,Nimbus开发者arnetheduck提出了在上海升级后主网上增加区块重组的问题。arnetheduck提议考虑更改4秒的最后期限,以聚合验证者证明并通过网络发送它们,并决定进一步予以调查。以太坊基金会研究员MichaelNeuder提出取消32枚ETH质押上限,以帮助减少活跃验证者集的增长。开发者讨论了这一变化的潜在缺陷,以及将该提案与智能合约启动的部分和全部提款直接从EL中启动的可能性。开发者同意继续讨论在ETH Magicians和Discord上异步更改以太坊验证器有效余额的实施细节。此外,以太坊核心开发者就Holesky测试网启动进行了第一次协调电话会议,Holesky预计将在年底前取代现有的Goerli测试网。[2023/6/19 21:46:42]
需要注意的是,本文主要关注第一点,信标链是以太坊2.0网络的基础。研究人员可以在Github上找到所有相关的脚本、数据和绘图,以便进一步分析:
质押协议Lido宣布为以太坊开放新的节点运营商申请:4月12日消息,流动性质押协议Lido今日在推特上宣布,为继续实现协议去中心化,其正在为以太坊开放新的节点运营商申请,申请时间为4月11日至4月30日。Lido节点运营商子治理小组将审查提交的申请,并向DAO提出入围名单以供批准。如果 DAO批准了申请人,他们有望在5月份加入。[2022/4/12 14:19:29]
>byz-f/eth2-bench-mainnet
本文将重点列出这些发现
同步指标
第一个也是最令人兴奋的问题:同步以太坊2.0信标链节点信息需要多长时间,结果见下图。
在上表中,通过比较客户端同步相同的slot需要花多少时间来比较其同步进程。在评选结果之前(虽然这不是本文的讨论范围),关于该图表我们需要知道三件事。
1.?Prysm(紫色线)有个特殊的地方是,它会连接以太坊1.x节点,从验证者信息登记处获取所有ETH存款,然后从Eth1状态下构建Eth2创世。虽然从安全的角度来看,这一特性蛮有用的,因为用户不必信任Prysm的开发者以获得正确的创世状态,但是这一过程需要些时间。因此,客户端启动与同步启动的时间有明显的偏移。(#8209)。
稳定币将以太坊的交易数量推高至2019年7月以来的最高水平:5月4日消息,根据Coin Metrics的数据,4月30日,以太坊区块链上已确认交易总数的7天移动平均数升至845,400,达到自2019年7月1日以来的最高水平。截至周日,平均数为837,100。Coin Metrics数据显示,过去两个月来,主要稳定币的市值从35亿美元上升至超过70亿美元。此外,根据加密货币投资者和Mythos Capital Ryan Sean Adam的创始人称,截至4月21日,在以太坊区块链上运营的所有稳定币的市值均超过90亿美元。 对稳定币的需求和发行量的增加恰好与冠状病引起的美元短缺影响了全球经济。 一些观察家认为,这场危机增强了稳定币作为链上转移价值的波动性较小的工具的吸引力。(CoinDesk)[2020/5/5]
2.?由于出现JavaScript堆内存不足的问题,在基准测试时Lodestar(灰色线)出现了崩溃(#2005)。但是,它在10秒后由脚本自动重启。
3.不可见:在初始同步时,Loderstar还没有完全验证所有签名(#1217)。因此,目前尚不清楚Loderstar与其他客户端的比较情况。
上面的图表中,我们可以看到Lighthouse(橙色线)整体表现出色,Prysm、Teku(绿色线)和Nimbus(蓝色线)在保持速度方面表现出色。但是,让我们再来看看下面的图表:
分析 | 以太坊主流交易所24H交易量下滑 平均情绪指数也有所下降:据 TokenGazer 数据分析显示,截止至 11 月 8 日 11 时,以太坊价格为$187.68,总市值为$20,323.59M,主流交易所24H交易量有一定下滑,当前交易量约为$59.73M;近期以太坊对比特币汇率保持稳定;基本面方面,以太坊链上交易量、链上DApp交易量有一定下降,新增地址增速、算力保持稳定;以太坊 30 天开发者指数约为 2.23;以太坊与 BTC 180 天关联度保持稳定,30 天 ROI 下降;据TokenGazer官网六道数据显示,以太坊情绪指数移动平均线持续下滑,Grayscale以太坊持仓量保持较高仓位。[2019/11/8]
在这个图表中,我们把Prysm客户端启动和同步启动(即第一个信标链区块产生)之间的时间偏移删去。那么可以看出,单纯比较同步速度的话,Prysm的表现略优于Lighthouse,不到两个小时就能同步完成,而Lighthouse需要两个半小时。Teku和Nimbus大概需要五个小时。
值得注意的是,Eth2TypeScript实现(Lodestar使用的语言)并不是仅为了成为运行一个全信标链或者验证者节点的首选客户端。相反,Lodestar将为以太坊2.0去中心化应用的所有web、浏览器和基于插件的组件提供基础设施。
行情 | 以太坊网络拥堵情况有所缓解:据Etherscan.io数据显示,以太坊当前未确认交易笔数为53369,近几日的高点为645935,拥堵情况较有所缓解。[2018/8/29]
假设我们知道了客户端的信标头区块当前所在的slot高度,并且可以查看在这60秒之前区块头的高度的话,我们就可以通过展示各客户端每秒同步的slot数(用点表示),来计算过去60秒的移动平均值以比较各客户端的同步速度。移动平均值超过10分钟的则用实线表示。
结果与前一个图表一致。尽管Prysm因为要花时间获取Eth1-状态,它仍是同步速度最快的客户端,每秒同步60slots。Lighthouse紧跟其后,每秒同步46slots。稍显落后的是Teku(23/秒)和Nimbus(22/秒)。
然而什么是slot呢?在传统的区块链如比特币和Eth1链中,要么有区块要么没有。那么当比较这些链上的客户端性能时,我们会以块数/秒为单位来比较其同步速度。这跟以slot数/秒为单位有何不同呢?
在以太坊2.0中,每12秒总有一个指定的slot。如果验证者被分配到一个slot中提议区块,该slot便有一个区块。然而,如果验证者错过该slot,那么便是个空slot(没有区块),但尽管如此,slot的计数将继续进行。因此,在以太坊2.0中,我们以slots/秒为单位计算同步速度。
在这个图表中,我们把(时间)这一变量删去,横坐标为已同步的slot数,并把上一个图表中的同步速度映射到该图表中。所有客户端都显示一个趋势:随着slot的增加同步速度下降。由于该数据是在以太坊2.0主网上搜集的,我们知道有一条验证者队列正排队等候进入2.0网络。在撰写本文时,等候队列上有13_458名验证者,按照每天新增900名验证者的速度来算,需要等待将近15天。
了解了以太坊2.0主网验证者数量呈线性增长之后,我们可以假设活跃验证者集的规模变大使得同步速度减缓。
计算资源指标
在上半部分中,我们仅分析了同步指标,选出同步最快的客户端。但是哪个客户端在资源利用方面快且高效呢?
上面的图表中,随着同步slot的数量增加,比较各客户端的数据库容量。值得注意的是,关于完全同步主网节点(420_000slots),Lodestar的占用空间最小,总共只有1.49GiB。Lighthouse(2.98GiB)和Prysm(3.16GiB)的结果也不错。
我们知道Eth1节点存储完整的区块历史数据。尽管如此,Eth1节点还是移除了历史状态以最小化数据库所需的磁盘空间。Eth2节点与这个概念相当。在磁盘上储存所有块的同时,他们会删除最终状态。两者的主要区别为:为了方便起见,应将历史状态存储于时段边界中(epochboundaries)。目前,Nimbus每32个epoch在时段边界存储状态,然而Lodestar每1024个epoch将状态记录在磁盘中。在图中可以清楚地看出差异。
该图表相同,但是绘制了同步期间每个客户端的常驻内存集的大小。从图中得出,Nimbus客户端非常高效,在信标链主网的整个处理过程仅需要约1GiBRAM。紧接其后的是Lighthouse和Lodestar,均略低于3GiB。
注意:Java分配给Teku的堆外内存不在客户端开发者的控制范围之内。JVM对可用内存的消耗量特别大。Teku的指标结果在可用内存总量不同的情况下差异十分大。
最后但同样重要的一点是,让我们看一下CPU的利用率。在上面图表中可以看到客户端之间的一些有趣差异。
区块链属于一种高度分层的数据结构。同步区块链数据、验证区块以及计算最新状态,大部分工作都是按序列进行的。因此,客户端面临的挑战便是尽可能地使该进程平行化。图表显示的结果与同步速度指标相当,Prysm和Lighthouse领先(数值更高意味着更加有效),而Teku保持良好。
FAQ
Q:文章不错,但请问为什么你没有比较流量指标呢?
A:我有比较,只是没有对所有指标比较都进行评论。你可以在Github上找到没有进行注释的点对点、流量指标,想要进一步研究的话访问:eth2-bench-mainnet/doc/00-plots-uncommented.md
Q:你个人来说推荐哪个客户端?
A:这个问题很难回答。靠感觉走的话,我选择Lighthouse,我觉得它的总体用户体验、性能、功能以及工具可用性都很好。然而,Prysm仍是最成熟并且是目前最快的客户端。Teku的使用体验也很好,我认为所有客户端都是产品级别的。
Q:信标链数据库大小会超过1TiB吗?
不,首先,与Eth1相比,信标链本身相对较小。驱动数据库大小的主要因素是信标状态。然而,与Eth1相比,Eth2并不需要将所有状态存储在磁盘中,因为用户总是可以从本地运行的区块中重建任何状态。
除此之外,PoS有敲定这一工序,而PoW没有(reorgs,51%攻击)。一旦区块被敲定,该区块永远不会被篡改。敲定的意思是,将来客户端不用再从创世开始同步链的数据,而是获取最后敲定的epoch的最新链头的数据。
原文链接:
https://dev.to/q9/ethereum-2-0-mainnet-clients-3and
来源|dev.to/q9
作者|?AfriSchoedon
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。