【问题标题】:hyperledger fabric block copying超级账本结构块复制
【发布时间】:2017-08-04 08:21:19
【问题描述】:

有没有办法将链码的不同方面(即世界状态、键、其他属性?)从一个链码复制到另一个?我目前正在试验,但我可以预见到我需要更改一些 go 代码和部署的场景。

部署基本上会创建一个具有自己状态的新链码。假设我想从以前的链码中访问密钥。我是否需要跟踪结构中所有以前的链码 ID?有没有办法将所有密钥合并到新部署的链码中?

【问题讨论】:

    标签: blockchain hyperledger hyperledger-fabric


    【解决方案1】:

    Fabric 1.0 中有两个功能可以帮助您。

    1) 链码upgrade。假设第一个链代码是版本 1。如果您的新链代码具有相同的名称,但您只是增加版本号,那么在实例化时,新链代码将继承第一个链代码的完整状态。第一个链码将不再可调用。

    2) 链码到链码调用。第二个链码可以使用InvokeChaincode() API 调用第一个链码。 这可以在实例化时在新链码的 Init() 函数中完成,以从第一个链码读取所有相关状态并在第二个链码中创建关联状态。或者,第二个链码可以在传统调用期间根据需要调用第一个链码,以引用或复制特定事务所需的任何状态。

    当然,要利用解决方案 #2,您需要在第一个链码上提供正确的查询功能。如果您没有这些,那么您可以使用组合解决方案。首先,使用解决方案 #1 升级第一个链代码以添加所需的正确查询函数,然后使用解决方案 #2 从您的全新链代码中调用这些新的查询函数。

    【讨论】:

      猜你喜欢
      • 2018-10-10
      • 2023-02-21
      • 1970-01-01
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多