首页 > 解决方案 > 如何将 Hyperledger farbic 2.0 链码从 shim 升级到合约 api

问题描述

我正在将超级账本升级到新版本v2.0.1,我的查询是我以前版本v1.4.3的链代码在其实现中包含 shim 接口。如何将现有链更新为新版本的链码。旧的 shim 接口是否可以与新版本的链码一起使用,合约 Api 和 shim 接口有什么区别?任何建议都会有所帮助。

标签: hyperledger-fabrichyperledger

解决方案


Fabric v2 继续支持合约 api 以及链码 (shim) api,因此您的链码实现应该可以在 Fabric v2 中没有和更改的情况下工作。合约 api 是在 fabric 1.4 中引入的。合约接口提供了一些额外的功能和更加封装的编程模型。关于我能找到的最好的显示差异的是这里https://hyperledger.github.io/fabric-chaincode-node/release-2.0/api/index.html 它显示了每个编程模型的示例,但它们不是t 特别擅长展示合约 api 相对于原始 shim api 的优势。此外,我似乎无法找到合同 api 提供的 2 或该功能的定义之间的比较。一言以蔽之

  • 删除了所有链码通常必须编写的一些样板代码(例如函数调度程序和序列化程序)
  • 提供将多个合约捆绑到单个链码包中的能力
  • 如果需要,向客户提供内省信息
  • 可以通过定义的元数据定义进行输入和输出类型检查(如果使用 typescript,可以从源代码生成)

推荐阅读