我们目前正在尝试使用Hyperledger的链码,并想知道我们如何能够访问旧版链码所持有的状态。
我的理解是,除了通过查询事务之外,其他链代码无法访问由链代码创建的状态。但是,当需要通过发布更新版本来修复错误/问题时会发生什么。我们怎样才能完全访问旧链代码中的状态?
由于无法直接访问旧的链代码状态,这是否意味着我们必须在链代码中构建一个机制,允许其状态被下载/复制/分叉?
当链数的许多版本的数据碎片化时,查询旧链代码中的旧数据将是一场噩梦。
答案 0 :(得分:0)
我现在没有任何文档可以支持这一点,但Fabric v1.0似乎有这个功能的变体 - 有一个名为&#34的新开关; 升级&# 34 ;. 我自己没试过。因此,不知道是否可以跨相同链代码的不同版本提供状态。链接断开的原因是同一个链码的两个版本之间Chaincode Id的差异。 观看此YouTube视频Upgrade Chaincode。 (请注意,此视频使用开发模式,因此可以使用像mycc这样的给定名称来引用Chaincode)
另请参阅此处的结构功能增强计划,以提及此功能Fabric next, presentation