LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > Ankr携手BSC成功助力Erigon客户端性能升级

Ankr携手BSC成功助力Erigon客户端性能升级

2021-12-12 吴说 来源:区块链网络

Binance Smart Chain最初作为go-ethereum 的分叉,目的是提升互操作性、可编程性以及与以太坊智能合约的兼容性。Binance Smart Chain成功的同时也带来了可扩展性问题,这一问题可以追溯到其起源时期。

运行 BSC 存档节点的关键问题之一是对本地存储数据高达约17TB的需求。这种笨重的存储量导致更多的时间来index或压缩数据,同时还降低了Geth客户端的请求数据性能。Geth (Go Ethereum) 是一个命令行界面,用于与EVM(以太坊虚拟机)同时运行。

EVM 兼容性是BSC的主要优势之一,它具备支持大量现有以太坊工具、提升区块速度和低成本等特点。我们需要创建一个更高效的存储机制以保障BSC的最佳性能,同时需确保Geth 平稳运行。

关于Erigon解决方案

Erigon 最初开始于turbo-geth和Geth的改进,而后因快速快演变成与Geth截然不同的产品有了新命名。

Ankr正在实现基于https://github.com/ledgerwatch/erigon的BSC Erigon开源客户端,从而解决 BSC中存在的诸多问题。Erigon客户端旨在通过以下几个关键方式提高数据存储效率和提高区块链性能:

Erigon采用模块化设计,支持客户端的并行开发

与state交互时,数据库的读/写操作更少

在存储引擎之外对数据进行预处理,显著提高了数据库效率

通过同一系列同时进行,实现整体更快的同步

Erigon的优势

与Geth和其他现有的以太坊客户端相比,Erigon客户端的改进具有显著的优势:

磁盘存储空间大幅减少:存档节点为1.2TB,修剪节点为430GB

同步速度更快:每秒大于10块

引导归档节点更快:低于3天内完成

崩溃恢复能力更强:Erigon数据库可承受电力故障

更模块化:P2P和Web3 RPC服务可以作为组件运行

Erigon解决方案对BSC和Ankr是互利的。Erigon开源客户端意味着BSC节点用户可以自由使用,并能够为Ankr 协议和多链RPC网络贡献算力。凭借快速和可靠的BSC节点网络,Ankr将能够更好地为BSC协议和dApp开发人员提供服务。

Ankr的困难和挑战

Erigon是一个备受期待的解决方案。然而,由于BSC的共识机制和分块处理方式,Erigon与BSC并不完全兼容。因此,Ankr长期与BSC团队合作,力求解决关键迁移挑战并将Erigon功能合并到BSC。在从BSC Geth到Erigon的整个迁移过程中,优先确保所有节点的兼容性。

从BSC节点迁移的特性:

Genesis块和链配置——Erigon将Genesis的所有信息存储在源本身而不是JSON文件中,并且在运行节点之前不需要预先初始化区块链状态。这一点十分重要,但意味着需要对源文件中所有可能提供额外的支持。此外,它还通过提供具有BSC值的链标志来帮助运行节点。

Parlia共识引擎——BSC使用自己的共识引擎Parlia,而Erigon的共识接口与 Geth不完全兼容。因此,Ankr决定修改接口促使两个系统兼容,避免牺牲与块处理的兼容性,这使得合并Erigon变得更加容易。

BSC的兼容系统调用——Erigon已经支持系统调用,但由于被调用者和Gas限制的差异,它们不能与BSC的系统调用兼容。BSC的关键区别为每个系统交易都需要一个中间块终结,而这是Erigon不支持的。此外,如果多个系统调用修改相同的状态对象可能会导致Gas计算问题。

分叉——我们支持所有的BSC分叉,包括Ramanujan、Niels、 MirrorSync和 Bruno.

块处理——BSC块处理方法相对棘手,它将系统交易和收据附加到每个块执行中,区块修改同时会改变交易、收据根和状态根,这也是Erigon的块处理部分改变的原因,即Erigon共识引擎的条款只能验证但不能修改状态。

系统合约——所有BSC系统合约都有一个传输层来支持,以促进BNB交叉通信功能。

Erigon的里程碑

在第一个BSC?Erigon客户端中,我们决定不启用Validator模式,让它作为一个完整的区块链节点工作。目前,Erigon不支持记帐以避免节点中断,未来Erigon更新后将支持此功能。

第一个里程碑是确保Erigon解决方案在BSC全节点(主网和测试网)的运行中没有错误,当全节点功能完成后,我们将验证Erigon是否与BSC验证器节点兼容。

Erigon对BSC的改进

