织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

区块链存储爆炸:问题,分析与优化_夸克链QuarkChain_火星财经

时间:2021-12-28 21:39来源:未知 作者:admin 点击:
区块链存储爆炸:问题,分析与优化 夸克链QuarkChain 企业专栏 热度: 769 由于去中心化区块链的一个目标是允许普通配置的计算机运行节点,因此在普通配置的计算机上强制要求 9TB+ 存储
区块链存储爆炸:问题,分析与优化

  夸克链QuarkChain

  企业专栏

  热度: 769

  由于去中心化区块链的一个目标是允许普通配置的计算机运行节点,因此在普通配置的计算机上强制要求 9TB+ 存储会难以达到

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

  背景

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

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

  分解存储开销

  如果我们进一步分析存储使用情况,我们可以发现区块数据只占了约300GB的数据(从区块高度0到13.6M),这一数字远小于9TB。那么剩下的8.7TB数据从何而来呢?

  实际上,存档节点执行所有块并保留所有历史数据,包括:

  •   区块

  •   状态

  •   交易收据

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

  什么是以太坊状态?

  以太坊状态是一个Merkle Patrica树(MPT),其中

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

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

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

  Geth 的全节点

  为了解决存档节点状态爆炸的问题,Geth 的天才工程师们创建了一种称为“修剪”模式的新模式,该模式仅定期存储 MPT。这里我们举一个简化的例子,其中节点只保存每 3 个区块的MPT。(注意,为了获得一个不包含任何状态区块的状态,节点必须获得该区块之前最近的状态,并重放接下来的交易)。

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容