您现在的位置:kastop>> Kas信息 Kaspa网络>>正文内容

Kaspa 归档节点迁移指南:从 Go 到 Rust

本指南介绍如何将原 Go 实现的 Kaspa 归档节点数据导出,并迁移至 Rusty Kaspa 节点,适用于即将或已经进行硬分叉后的主网同步需求。


📋 前置条件

  • 一台稳定服务器或本地环境(推荐 SSD 存储)

  • 安装好 Go 和 Rust 开发环境

  • 已运行的 Golang Kaspa 归档节点数据目录(~/.kaspad 或自定义路径)

  • 网络带宽充足,迁移过程可能耗时数小时至十数小时


🚀 步骤一:启动 Rusty Kaspa 节点(archival-manager 分支)

  1. 克隆指定 Rusty Kaspa 分支:

    git clone https://github.com/someone235/rusty-kaspa.gitcd rusty-kaspa
    git checkout archival-manager

  2. 编译并运行 Rusty 节点,启用归档模式:

    cargo build --release
    ./target/release/rusty-kaspa --archival

  3. 等待节点同步至最新(不需要完整历史,只需达成 pruning point)


🛠️ 步骤二:运行 Go 数据导出工具

  1. 克隆指定 Go Kaspa 分支:

    git clone https://github.com/someone235/kaspad.gitcd kaspad
    git checkout archiveexportcd cmd/archiveexport

  2. 启动数据导出工具(请替换 <RUSTY_RPC><GO_DATADIR>):

    go run . -s 127.0.0.1:16110 -b ~/.kaspad

    • -s:Rusty Kaspa 的 RPC 地址(默认是 127.0.0.1:16110

    • -b:Go Kaspa 节点的数据目录(默认是 ~/.kaspad

  3. 等待迁移完成,时间取决于归档数据体积,可能需要数小时


✅ 步骤三:数据完整性验证

  1. 随机挑选几个老区块,使用 Rusty Kaspa 的 RPC 检查是否导入成功:

    示例命令(需要 RPC 工具或 REST 调用):

    curl http://127.0.0.1:16110/getBlock --data '{"hash":"<BLOCK_HASH>"}'

  2. 完成后,停止 Rusty Kaspa 节点


🔍 步骤四(可选):一致性校验

运行 Rusty Kaspa 时,增加环境变量以验证剪枝窗口根一致性:

CHECK_PRUNING_WINDOW_ROOTS_CONSISTENCY=1 cargo run --release -- --archival

  • 若节点启动时报错,请截图并反馈至开发者;

  • 正常启动即表示旧数据成功融合,历史归档完整。


📌 迁移完成后可做的事

  • 清理旧 Go 节点程序,仅保留其 datadir(可作为备份)

  • Rusty 节点已支持全归档查询,可用于:

    • 区块浏览器服务

    • 历史数据分析

    • 全节点交易索引服务

  • 建议使用 Rusty Kaspa 自带的 rpc 接口进行历史查询


🆘 常见问题

❓导出工具运行卡住了怎么办?

请耐心等待。如果长时间(数小时)无输出,可尝试重新运行,并检查 Rusty 节点 RPC 是否可达。

❓可以在同一台机器上运行 Go 和 Rusty 节点吗?

可以,只要端口不冲突。建议导出期间不要让两个节点同步写数据目录。

❓为什么要做这个导出?

Rusty 节点是 Kaspa 的新共识主实现。旧版 Go 节点在 HF 后不再适配最新链规则。为了保留完整历史数据、浏览器查询等功能,归档迁移是必需的。



感动 同情 无聊 愤怒 搞笑 难过 高兴 路过
【字体: 】【收藏】【打印文章】 【 打赏 】 【查看评论

相关文章

    没有相关内容