Shardeum数据迁移完整指南:3种方式将其他链数据迁移到Shardeum(新手教程)
2026/8/23 15:51:56 网站建设 项目流程

Shardeum数据迁移完整指南:3种方式将其他链数据迁移到Shardeum(新手教程)

【免费下载链接】shardeumShardeum is an EVM based autoscaling blockchain项目地址: https://gitcode.com/GitHub_Trending/sh/shardeum

Shardeum是一个 EVM 兼容的自动扩展(autoscaling)区块链,基于以太坊虚拟机构建,天然支持以太坊生态的工具、交易格式和智能合约。如果你想把旧网络里的账户余额、历史链数据或智能合约迁移到 Shardeum,本文提供 3 种开箱即用的迁移路径,全程不需要理解底层分片机制。

一、先认识 Shardeum 的 3 种迁移场景 🎯

不同来源的数据,对应不同的迁移工具。先对照下表找到你的场景:

迁移场景数据来源使用的工具/机制
场景 1:旧 Shardeum 网络 → 新网络旧节点本地数据库数据导出工具 scripts/dataRestore.ts
场景 2:接入已有 Shardeum 网络(全量同步)公共 Archiver 归档节点Archiver 配置脚本 scripts/configure-archiver.js
场景 3:以太坊等其他 EVM 链 → Shardeum已编译合约 + 私钥EVM 兼容性直接重部署(无需脚本)

二、准备工作:搭建本地 Shardeum 环境 🛠️

迁移前,先在本机准备一个可调试的 Shardeum 网络(10 个节点即可)。仓库已内置调试配置debug-10-nodes.config.json,只需 4 步:

# 1. 获取代码 git clone https://gitcode.com/gh_mirrors/sh/shardeum cd shardeum # 2. 安装依赖并编译(要求 Node.js 20.19.3) npm ci npm run prepare # 3. 安装 Shardus 命令行工具 npm install -g @shardeum-foundation/tools-shardus-cli # 4. 启动 10 节点本地网络 shardus start 10

更完整的环境搭建说明(含 NVM、Rust 工具链配置)见 local-environment-setup.md。多环境配置(local / devnet / testnet / mainnet)统一放在 environments/ 目录,可通过scripts/run-env.sh一键切换。

三、场景 1:从旧 Shardeum 网络迁移账户数据 📦

这是 Shardeum 内置的"数据迁移"核心能力:把旧分片网络中所有节点的账户数据库合并导出,再在新网络启动时导入

第一步:导出数据为 JSON

数据导出工具的官方说明写在源码注释里(scripts/dataRestore.ts):

dataRestore tool collects all the rows in all the databases (sharded network will have more than 1 database) in to a single JSON file. This JSON file is ingested during network reset.

也就是说:分片网络里每个节点都有一个数据库,该工具会把它们全部收集、合并、去重,写成一个 JSON 文件。运行方式:

node dist/scripts/dataRestore.js <instances目录> <批次大小>

执行后会在当前目录生成两个产物:

  • db/shardeum.sqlite—— 合并后的单一数据库;
  • account-export.json—— 最终导入用的账户清单,路径常量定义在 src/shardeum/shardeumFlags.ts(SHARDEUM_DBACCOUNT_EXPORT)。

第二步:在新网络启动时导入

导入逻辑由网络同步流程自动触发(src/setup/sync.ts):当标志DebugRestoreFile指向一个存在的文件时,首个种子节点会读取它并批量写入账户。该标志的默认值正是上一步导出的文件名(src/shardeum/shardeumFlags.ts):

DebugRestoreFile: 'account-export.json'

真正逐行解析并入库的代码在 src/shardeum/debugRestoreAccounts.ts,它按每 1000 条一批流式读取 JSON,避免内存爆炸,并输出加载成功/失败报告。

一句话流程:旧网络停机 →dataRestore导出account-export.json→ 新网络带该文件启动 → 账户数据自动就位。

