通过定期存储 MPT,状态的存储大小显著减少。据 Etherscan 数据,目前 Geth 全节点的区块链数据大小约为 1TB。 Geth 的可快速同步的全节点 通过从创世区块开始重放所有交易来运行节点的一个问题是,重放所有交易会占用很长时间。一般来说,建立这样一个节点需要数周时间才能从创世区块赶上网络的最新状态。为了加速节点的启动过程,Geth 进一步提供了一种快速同步模式,可以下载最新的稳定区块的 MPT,而无需重放和维护区块之前的历史 MPT。下载完 MPT 后,它会像全节点一样重放新区块(带有定期状态存储)。 在不存储历史 MPT(有时甚至是历史区块主体)的情况下,一个 Geth 节点的存储大小可以进一步减少到 447G(截至 2021/12/06)。通过减去 300GB 的区块数据,我们推断状态大小约为 150GB。 问题 以目前以太坊 447GB 的存储大小和 15 TPS,我们预计具有 1TB SSD 的普通配置计算机应该能够运行以太坊节点相当长的一段时间(比如数年)。那么存储爆炸或状态爆炸真的存在吗?或许未来几年以太坊并不会,但假如我们可以将以太坊的虚拟机 (EVM) 扩展到数百或数千 TPS 呢? 让我们将目光转向另一个基于 EVM 的链,币安智能链(BSC)。截至 2021 年 12 月 8 日,BSC 已有:
如果我们进一步用交易数量来预测数据大小,我们可以得到: 如果 TPS 为 100,即 ~3,153 M TPY
如果 TPS 为 150(观察到的峰值 TPS),即 ~4,730 M TPY
综上所述,对于BSC来说,如果保持目前的速度甚至更高,则很快就会达到以太坊存档节点相同的存储大小,这是普通计算机几乎无法运行的。 具有极高 TPS 区块链的存储爆炸问题 如果我们对一个极高 TPS 的区块链(比如像 QuarkChain 能够做到的那样)做一个更大胆的假设,这个数字会变成多少?我们来考虑一个具有 1000 TPS 的区块链并分析其区块和状态大小,将是:
|