ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

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

Shardeum数据迁移完整指南:3种方式将其他链数据迁移到Shardeum(新手教程) Shardeum数据迁移完整指南3种方式将其他链数据迁移到Shardeum新手教程【免费下载链接】shardeumShardeum is an EVM based autoscaling blockchain项目地址: https://gitcode.com/GitHub_Trending/sh/shardeumShardeum是一个 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.tsdataRestore 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.tsSHARDEUM_DB与ACCOUNT_EXPORT。第二步在新网络启动时导入导入逻辑由网络同步流程自动触发src/setup/sync.ts当标志DebugRestoreFile指向一个存在的文件时首个种子节点会读取它并批量写入账户。该标志的默认值正是上一步导出的文件名src/shardeum/shardeumFlags.tsDebugRestoreFile: account-export.json真正逐行解析并入库的代码在 src/shardeum/debugRestoreAccounts.ts它按每 1000 条一批流式读取 JSON避免内存爆炸并输出加载成功/失败报告。一句话流程旧网络停机 →dataRestore导出account-export.json→ 新网络带该文件启动 → 账户数据自动就位。四、场景 2接入已有 Shardeum 网络全量链数据同步 ⚡如果你不是要迁移自己的数据而是想让自己的节点同步 testnet / mainnet 上的全部链上状态区块、交易、状态Shardeum 通过 Archiver 归档节点实现Archiver 持续归档链上全部历史数据新节点启动时向 Archiver 拉取全量数据完成初始化之后通过 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所以跨链迁移非常简单私钥不用换同一把以太坊私钥即可在 Shardeum 上签名交易合约直接重部署已编译的合约字节码与 Solidity 源码通常无需修改用 MetaMask 等工具把钱包网络切换到 Shardeum 后重新部署即可代币余额需另迁ERC-20 余额属于链上状态不能直接搬需要在新链上重新发行或依赖桥接方案链 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),仅供参考
返回列表