四、场景 2:接入已有 Shardeum 网络(全量链数据同步) ⚡

如果你不是要迁移"自己的"数据,而是想让自己的节点同步 testnet / mainnet 上的全部链上状态(区块、交易、状态),Shardeum 通过 Archiver 归档节点实现:

  1. Archiver 持续归档链上全部历史数据;
  2. 新节点启动时向 Archiver 拉取全量数据完成初始化;
  3. 之后通过 P2P 网络实时追赶最新区块。

配置 Archiver 不需要手改 JSON——项目提供了专用脚本 scripts/configure-archiver.js,支持三种模式(详见 environments/README.md):

# 校验当前配置是否与指定 archiver 匹配 node scripts/configure-archiver.js check testnet <archiver-ip> 4000 # 用网络中发现的全部 archiver 替换现有配置 node scripts/configure-archiver.js set testnet <archiver-ip> 4000 # 追加一个新的 archiver(公钥自动获取) node scripts/configure-archiver.js add testnet <archiver-domain> 4000

配合环境配置文件即可一键启动(environments/README.md中的用法):

./scripts/run-env.sh testnet 25

五、场景 3:从以太坊等其他 EVM 链迁移合约与资产 💼

因为 Shardeum 是 EVM 链,package.json中直接依赖了@ethereumjs/evm@ethereumjs/vm@ethereumjs/statemanager等完整以太坊执行栈(见 package.json),所以跨链迁移非常简单:

  1. 私钥不用换:同一把以太坊私钥即可在 Shardeum 上签名交易;
  2. 合约直接重部署:已编译的合约字节码与 Solidity 源码通常无需修改,用 MetaMask 等工具把钱包网络切换到 Shardeum 后重新部署即可;
  3. 代币余额需另迁:ERC-20 余额属于链上状态,不能"直接搬",需要在新链上重新发行或依赖桥接方案;
  4. 链 ID 不同:发交易前先确认 Shardeum 的 Chain ID,项目内也提供了链 ID 校验工具 src/utils/validateChainId.ts。

六、迁移后如何验证数据一致性 ✅

迁移最怕"看着成功、实际丢数据"。Shardeum 提供两套核对工具:

工具作用路径
账户同步检查逐账户比对节点 SQLite 数据库与 Archiver 数据,输出差异scripts/accountsSyncCheck.ts
数据库历史记录查看账户条目随时间的变更轨迹,用于回溯scripts/dbHistory.ts

建议迁移完成后跑一次accountsSyncCheck,确认每个账户的nonce与余额两边一致。

七、常见问题 FAQ ❓

Q1:旧链上的交易记录能一起迁到 Shardeum 吗?dataRestore迁移的是账户状态(余额、nonce、合约代码/存储),历史交易本身不在迁移范围内。如需完整链历史,请走"场景 2"通过 Archiver 全量同步。

Q2:迁移期间需要停机吗?场景 1 需要旧网络停止写入后再导出,否则导出文件会不一致;场景 2 是常规节点同步,不影响线上网络。

Q3:账户数量很大,导出会很慢吗?工具按批次(默认 1000 条)流式读写,并输出进度(每 10 万条打印一次),可放心处理大规模账户集,批次大小可通过第二个参数自行调大。

八、总结 🚀

  • 旧 Shardeum 网络迁数据dataRestore.ts导出 +DebugRestoreFile自动导入;
  • 同步已有 Shardeum 网络configure-archiver.js配置 Archiver,全量拉取;
  • 以太坊等其他 EVM 链→ 私钥通用、合约重部署,EVM 兼容性让跨链迁移零门槛。

掌握这三条路径,你就可以把任何 EVM 生态的数据安全、完整地迁移到 Shardeum 上,享受自动扩展架构带来的高吞吐与低费用。

【免费下载链接】shardeumShardeum is an EVM based autoscaling blockchain项目地址: https://gitcode.com/GitHub_Trending/sh/shardeum

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询