hyperledger-fabric - 如何将 Hyperledger farbic 2.0 链码从 shim 升级到合约 api
问题描述
我正在将超级账本升级到新版本v2.0.1
,我的查询是我以前版本v1.4.3
的链代码在其实现中包含 shim 接口。如何将现有链更新为新版本的链码。旧的 shim 接口是否可以与新版本的链码一起使用,合约 Api 和 shim 接口有什么区别?任何建议都会有所帮助。
解决方案
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,可以从源代码生成)
推荐阅读
- php - 我想将“读取目录”代码从 php 转换为 python
- javascript - 有没有办法在谷歌地图回调中包含对象原型方法?
- google-app-engine - 在 AppEngine(Python) 中连接到 Google Cloud MySQL 数据库
- java - 如何将字符串拆分为整数、符号和字符串,然后存储整数值以用于算术运算
- php - 如何在没有 for 循环的情况下在 Twig 中按键访问值
- c# - 将 Xml Api 字符串转换为 Json 字符串 UWP
- javascript - php处理完成后如何在SQLite表中插入数据?
- gnuplot - 如何使用 gnuplot 从计算数据中绘制磁场线?
- node.js - 如何修复 npm ERR!peer dep 缺失:discord.js@11.5.1 需要的 node-opus@^0.2.7?
- reactjs - Google Calendar API 是否允许在多供应商 React Web 应用程序中安排约会?