如何在不重置链状态的情况下升级 Forge

2019-08-26 11:20 栏目:经验之谈 来源: 查看()
在“如何获得Forge的最新版本”中,我们介绍了如何对Forge链进行硬升级(需要重置本地链的状态)。硬升级方法在开发环境中更方便,相当于清除数据库记录。 在某些情况下,可能是您的测试链已经运行了一段时间,并且生成了大量测试数据。重现测试数据可能需要花费时间和精力。您想要升级到Forge的最新版本,并且希望保留之前启动的链。国家,鱼和熊掌都可以吗?答案是肯定的,让我们讨论具体的步骤。 在介绍升级步骤之前,有必要重新强调下行链路升级的背景差异: •在开发环境中,我们可以毫无顾虑地进行链重置,升级,启动和停止,因为您不会影响其他人或用户。 •在生产环境中,由于整个区块链是分布式网络,因此升级操作需要由链运营商确定,并且升级结果需要在链的所有节点之间同步。 本文探讨了前一种情况,即开发环境中的具体方法。 准备好工作了 Forge CLI是一个命令行工具,用于管理和管理由ArcBlock正式开发和维护的本地Forge链和节点。建议定期将Forge CLI [1]升级到最新版本:npm install -g @ arcblock/forge-cli。 了解最新版本的Forge

当您阅读本文时,已发布的最新版Forge是:

如何在不重置链状态的情况下升级 Forge

了解Forge本地版本 如果您想知道本地Forge链的版本,请直接运行:forge status,并获得以下执行结果:

如何在不重置链状态的情况下升级 Forge

红色圆圈中的版本是当前链使用的版本。我本地链的版本是v0.36.5。 当然,您也可以执行:forge ls,获得以下执行结果:

如何在不重置链状态的情况下升级 Forge

红色圆圈版本也是当前链条使用的版本。 Forge ls将列出所有已在本地下载的Forge版本并突出显示当前使用的版本。 升级的前提是我们在本地使用的版本低于最新版本的遥控器。如果两个版本相同,你可以在这里停下来,哈哈! 下载Forge最新版本 如果要将本地Forge链从v0.36.5升级到v0.37.0,则需要先下载Forge v0.37.0的所有组件,然后执行以下命令: 伪造下载最新 #中国用户 Forge最新下载--mirrorhttp://arcblock.oss-cn-beijing.aliyuncs.com

如何在不重置链状态的情况下升级 Forge

有人可能会问,伪造下载和伪造安装有什么区别吗?两者都将从我们的图像下载Forge的指定版本(或最新版本),区别在于只能下载伪造下载,并且在伪造安装下载之后,Forge的本地版本将切换到刚刚下载的版本,硬升级。伪造安装的时间到了。 如何确定是否已切换到当前在本地使用的Forge版本?再次执行伪造:

如何在不重置链状态的情况下升级 Forge

如您所见,它仍然是v0.36.5。 配置链管理员 对于区块链,所用软件的版本等同于计算机硬件上安装的操作系统。如果要升级操作系统的版本,我们需要输入管理员密码,停止操作系统,重启并完成升级。如果您已经体验过操作系统的升级,则可以很好地理解Forge链的升级。 首先,我们需要为链配置一个管理员(主持人是协调员,因为区块链本身需要在多个节点中,需要在多个节点之间达成共识),并且任何可以修改链状态的实体都是本质上它是一个钱包,即公钥 - 私钥对。对于尚未配置连锁管理员的学生,您需要使用伪造钱包:创建--defaults来生成管理员钱包并保存钱包私钥。

如何在不重置链状态的情况下升级 Forge

为方便下一步,我们首先将链管理员私钥配置到环境变量中,并将以下行添加到〜/.bashrc或〜/.zshrc中(记住将私钥替换为您生成的私钥) : 导出FORGE_MODERATOR_SK='qDWzV5cv8wSa-I2CKiLHm3msM9GeYyjOo4yo3iNicT8xlZqcdY_o0REVnffjD_wq85sCjoka6B7D-BLPxcXUcA' 如何确保将管理员私钥正确导出到环境变量?直接执行echo $ FORGE_MODERATOR_SK。如果输出结果并且与您生成的私钥相同,则配置正确。 接下来,我们需要将链管理员信息添加到Forge配置中: •如果您使用的是Forge CLI v0.36.0以下的版本,并且未按此操作升级到最新版本,则配置文件位于:〜/.forge_release/forge_release.toml •如果您使用的是Forge CLI v0.36.0及更高版本,则配置文件为:〜/.forge_chains/forge_default/forge_release.toml 当然,我们有一种更简单的方法来直接获取Forge链配置文件的路径:forge config | grep文件

如何在不重置链状态的情况下升级 Forge

我需要将哪些内容添加到Forge的配置文件中?让我们直接运行伪造升级: 如您所见,Forge CLI提示我们配置文件中没有与管理员相关的配置,并提示我们添加一些内容: [forge.moderator] 地址='z1ScT4nkbA8b6cQBKQoyWTnnQnXAsmPsdhk' publicKey='MZWanHWP6NERFZ334w_8KvObAo6JGugew_gSz8XF1HA' 打开Forge CLI给出的配置文件路径,将上述配置追加到文件末尾,保存并退出。 重新开始 因为我们添加了管理员的操作来修改链的配置,为了使配置生效,您需要重新启动Forge链,然后执行以下两个命令: 伪造停止 锻造开始 重新启动后,包含管理员的配置将加载到Forge的运行配置中,然后我们可以作为管理员将升级说明发送到链。 开始升级 一切准备就绪,然后再次运行:伪造升级,如下图所示,您需要进行多种升级配置: •要升级到版本,请选择v0.37.0 •在升级的块中,可以根据当前块高度添加适当的增量。例如,如果当前块高度为33,我们将以53块升级。如果阻止时间配置为3秒,则表示1分钟后。会升级 •确认升级操作,因为此操作是不可逆的。如果您后悔,请输入N或Ctrl + C以中止

如何在不重置链状态的情况下升级 Forge

确认回车后,Forge CLI将以管理员身份向Forge链发送UpgradeNode事务。成功打包事务后,Forge链将停止在预设高度,然后Forge CLI检测到Forge链已完全停止。链将再次启动,从而完成整个升级过程。 验证升级 如何验证升级是否成功?再次执行伪造状态,

如何在不重置链状态的情况下升级 Forge

检查当前链状态中的版本号已成为升级版本。 如果你有问题? 此时,Forge链软升级的准备,升级和验证都已完成。你成功升级了吗?如果您遇到问题,请随时向Forge CLI的官方仓库询问此问题。 参考 [1] Forge CLI:https://github.com/ArcBlock/forge-cli

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发