火星链 火星链
Ctrl+D收藏火星链

以太坊:以太坊存储爆炸问题的分析与优化

作者:

时间:1900/1/1 0:00:00

编按:本文为QuarkChain创始人兼CEO周期博士撰写的技术文章,并以此文章为基础,在DAppLearning进行了技术分享讲座。

DeFi、GameFi等去中心化应用的蓬勃发展,极大地增加了对低交易费用的高性能区块链的需求。然而,构建高性能区块链的一个关键挑战是存储爆炸。下图是取自Etherscan的图表,它说明了一个以太坊全节点的区块链数据大小。

从图中我们可以看出,节点的链数据规模稳步增长,现在已经达到~9TB。由于去中心化区块链的一个目标是允许普通配置的计算机运行节点,因此在普通配置的计算机上强制要求9TB存储会难以达到。

区块

状态

交易收据

这其中,状态是这8.7TB的主要组成部分。所以有时,我们将存储爆炸称为“状态爆炸”。但是为什状态会如此之大?

OpenLeverage 已部署代币至以太坊:金色财经消息,借贷与保证金交易协议OpenLeverage现已将代币OLE部署到以太坊区块链上,随后会开放代币转账。

OLE初始总供应量为10亿枚,其中45%转至DAO国库,用于社区激励,包括但不限于追溯奖励、交易、借贷、xOLE持有者奖励、活动等;9.6%分配至生态系统发展金库;28.4%分配给OpenLeverage基金会之前的投资者;17%分配给给创始人、员工和顾问。关于追溯奖励,OpenLeverage已于今日完成快照,7.35%的OLE(7350万枚代币)已分配给历史出借人、交易用户和NFT持有者。(Medium)[2022/7/1 1:43:00]

什么是以太坊状态?

以太坊状态是一个MerklePatrica树,其中

开发人员:以太坊客户端Geth已接近为合并做好准备:2月3日消息,目前运行PoW网络的主要以太坊客户端Geth几乎已经为merge(合并)做好准备。Geth的维护人员Péter Szilágyi说:“虽然从外部看不太明显,但go-ethereum代码库距离合并的准备只有一步之遥。而PR本身也已经完成了,‘只需要测试’。”

据悉,以太坊1.0客户端将通过将RPC调用从PoW矿工重定向到PoS质押者,从而与以太坊2.0客户端合并,在此之后,网络将由质押者运行,而矿工不再扮演任何角色。

预计这将发生在今年6月或7月,但eth2开发人员Ben Edgington认为这个时间线太激进了。他解释说:“这或许是可行的,但却没有足够的空间去处理可能出现的问题,我们将在7月中旬之前推出理想的合并时间表,但如果需要,我们也会制定应急计划来推迟难度炸弹。最重要的是把整件事做好。”

合并规范显然还没有被冻结,新的测试网也还没有发布,但总体来说工作似乎已经到了最后阶段,只剩下改进和测试了。

然而,这是一项巨大的努力,因为整个网络将在一个新的共识上运行,以太坊的通胀率也将从每年约4%降至不到1%。

客户端似乎已经准备好了,经过多年的开发,距离完成整个升级只剩几个月的时间。(Trustnodes)[2022/2/3 9:29:53]

叶子节点是地址(0x...)=>帐户的映射,其中帐户存储与地址关联的余额、nonce等

数据:以太坊销毁总量近60万枚:据Ultrasound.money数据显示,截止目前,以太坊销毁总量已近59.75万枚,以太坊网络当前销毁速率为5.31 ETH/分钟,年通胀率2.2%。按照当前销毁速度,销毁总量预计将于明日6点30分左右达到60万枚。[2021/10/23 20:50:22]

内部节点维护树结构,以便可以快速计算整个树的哈希根

由于存档节点将保留所有区块的所有历史状态,这意味着MPT中的任何更新都将创建O(log(N))个内部节点,并且不会删除旧的内部节点。

通过定期存储MPT,状态的存储大小显著减少。据Etherscan数据,目前Geth全节点的区块链数据大小约为1TB。

在不存储历史MPT的情况下,一个Geth节点的存储大小可以进一步减少到447G。通过减去300GB的区块数据,我们推断状态大小约为150GB。

以太坊2.0质押地址余额超过540万枚:据欧科云链OKLink数据,当前以太坊2.0存款合约地址已收到5403618.0 ETH,质押量超过540万枚。[2021/6/9 23:25:19]

币安智能链。截至2021年12月8日,BSC已有:

约984GB链上数据,其中区块约占550GB,状态约占400GB。

20.6623亿笔交易,100TPS

如果我们进一步用交易数量来预测数据大小,我们可以得到:

如果TPS为100,即~3,153MTPY

1年后,总TX~5,219M,区块~1.375TB,状态~1.085TB

3年后,总TX~11,525M,区块~3.025TB,状态~2.387TB

Messari创始人:以太坊是防御性资产:Messari创始人Ryan Selkis发推表达其对ETH的观点,他认为ETH是防御性资产。ETH为以太坊区块链提供动力,这非常有价值。你需要ETH来抵押和保护交易。[2020/12/14 15:06:49]

如果TPS为150,即~4,730MTPY

1年后,总TX~6,796M,区块~1.809TB,状态~1.427TB

3年后,总TX~16,256M,区块~4.327TB,状态~3.414TB

