本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)
修剪节点数据
本页介绍如何删除历史块状态以减少存储需求。 Kaia 提供了两种修剪块状态的方法:
了解修剪的影响
"实时剪枝 "可持续删除旧状态,将磁盘大小保持在最小范围内。 不过,由于伴随着记账任务,实时修剪会稍微降低区块同步速度。 另一方面,"批量剪枝 "在迁移完成后不会影响性能,但迁移会话需要几天时间,并暂时需要大量可用磁盘空间来复制状态。
如何进行现场修剪
要从创世区块启用实时剪枝,请在启动节点时使用 --state.live-pruning
标记。 如果从已启用实时剪枝的数据库开始,则可选择是否使用该标记,但为了清晰起见,建议使用该标记。
备注
您可以使用"--state.live-pruning-retention NNN "标记来控制实时剪枝的保留时间(默认值:172800 秒,即 48 小时)。 该标志决定了历史数据块状态在被剪枝前的保留时间。
信息
有实时修剪和没有实时修剪的数据库是不兼容的。 要运行带实时剪枝功能的节点,必须从带有 --state.live-pruning
标记的创世块开始,或者从已启用实时剪枝功能的 chaindata snapshot开始。
不能将非实时剪枝数据库转换为实时剪枝数据库,反之亦然。 以下是您可能会看到的一些日志信息示例:
# 首次启用实时修剪,数据库为空INFO[08/27,14:09:01 +09] [41] 将实时修剪标 志写入数据库# 启用实时修剪INFO[08/27,14:09:01 +09] [41] 启用实时修剪 retention=172800# 禁用实时修剪INFO[08/27,14:09:46 +09] [41] 实时剪枝已禁用,因为数据库中未存储标志# 在链前进后无法开启实时剪枝(头部区块数>0)Fatal: Error starting protocol stack: cannot enable live pruning after the chain has advanced.
如何进行批量修剪
先决条件
- 建议在配备 m6i.8xlarge(32 核和 128GB 内存)或更高配置的机器上运行。
- 机器应有足够的备用磁盘空间(500GB 或以上)。
- 整个过程大约需要 7 天:
- 第 1 阶段:将状态复制(迁移)到新目录。 出现消息 "状态迁移已完成"。
- 第 2 阶段:在新目录中继续进行区块同步。 完成此 步骤后,旧目录将被删除。
步骤
- 通过控制台连接节点:
ken attach --datadir /var/kend/data
- 使用
admin
命名空间 RPC 控制状态迁移:
// 启动> admin.startStateMigration()null// 检查进度> admin.stateMigrationStatus// 中止> admin.stopStateMigration()