在出现新的需求时,在需要不同的治理结构或不同的资源模型时创建新的分链是 EOSIO 生态文化的一部分。这也符合多链繁荣的愿景,集思广益,一步步地向前发展。
在多链繁荣的世界中,开发者们需要有一个强大的工具,来启动、重置或重启区块链。当 EOSIO 软件打入企业中时,你可以轻松地想象这样的一个场景:一家公司会建立数十个小型数据库,其中一些是在整个公司通用的,其他是以每个部门为中心并与客户、合作伙伴或供应商共享的。有的链可能会被做成瞬息的:它会在另一个链上的固定状态下启动,突发处理数百万笔交易,然后直接废除,最终状态将回到原始链上(例如,作为两方之间的临时闪电网络)。
使用最新的 dfuse 迁移工具会简化类似的整个过程。
为什么需要用 dfuse 迁移工具
加速合约开发流程:更快地升级你的数据模型,避免链上突变的麻烦,而仍然保持其他团队成员的链状态一致。在启动新链时,同步先前存在于另一个网络上的所有帐户(想象它像是EOS 主网链扩展)。在不对用户造成使用中断的情况下,修剪链的历史数据。启动链时的确定性:仅需要指定的块高度快照以及指定脚本(如果)即可修改链状态。一个去中心化的团队可以让每个成员独立验证链的完整性,还可以通过签署交易来完成链的激活。如何使用 dfuse 迁移工具
最新版本的dfuseeos
包含了一个新命令:
$ dfuseeos migrate --snapshot=./path/to/snapshot.dat
该命令将生成一个可移植状态快照(如果你用dfuseeos
的node-manager
的话,它会定期为你创建),全部在磁盘上展开,易于浏览目录的结构(在./migration-data
下),由.json
文件、.wasm
合同二进制文件及其对应的.abi
文件组成。这些文件共同会共同快照生成时区块链的完整状态,而且每个帐户都有它们自己的文件夹。
然后,你可以编写个简单的脚本来清理或更改合同、更改ABI、修改数据行、修改二级索引、添加或删除帐户、更改键结构——调整任意部分的状态。这些脚本仅需要与文件系统和.json
文件进行交互,所以可以用 Python、NodeJS、Haskell、C#、Go,如果您喜欢的话,甚至可以用 awk 或 sed 写。
完成后,用以下两个命令启动你的新区块链:
$ dfuseeos init
Wrote dfuse.yaml
$ dfuseeos start
Booting and injecting your new chain...
新链启动时会抓取在migrate
步骤生成的bootseq.yaml
文件,并注入在migration-data
文件夹中找到的所有帐户、合同、数据行、索引和权限结构。帐户权限之间的所有依赖关系周期都被程序处理好了,同时它也确保了所有数据分配给正确的 RAM 付款人,等等。
就这样,一个功能完整的 EOSIO 分布式数据库就全面启动了。
非常感谢ULTRA其中一部分工作的赞助,也感谢 cc32d9 的贡献,以及社区的反馈。
你可以在/dfuse-io/dfuse-eosio找到此工具,并通过微信公众号、Telegram或Twitter与我们联系。
原文来自 dfuse.io 官网
你能在以下平台上找到 dfuse 哦!
dfuse 中文官网:dfuse.io/zh
Github 源码库:/dfuse-io
微信公众号:dfuse API(通过【社区资源】菜单加入 dfuse 开发者群)
微博:/dfuseio
Bilibili:/596090399
Telegram:t.me/dfuseAPI
Twitter:/dfuseio
YouTube:/channel/UCT_wVH42n6jv-IG8C7QsHGg
CSDN:dfuse.
币乎:/people/1460622786
如果觉得《dfuse 发布全新 EOSIO 链迁移工具》对你有帮助,请点赞、收藏,并留下你的观点哦!