对Cosmos Hub 3 升级失败的复盘反思

Cosmos互联链  2019-10-08  ATOM/阿童木(Cosmos)栏目  

  原文链接:https://forum.cosmos.network/t/cosmos-hub-3-upgrade-post-mortem/2772

  原文作者为Cosmos产品总监Jack Zampolin

  

  在为准备升级的过程中,验证人在UTC时间上午11:39停止了Cosmoshub-2。迁移了大约25分钟后,多个验证人发现导出的创世文件存在一个问题,该问题是由迁移命令中的bug引起的。

  这个bug使得Cosmoshub-3不能按照升级提案1:

  https://hubble.figment.network/cosmos/chains/cosmoshub-2/governance/proposals/16

  中提供的说明启动。验证人随后按照提案的恢复计划重新启动Cosmoshub-2,该链在UTC时间下午1:54恢复运行。此失败升级的总停机时间为2小时15分钟。

  这个bug似乎是在gaia-13004(v0.34.7)到gaia-13005(v1.0.0-rc3)期间被捕获的,但是在gaia-13005到gaia-13006(v2.0.0)升级期间,有一些对于迁移逻辑3:

  https://github.com/cosmos/cosmos-sdk/pull/4770的附加更改没有经过测试。迁移问题3:

  https://github.com/cosmos/cosmos-sdk/pull/5099

  已经被kwun-yeung修复,SDK团队正在开发gaia版本(v2.0.2)。

  请继续关注:

  https://github.com/cosmos/gaia/releases 。

  升级失败暴露了我们的测试和升级过程以及一些内部流程中的缺陷。在上周与验证人讨论的过程中,应采取以下措施以降低出现类似问题的可能性:

  应该优先考虑由Regen Networks团队(已经与ICF签订合同)进行的“自动升级7”的相关工作,以缓解后续版本的问题(具体参考:

  https://medium.com/regen-network/sailing-into-amazonas-878cc178e4b5)。这种升级方法实现了去中心化网络的完全升级,停机时间不超过2.5分钟。相比之下,Cosmoshub-3升级预计停机1小时。

  针对每个版本的模拟器,运行主网的完整导出/迁移。这是添加到发布过程中的一个简单步骤,本来可以防止出现此问题。

  创建允许验证人从主网的克隆中轻松启动测试网的工具。此工具将替换创世文件中的验证人公钥,并允许少量验证人测试针对主网克隆的任何升级/迁移。目前有一个社区正致力于推出一个由主网分叉出的带有补丁的测试网。可以进入电报5群中交流:

  https://t.me/joinchat/A2nePhdcHUevyQEBtYwsEA。

  改进应急和回滚文档,以确保验证人能够更好地从任何状态恢复。一些大型验证人或ICF/AiB可能会在S3 bucket中维护 ~/.gaiad/ directories的最新副本,以帮助验证人在出现故障时快速启动。

  未来的升级应该包括“未能启动1”标准来消除模糊性。具体参考:

  https://www.youtube.com/watch?v=4KZM3PRV0NM

  一个积极的方面是,这个问题很快被定位,验证人能够重新启动区块链,而不会发生双重签名事件和宕机惩罚。这展示了Cosmos验证人们优秀的运维能力,以及他们作为一个团队在紧急状况下的执行能力。在升级失败的混乱中,也有几个验证人设法编写脚本来修复创世文件。

  感谢来自StakeWithUs14的Oliver,请参考:

  https://github.com/stakewithus/cosmoshub-3 。

  值得注意的是:多个渠道之间的沟通分歧是一个有争议的话题。一些人认为这是去中心化和积极的,而另一些人希望所有的沟通都在一个渠道进行。

  

版权信息
作者:Jack Zampolin
来源:Cosmos互联链

关于我们

联系我们

作者进驻

公众号

Copyright © 2013 比特巴 www.btb8.com
只为您提供客观公正有用的比特币 区块链 加密数字货币新闻、技术教程、行情分析、行业人物资讯
手机版