主页 > imtoken手机钱包 > 简介 | 以太坊区块链的大小不会很快超过 1TB

简介 | 以太坊区块链的大小不会很快超过 1TB

imtoken手机钱包 2023-05-26 07:25:39

在深入本文之前,请阅读本文底部关于我参与的研究的两份报告 (1,2) 和一篇关于数据准确性的文章 (3)。

我至少每月一次看到有人在 r/ethereum 上发布一张图表,预测以太坊区块链将很快超过 1 TB。 我想利用这篇文章中的这个机会来澄清一些关于以太坊的谣言——区块链的大小,并试图解释为什么这张图表在技术上是正确的,但它并没有说明全部。

以太坊设计原理_sitehqz.com 以太坊和以太坊贸易的关系_sitejianshu.com 以太坊以太经典

我们先来看看这个图表。 它显示了以太坊节点(红色)(此图中使用 Geth 节点)和比特币节点(蓝色)(可能是比特币核心节点)的完整数据目录大小,节点大小随时间变化的图标. 比特币以线性趋势向上移动,而以太坊的趋势提醒读者指数斜率。

关于区块、区块历史、状态和状态历史

将膨胀归咎于以太坊区块链的用户与他们自己的假设相差不远。 但实际上不是链的扩容,而是以太坊状态的扩容。 在继续阅读之前,我想澄清一下白皮书中的一些术语。

以太坊设计原理_sitejianshu.com 以太坊以太经典_sitehqz.com 以太坊和以太坊贸易的关系

如果这让您觉得有些乏味,请继续耐心阅读。

了解修剪模式和同步模式

2016 年初,Go-Ethereum 团队引入了所谓的快速同步模式。 从那以后,尤其是在同年以太坊垃圾邮件攻击之后,以完全同步模式运行 geth --fast 一直是一件令人头疼的事情。 我在写这些模式时使用了斜体,因为稍后我会回来帮助您阐明它们的本质含义。 所以现在记住他们。

2016 年底,Parity 团队(前身为 Ethcore)通过提供压缩同步模式(warpsychronization)来应对链上垃圾邮件,以消除新用户的全链同步。 与 Geth-fast 一样,Parity --warp 很快成为那些试图同步以太坊链的人事实上的标准模式。 截至今天,上述选项是两个客户端的默认选项。

然而,快速同步/完全同步对 Geth 节点意味着什么? 与非压缩同步相比,warp-sync对Parity节点意味着什么? 羊毛布?

一个完全同步的 Geth 节点可以处理整个区块链并重放曾经发生过的所有交易。 快速同步的 Geth 节点只下载与所有区块同步的所有交易收据,以及最新的状态数据库。 完成后,它会切换到完全同步模式。 请注意,这不仅会产生快速同步,还会产生紧凑的状态数据库,因为历史状态对于高度比最新块低 1024 的块不可用。 这没什么影响,但在继续阅读之前,请记住 Geth 同步模式也是精简模式。

sitejianshu.com 以太坊以太经典_sitehqz.com 以太坊和以太坊贸易的关系_以太坊设计原理

查看Parity配置选项,就更复杂了。 除了前面提到的同步模式,Parity 还提供了单独的精简模式,即快速模式(fast)和存档模式(archive)。 是的,Gethfa​​st 也是一种同步模式,我们了解到 Gethfa​​st 更紧凑,但是 Parityfast 紧凑模式不会与同步模式重新耦合。 在这一点上,我不得不承认,术语令人困惑,您可能不想再读下去了。 等等,让我们用笔和纸画点什么。

sitejianshu.com 以太坊以太经典_sitehqz.com 以太坊和以太坊贸易的关系_以太坊设计原理

Geth 的快速模式支持更快的同步和数据库压缩,而 Gethfull 禁用这两种模式。 然而,在 Parity 中,可以在不禁用状态树压缩的情况下禁用 wrap 模式! 这句话很重要,所以特地加粗了。 我不是要在这里比较以太坊客户,至少不是我的本意。 我试图告诉您,可以使用较小的数据库运行完全验证的以太坊节点。 Parity 只是为它提供了一个概念验证。

