Kaspa 归档节点迁移指南:从 Go 到 Rust
本指南介绍如何将原 Go 实现的 Kaspa 归档节点数据导出,并迁移至 Rusty Kaspa 节点,适用于即将或已经进行硬分叉后的主网同步需求。
📋 前置条件
一台稳定服务器或本地环境(推荐 SSD 存储)
安装好 Go 和 Rust 开发环境
已运行的 Golang Kaspa 归档节点数据目录(
~/.kaspad
或自定义路径)网络带宽充足,迁移过程可能耗时数小时至十数小时
🚀 步骤一:启动 Rusty Kaspa 节点(archival-manager 分支)
克隆指定 Rusty Kaspa 分支:
git clone https://github.com/someone235/rusty-kaspa.gitcd rusty-kaspa
git checkout archival-manager编译并运行 Rusty 节点,启用归档模式:
cargo build --release
./target/release/rusty-kaspa --archival等待节点同步至最新(不需要完整历史,只需达成 pruning point)
🛠️ 步骤二:运行 Go 数据导出工具
克隆指定 Go Kaspa 分支:
git clone https://github.com/someone235/kaspad.gitcd kaspad
git checkout archiveexportcd cmd/archiveexport启动数据导出工具(请替换
<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
)等待迁移完成,时间取决于归档数据体积,可能需要数小时。
✅ 步骤三:数据完整性验证
随机挑选几个老区块,使用 Rusty Kaspa 的 RPC 检查是否导入成功:
示例命令(需要 RPC 工具或 REST 调用):
curl http://127.0.0.1:16110/getBlock --data '{"hash":"<BLOCK_HASH>"}'
完成后,停止 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 后不再适配最新链规则。为了保留完整历史数据、浏览器查询等功能,归档迁移是必需的。
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
感动 | 同情 | 无聊 | 愤怒 | 搞笑 | 难过 | 高兴 | 路过 |
- 上一篇:Kastop:PoW 全面超越 PoS?新一代Kaspa公…
- 下一篇:没有了!
相关文章
-
没有相关内容