【问题标题】:Using Fabric Node SDK 1.4.x with Fabric 2.0将 Fabric 节点 SDK 1.4.x 与 Fabric 2.0 一起使用
【发布时间】:2020-05-04 17:55:04
【问题描述】:

我们刚刚迁移到 Fabric 2.0,我们所有的组件(peer、orderer、二进制文件)都在 v2.0.0。

我们的 Fabric Node SDK 仍然是 v1.4.8,它的大部分功能都在工作,例如

createChannel, updateChannel, installChaincode etc.

但是,当我尝试使用 Channel.sendInstantiateProposal 时,我得到一个错误

"Channel <channel_name> has been migrated to the new lifecycle. LSCC is now read only".

我知道这可能是 SDK 和 Fabric 组件之间的不匹配,但是,除了升级到 Fabric Node SDK 2.0 之外,还有什么方法可以让它工作吗?

用于启动网络的 configtx.yaml 文件有 capabilities all set to V2.0:true。注释表明 V2.0 功能是非向后兼容的,因此我假设我无法将它们设置为 V1.4 并且仍然可以使用 Fabric 2.0 组件。

谢谢

【问题讨论】:

    标签: hyperledger-fabric hyperledger-chaincode


    【解决方案1】:

    在这种情况下,v1.4 SDK 与 v2 兼容,但 v2 中的新链码架构没有将链码的实例化作为其生命周期的一部分。相反,它使用official documentation 中定义的新的四步流程。这就是为什么 v1.4 SDK 在您调用 Channel.sendInstantiateProposal() 的那一行特别失败的原因。 SDK 工作正常,但新的链码生命周期不支持该操作。

    对于解决方案,遗憾的是,在 v2 SDK 中无法执行管理任务,您必须使用 Peer CLI 进行此类操作。

    【讨论】:

    • 谢谢。我从文档以及在 Hyperledger 聊天中与 Dadid Kelly 的聊天中意识到了这一点。
    【解决方案2】:

    official documentation 似乎证实了您的假设,即在涉及新功能(例如新的链代码生命周期)时,SDK 不一定是向前兼容的(请参阅蓝色的“注释”框)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      相关资源
      最近更新 更多