提高速度和性能——Erigon提升了MDBX存储库速度。MDBX是最快、最轻量级的嵌入式数据库之一,Erigon减小了数据库大小并提高BSC性能。当然,MDBX 有一些局限性,如它仅支持 2?? 文件系统页面进行寻址,并将数据库大小限制为8TB,解决办法是通过增加FS上的页面大小来修复。目前,使用Erigon和MDBX驱动程序在数据库中存储一个完整的存档BSC节点大约需要2.5TB,与RocksDB或LevelDB等数据库相比,MDBX驱动程序提高了约30%的性能。

新的RPC守护进程功能——Erigon的主要功能之一是RPC守护进程。通过从节点中删除所有RPC功能,我们可以在节点和RPC守护进程之间创建一个独立的传输函数,让开发人员使用远程数据库功能扩展他们的RPC。这种机制十分强大,只需设置一个Erigon全同步模式并增加其可扩展性,就可以从节点构建集群。

提升同步过程——同步节点是一个耗时且艰巨的过程,Erigon通过高效地数据处理能力和减少数据库覆盖来加快了这一过程。分阶段同步的主旨是将同步过程分成15个部分,例如下载报头或主体、块执行或状态验证。这种划分通过使用批处理和共享缓存来利用设备的所有资源,每个阶段后都会删除所有中间缓存,从而节省磁盘空间和IO操作。大多数阶段都允许进行特定的优化,这些优化很难在没有分阶段同步架构情况下实现。最重的阶段仍然是块执行,由于交易本身的严格顺序性导致很难并行化,但所有其他部分对同步过程的影响被最小化。

基准测试和结果

在基准测试中,Erigon BSC客户端表现非常出色。以下是我们测试流程的简要概述,您也可以在Ankr官网Docs——节点——Erigon BSC?测试网存档节点的初步测试了解详情(https://docs.ankr.com/nodes/binance-smart-chain/initial-testing-of-the-erigon-bsc-testnet-archive-node)

硬件规格

我们使用了Digital Ocean的一个低于平均水平的服务器来测试Erigon在BSC中的出色性能:

·?处理器:4 vCPU

·?内存:8GB

·?操作系统:160 GB

·?存储:1T GB 磁盘用于 BSC 测试网存档数据

同步过程

测试网同步过程从[INFO] [12–06|21:34:41.691] 开始。

一路进行到[INFO] [12–07|22:54:31.442] [6/15 Execution] Completed on block=14778509。

整个同步过程耗时25小时10分钟。值得关注的是Erigon仅使用了单个CPU处理器,这为未来改进留下了很大空间。只有1个CPU使得加速变得非常具有挑战性,因为块和交易本质上是连续而非并行的。我们估计实际过程可能比我们的试验提升4-5倍,这明显优于目前基于Go-Ethereum的客户端。

基准测试

Ankr 团队使用ethspam和versus来测试Erigon客户端的性能,分别对100、200和300个并发请求进行测试,错误率为 0%;在与相同服务器进行的100个Geth Goreli 测试网进行比较,Geth Goreli testnet测试遇到了6.75% 的连接错误,测试结果Erigon显著优异。

Erigon 100 个并发请求

Erigon 200个并发请求

Erigon 300 个并发请求

GETH Goreli 测试网100个并发请求

在完全相同规格的Digital Ocean服务器进行类似的基准测试,结果显示,tp95和tp99的性能较差,连接错误为6.75%。

Erigon下一步规划

Ankr 现在有更多的改进机会,我们将与BSC团队持续沟通以规划和调整我们未来的工作内容。首先,我们将优先进行以下事项。您可以关注我们的Github(https://github.com/binance-chain/bsc-erigon)了解更多Erigon相关信息和测试结果。

利用多核CPU不断提高BSC Erigon性能

启用验证器模式

BSC 2.0

Binance Smart Chain生态系统优势

Ankr与BSC生态系统有着密切的关系,我们坚信这个新项目非常有利于BSC社区和应用程序。

Ankr 通过我们的bscrpc.com公共 RPC进一步提升了BSC开发人员的能力。这种开放、免费的RPC允许任何人对链发出请求并接收响应,就像他们自己运行一个完整的BSC节点。

Ankr?产品主管Josh Neuroth认为:“随着DeFi、NFT和游戏等新兴市场大量构建在BSC上,BSC上的交易量达到了历史新高。低Gas和EVM兼容性使其备受欢迎,然而这是有代价的,即节点的跟进步履维艰。通过 Ankr?开源我们对Erigon实现了自定义,我们可以帮助节点提供商保持区块高度,确保?BSC?社区持续繁荣。”

BSC生态协调员Samy也表示:“我们很自豪BSC作为一个开放协议和社区驱动的生态系统正在实现崇高的目标。”

BSC 项目和用户将从网络升级中收益良多。随着BSC更快、更高效的发展,它将能够处理更大流量和交易,这意味着新项目将建立在更高度进化的BSC上,开发者可以更快速构建BSC dApps,加密技术的各个领域都有拥有BSC的身影。

查看更多

—-

编译者/作者:吴说

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...