综上所述,对于BSC来说,如果保持目前的速度甚至更高,则很快就会达到以太坊存档节点相同的存储大小,这是普通计算机几乎无法运行的。

具有极高TPS区块链的存储爆炸问题

如果我们对一个极高TPS的区块链做一个更大胆的假设,这个数字会变成多少?我们来考虑一个具有1000TPS的区块链并分析其区块和状态大小,将是:

假设tx大小约为100字节,每年区块所需的存储量为1000(TPS)*100*365*24*3600=2.86TB

假设MPT有100亿账户,我们预计状态大小将为150G/0.18B*10B=8.3TB

将这些数字放在一起,我们很容易得出一个结论,这是大多数普通配置计算机将无法承受的要求!

优化

为了优化存储成本,我们必须将限制放宽为兼容EVM而不是兼容以太坊。即,我们必须构建/运行另一个支持EVM的链,而不是高度优化的以太坊客户端。

~10B*50100GB=600GB,大约是MPT版本的1/10!

虽然使用普通KV会带来巨大的好处,但一个主要问题是我们无法在如此短的区块间隔内计算每个区块的状态后哈希,这意味着我们将失去以太坊的以下好处:

快速同步:下载任何区块的状态并通过重放剩余的区块来快速同步网络

分叉检测:来自对等方新创建的区块是否会导致与本地执行区块的状态不同。

为了启用快速同步,我们有一个周期性的快照区块。一个快照区块包含前状态哈希这一附加信息,即前一个快照区块的后状态哈希:

非快照区块不维护状态哈希,而是具有增量哈希,其中包含该区块的所有交易事务的原始数据库操作的哈希。这使得分叉检测成为可能!

我们使用交易前状态哈希来代替以太坊中区块的交易后状态哈希。原因是节点不能立即计算状交易后的状态哈希,但是通过使用交易前状态哈希,节点可以使用整个epoch间隔来计算哈希。例如,假设状态哈希计算每秒处理10M的状态数据,那么计算600GB的整个状态将需要600GB/10M~16.67小时

计算状态前哈希的流程如下:

1.当一个快照区块被接收并最终确定时,它的KV状态被快照,并创建一个后台线程来迭代所有KV条目并计算哈希。

2.当下一个快照区块被创建时,计算出的状态前哈希值将存储在该区块中。同样,节点将创建KV的另一个快照并在后台计算其哈希。

3.当下一个快照区块被创建时,节点除了存储状态前哈希之外,节点现在可以释放快照区块的KV快照,这意味着来自快照区块以来所有被删除/更新的数据将被自动垃圾回收

其结果意味着,要存储状态,节点只需要最多两个KV快照。

最新的快照区块的交易执行前状态快照,即快照区块的交易执行后状态

快照区块之后的完整区块

我们可以对存储成本进行简单的数学计算:假设epoch持续时间为2周,则区块重放大小为

2*14*24*3600*100*1000=224GB!

而且,这里的数字不会随着时间的推移而增长!

不仅是区块,状态存储消耗了很多的空间

当TPS>1000时,存储空间用量高得令人望而却步

我们提出对区块和状态进行优化:

区块大小从每年2.86TB减少到224GB

状态大小从8.3TB减少到600GB

一台2TB的普通配置计算机应该能满足长时间运行节点的条件

缺点:轻节点无法验证状态中的一个数据

致谢

感谢dapp-learning主办此次活动。

标签:以太坊ETH区块链TPSop币价格跟随以太坊价格走togetherbnb为什么恐怖区块链域名成交https://etherscan.io

以太坊交易所热门资讯
KEX:欧易OKEx关于“赚币年末礼献”第九期活动开启的公告

尊敬的欧易OKEx用户:为答谢新老用户对赚币产品的关注和支持,欧易OKEx将开启“赚币年末礼献”系列活动.

1900/1/1 0:00:00
区块链:Delphi Digital 深度报告:从可组合到模块化,什么是区块链扩容的终局

注:原文来自DelphiDigital,作者是CanGurel。报告要点:单片链受限于单个节点可处理的内容,而模块化生态则越过了这一限制,提供了一种更可持续的扩容形式;模块化背后的一个关键动机是.

1900/1/1 0:00:00
Gate.io Copy Trading: The Number of Copies For A Single Strategy Is As HIGH As 9,249

Gate.ioquantitativetradingcenterhasbeenrenamed"copytrading"andisfullylaunched.

1900/1/1 0:00:00
CoinUp:【新增幣對公告】PHA/USDT、MASK/USDT、HOT/USDT上線

尊敬的CoinUp用戶:為給您帶來更加多元化的交易,CoinUp將於2022年1月5日上線PHA/USDT、MASK/USDT、HOT/USDT交易對,並同步開放充提幣通道.

1900/1/1 0:00:00
Liquidus:Liquidus (LIQ)

一、项目介绍Liquidus是一款实用的工具,可让您使用Liquidus即将推出的网络和移动应用程序轻松地将您的加密资产押注在领先的DeFi平台上.

1900/1/1 0:00:00
TEP:最具潜?的2022 Solana NFT游戏项?展望

2021是Game-Fi元年,2022将迎来第?次?爆发。游戏类应?对低?续费,?TPS,?扩展性有着极?的要求,BSC和Solana两条公链成为各?游戏开发商的?选.

1900/1/1 0:00:00