为什么是这样? 因为只要你把所有的历史区块都保存在你的磁盘上以太坊设计原理,你就可以通过重新处理整个链来计算任何历史状态。 但在大多数用例中,根本不需要历史状态! 因此,明智的做法是从状态历史中删除过时的条目,以将所需的磁盘空间减少 95%。

那么,完整验证节点的最小大小是多少?

好吧,如果您只运行奇偶校验而不启用扭曲(无扭曲),则可能是数十 GB。 今年初秋还不到 20 GB,但该州增长非常快。 目前,包括区块和交易在内的原始历史区块数据量约为12-15GB,而最新状态的数据量约为1-2GB。

以太坊设计原理_sitehqz.com 以太坊和以太坊贸易的关系_sitejianshu.com 以太坊以太经典

但这算作完整的以太坊节点吗? 当然:

以太坊客户端永远不会删除旧块。 这是比特币和以太坊最显着的区别,因为修剪比特币节点只能删除旧区块。 在上下文中,更容易理解为什么用户经常认为修剪后的以太坊节点不是完整节点。 但是现在,亲爱的朋友,你已经知道这个悖论是真的了。 :)

最重要的是,即使是 warp-synced Parity 节点也会在初始同步后下载块的整个历史记录以太坊设计原理,以便在旧块同步完成后可以向网络提供完整节点。

完整图片:比较 9 个奇偶校验配置

下面是我的“彩色”电子表格的屏幕截图,它试图在不同的操作模式下区分 Parity 的节点安全性。

sitehqz.com 以太坊和以太坊贸易的关系_sitejianshu.com 以太坊以太经典_以太坊设计原理

sitejianshu.com 以太坊以太经典_sitehqz.com 以太坊和以太坊贸易的关系_以太坊设计原理

配置 00 到 05 被视为完整节点。 配置 06 是默认配置的 warp 节点,一旦下载了旧块,就可以将其视为完整节点。 但是,它不会重播所有交易; 它只检查历史区块的工作量证明。

配置 07 经常被用户请求,但强烈建议不要用于生产。 此设置与修剪后的比特币节点有些相似,因为历史区块部分不可用。 这不再是一个完整的节点。 请注意,我在本段上方添加了一个分隔线。 你懂。

Configuration 08 是一个轻客户端,值得单独写一篇文章。 感谢您耐心阅读到这里,这里是给您的总结: 默认情况下,以太坊全节点不需要超过 20-30 GB 的磁盘空间。 :)

以下是一些值得注意的消息和重要说明。

(1) 我在 Parity 工作。 我比较了不同的 Parity 配置,不仅因为我知道和理解它们,还因为 Parity 允许用户单独配置删除模式和同步模式。

(2) 我持有一些比特币和以太币。 我希望这不会对我在本文中概述的技术方面产生任何影响。 我也在努力避免对此过于政治化。

sitehqz.com 以太坊和以太坊贸易的关系_sitejianshu.com 以太坊以太经典_以太坊设计原理

(3) 为了收集数据,我花了 6 个多星期的时间在 36 种不同的配置下运行 Parity。 这很费时间和资源,但还有一个问题是我不能让所有的配置同时运行,所以本文给出的数字的准确性必须谨慎使用。 我希望这些结果在运行相同配置的其他节点的 ±20% 以内。 我想你应该明白:

sitehqz.com 以太坊和以太坊贸易的关系_以太坊设计原理_sitejianshu.com 以太坊以太经典

sitehqz.com 以太坊和以太坊贸易的关系_sitejianshu.com 以太坊以太经典_以太坊设计原理

元数据:

Version: Parity/v1.8.0-unstable-7940bf6ec-20170921/x86_64-linux-gnu/rustc1.19.0 from source w/ musicoin supportUbuntu: 17.04 Kernel 4.10.0-35-generic / September 2017 / Lenovo Thinkpad X270, Core i7-7600U, 1TB SSD, 16GB RAM

谢谢大家看到最后! (比较心动~)

原文链接: