咨询热线:027-0000000 关注我们

释放节点存储空间

来源: 中亿财经网整合 作者: 中亿财经网-周盛梅 2021-03-17 加入收藏 104

在这篇文章中,我们将向您介绍Klaytn v1.5.0的新特性“状态迁移”。凭借这一特性,您可以只保留起始于某一区块的链上最新状态,同时转存不必要的状态和数据。这个方法将能释放多达75%的节点存储空间。

概述

什么是状态Trie

在Klaytn区块链平台上,所的账户信息都保存在Merkle Patricia Trie(又称为状态Trie)数据结构中。这一Trie结构保存在Klaytn节点存储中。

区块链上的每一个区块都包含一个状态Trie。也就是说,一个Klaytn区块包含一个状态Trie,并存储着所有的账户信息。

什么是状态迁移?

状态迁移是指在特定区块完全从节点存储中删除之前执行状态Trie复制的处理过程。通过保留指定区块以及后续添加区块的状态Trie,节点将最终只存储终端节点(EN)运行所需的新的区块链数据,这能节省很多存储空间。

状态迁移包含以下步骤:

 

1、选择迁移区块

选择要保留在EN存储中的区块的状态Trie。换言之,您要确定某一节点,用于保存您想留存的数据。

2、复制区块状态Trie

一旦选定迁移区块,新的数据库就会建立。在迁移当前数据库中的区块状态Trie之时, 状态Trie中的所有节点都被复制到新的数据库中。

注:在复制某一指定区块状态Trie时,新区块也在不断地添加至区块链中。

3、验证复制的状态trie

某一指定区块状态trie被复制到新数据库后,应当验证该状态Trie,以确定所有复制数据的完整性。

4、删除旧数据库,开始在新数据库中存储

验证过后,删除旧数据库,并开始为新数据库中的新添加区块存储状态Trie。

 

推荐系统需求

为执行状态迁移,AWS上至少需要一个m5.4xlarge 实例。完成一次状态迁移,需消耗约50小时(截止2020年年8月,Cypress主网的数据。)这是同步最新区块、迁移区块状态trie、将trie节点复制到新数据库并验证它们所需的时间。如果是较大实例,花费的时间会更少。m5.8xlarge实例所消耗时间大约为30小时。

前提条件

执行状态迁移需要Klatynv1.5.0或以上的版本。要完成更新,请下载Klaytn 1.5.0 binary(链接:https://docs.klaytn.com/node/download/latest),停止现有节点,替换下载的binary,然后再次安装Klaytn。更新过程可能因系统环境而异。具体操作请参阅EN安装指南(https://docs.klaytn.com/node/endpoint-node/installation-guide)。

状态迁移入门指南

执行状态迁移

要运行状态迁移,需在Klaytn节点上使用Admin API。通过IPC连接到节点或临时激活RPC/WS上的Admin API。有关如何通过IPC或使用Admin API连接到Klaytn节点的详细信息,请参阅JSON-RPC APIs(https://docs.klaytn.com/node/endpoint-node/json-rpc-apis#querying-enabled-apis)和 Admin APIs(https://docs.klaytn.com/bapp/json-rpc/api-references/admin)。

如果启动成功,admin.startStateMigration()将返回null。状态迁移一旦启动,将会转移指定区块的状态trie,然后将其复制到新数据库中,同时不断处理新添加的区块。

启动状态迁移之时的日志

成功启动状态迁移后,日志文件中将显示以下日志:

监控状态迁移

使用日志检查状态迁移进度

在进行状态迁移时,您可以定期检查日志中的进度,如下所示:

10秒打印进度日志

通过RPC API检查状态迁移状态

您还可以通过RPC API检查状态迁移的进度。下面的结果显示,状态trie复制大约完成了64%。

验证复制的状态Trie

完成状态trie的复制之后,您的日志将显示如下。接下来,您必须验证是否完整地复制了状态trie。

验证的状态可以在日志中查看,如下所示:

验证状态日志

完成状态迁移

查看状态迁移完成日志

验证完复制的状态Tries之后,状态迁移就正式完成了。如果您看到如下所示的日志,则意味着状态迁移已经成功。

状态迁移完成日志

结果:查看区块链数据缩减量

Klaytn主网Cypress的区块链数据存储如下(截至2020年8月):

 

在启动新的EN并在这个EN上执行Cypress主网的状态迁移后,区块链数据大小缩减量如下方所示。

其他目录数据大小增加,是因为迁移过程中添加了新的区块。

状态迁移时注意事项

在状态迁移过程中,需要记住以下几点:

执行状态迁移后,由于旧的状态Trie已被删除,因此无法在过去的区块上检索帐户。

迁移仍在进行时不要重新启动节点。重启节点会使状态迁移重新开始,这会占用更多时间。

在较小的实例中执行状态迁移会消耗更多时间。

建议实例大小在m5.4xlarge以上。

首选SSD硬盘,不推荐HDD硬盘。

由于Klaytn平台上出现频繁的输入/输出(I/O)操作,满足存储IOPS要求对于提高性能至关重要。

结论

如上所述,状态迁移极大地降低了Klaytn节点存储的数据大小。但是从节点运行人员的角度来看,手动执行状态迁移可能有点过于苛刻。这又是为什么Klaytn团队计划持续提供Cypress主网最新区块链数据的原因,状态迁移已降低了这些数据的大小,这一计划将会定期执行,以优化存储使用。有了这个区块链数据,节点运行员就不必亲自执行迁移,而是直接下载并替换其节点上的数据。要下载区块链数据的最新简介,请点击以下链接:Cypress(https://packages.klaytn.net/cypress/chaindata/)、Baobab(https://packages.klaytn.net/baobab/chaindata/)。

我们希望这篇文章能够帮助您释放存储空间。Klaytn团队始终致力于为您提供便捷的Klaytn体验。感谢您的阅读,敬请期待我们的下一篇文章!

 

关于Klaytn

项目名称: Klaytn

英文缩写: KLAY

官方网站: https://www.klaytn.com/   

项目简介:Klaytn是以服务为中心的企业级分布式信任区块链平台,通过高效的“混合”设计,结合了公有链(分布式数据和控制、分布式治理)和私有链(低延迟、高可扩展性)的最优功能。Klaytn与全球众多知名品牌的参与合作,通过共同的不懈努力,创建可靠的去中心化业务平台。Klaytn治理委员会是一个由跨国企业和组织组成的联盟,负责运营共识节点网络,推动生态系统发展。Kakao 的区块链开发部门「Ground X」已正式推出 Klaytn,并可用于商业用途

关注微信公众号 中亿财经网,输入"资料",限时免费领取炒股、炒外汇、炒期货、炒黄金等资料,定期更新;

【免责声明】本文仅代表作者本人观点,与本网站无关。本网站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。
【版权声明】本文部分内容及图片均来自于网络/注册作者/投稿人,版权归原作者所有,如有侵权,请联系删除。
热门看点
更多
热门专栏
更多
中亿财经网官方公众号
  • 咨询热线 000-000-000
  • 投稿咨询QQ:
  • 问题咨询处理QQ:
  • 增值电信业务经营许可证:晋ICP备2020015102号-1
  • 广播电视节目许可证:晋ICP备2020015102号-1