以太坊节点同步变慢的主要原因是什么

当前位置:首页 > 币圈百科 > 以太坊节点同步变慢的主要原因是什么

以太坊节点同步变慢的主要原因是什么

2022-11-17币圈百科294

以太坊网络运行过程中,同步以太坊节点可以说是我们不得不接触的一个非常复杂的方面。这个过程会让很多人感到痛苦,会让更多以太坊死得很难看,被人诟病。然而,我们能做什么呢?今天跟大家分析一下以太坊节点同步越来越慢的原因。希望对你有帮助。

目前以太坊钱包默认的同步模式叫做快速同步。与从创建块开始并重新处理所有传输(需要几周时间)不同,快速同步下载块,然后只需验证与工作负载证明相关的数据。下载所有的块是简单的,但是快速的过程会相对快速地重组整个区块链。很多人误以为是同步,因为有块。

遗憾的是,这不是问题的关键,因为没有执行任何转账(即,没有为了验证区块链的有效性而进行任何转账),所以我们没有任何账户状态(即,余额、记录、智能合同代码以及数据)。这些要求单独下载,并与最新模块进行交叉检查。这部分叫做状态前缀树的下载,实际上是和块下载同时运行的;同时比下载块的时间要长。

那么,什么是状态前缀树呢?在以太坊的主网络中,有数不清的账户,这些账户会跟踪余额、数据等。每个用户的。这些账号本身不足以运行节点,需要用每个块加密,这样节点才能验证账号没有被骗。这种加密连接是通过在帐户上创建树状数据结构来实现的。每一级都连接到下一级,然后再连接到更小的一级,直到到达单个根数据。这个庞大的数据结构包含了所有账户和中间加密证书,称为状态前缀树。

那么为什么要问这个问题呢?这种树状的数据结构是由数百万个小的加密证书连接起来的。为了获得同步节点,需要下载所有账户的数据。同时,这些加密证书还将验证网络中没有任何东西试图欺骗您。这本身已经是非常夸张的数据了。更令人困惑的是,这个数据是不断变化的:每一个块(15秒),树结构中会删除大约1000个节点,然后会增加大约2000个新节点。这意味着需要同步数据库的节点以每秒200次的速度变化。最糟糕的是,你同步的时候,网络还在往前走,开始下载的时候状态可能下载的时候很小,所以你的节点需要一直跟随着网络,获取所有最新的数据。但是当你实际得到所有数据时,你的本地节点无法使用,因为它无法加密任何证明任何账户的信息。

如果你看到主网后面有64块,说明你没有完全同步,甚至离它还很远。你刚下载完块,还在下载。你可以通过无尽的导入状态条目看到自己的状态[.].当你的节点上线后,你也需要等待,直到它们出来。

Q:节点只是依赖于输入的状态?

A:节点不会暂停,只是不会提前知道整个状态前缀树有多大,所以会一直走下去,直到找到并下载完整个数据。

原因是以太坊块中只有状态根,根节点的单个hash。当节点开始同步时,它将完全到达1个节点并尝试下载。该节点,您可以测试多达16个新节点,并尝试下载这些节点。随着我们继续下载,大部分节点都会和新节点进行对比,而我们当时并不知道。这就是为什么你需要思考为什么它会卡在同一个数字里。随着时间的推移,节点会发现并下载树数据。

问:我卡在主网后面64个街区?

蓑衣网小编2022

A:如上所述,您不是卡主,但您刚刚完成块下载阶段,正在等待状态下载完成。这一部分比下载模块花费的时间长得多。

蓑衣网小编2022问:为什么下载状态需要这么长时间?我的带宽很高?

A:同步是由磁盘输入和输出控制的,而不是带宽。

以太坊的状态前缀树包含数百万个节点,其中大部分节点根据单个hash对应多达16个其他hash。在磁盘上,这是一个可怕的存储方法,因为它几乎没有任何结构,只有随机数来反映更多的随机数。这将混淆底层数据库,因为它不能优化存储和使用任何有意义的方法来查找数据。

不仅存储数据非常不理想,而且因为每秒200次的更改和对过去数据的修改,我们甚至无法下载。这是一种正确的预处理方法,使其导入速度更快,同时底层数据库不多。最终的结果是,即使是快速更新,也导致了高昂的磁盘投入和产出成本,这对机械硬盘来说是一个极大的挑战。

以太坊节点同步变慢的主要原因是什么

问:所以,我不能用硬盘运行整个节点?

A:可惜,真的不能。硬盘上的快速同步将比等待当前数据花费更多的时间。虽然你确实等了,但是硬盘跟不上主网传输处理的读写需求。

但是,您应该能够在轻型客户端中使用硬盘驱动器,因为这将最大限度地减少对系统资源的影响。如果你想运行所有节点,那么SSD是唯一的选择。

以太坊节点同步变慢的主要原因是什么 | 分享给朋友: