node.js - 是否可以使用节点 SDK 打包 Hyperledger Fabric 链码?
问题描述
我使用 hyperledger fabric V1.4.10 我创建了一个部署应用程序,它使用节点 SDK API 安装和升级我的链代码,一切正常,但我将所有项目压缩存储在一个 zip 文件中作为工件,我想要一个更小的要存储的工件,当然我正在添加节点模块、js 和 ts 文件,因为我不完全确定在部署期间是否需要它们。
我希望能够执行与使用部署应用程序中的“对等链代码包”相同的操作,以便能够以有效的方式打包我的代码。
我在 SDK 中看到了一个似乎能够打包代码的BasePackager类,但我找不到任何如何使用它的示例。
在查看 js 代码时,我发现 install 方法可以接收 ChaincodeInstallRequest,它可以是 ChaincodePackageInstallRequest 或 ChaincodePathInstallRequest。
这是 index.d.ts 中的代码:
export interface ChaincodePackageInstallRequest {
targets?: Peer[] | string[];
channelNames?: string[] | string;
txId?: TransactionId;
chaincodePackage: Buffer;
}
export interface ChaincodePathInstallRequest {
targets?: Peer[] | string[];
channelNames?: string[] | string;
txId?: TransactionId;
chaincodeId: string;
chaincodeVersion: string;
chaincodePath: string;
chaincodeType?: ChaincodeType;
metadataPath?: string;
}
export type ChaincodeInstallRequest = ChaincodePackageInstallRequest | ChaincodePathInstallRequest;
所以我想知道,是否可以使用 SDK 来打包您的代码?还是我应该使用“对等链码包”选项?另外,打包我的代码后,我可以使用SDK安装它吗?还是我需要更好地使用“peer chaincode install”选项?
谢谢
解决方案
节点 SDK
Node SDK(当前)不包含管理功能,例如链代码的生命周期部署。如果您可以使用 peer CLI 命令,那么这可能是一个不错的选择,因为它们得到了很好的支持和维护。或者,至少有一个管理包旨在为 Node 应用程序提供此功能:https ://www.npmjs.com/package/khala-fabric-admin 缺少文档。
JAVA SDK
fabric-sdk-java API 在 HFClient 和 Channel 上有一些 Lifecycle 相关的功能:
- https://javadoc.io/doc/org.hyperledger.fabric-sdk-java/fabric-sdk-java/latest/org/hyperledger/fabric/sdk/HFClient.html
- https://javadoc.io/doc/org.hyperledger.fabric-sdk-java/fabric-sdk-java/latest/org/hyperledger/fabric/sdk/Channel.html
但是,我不确定它们是否真的与当前的生命周期部署实施保持同步,所以我不确定我是否会推荐依赖它们
对等链代码生命周期 CLI 命令得到更好的维护和支持,因此,如果您可以使用它们,我建议您改为:https ://hyperledger-fabric.readthedocs.io/en/release-2.2/commands/peerlifecycle.html
推荐阅读
- oracle - 删除动态查询中最后一条记录末尾的“union all”
- javascript - 为什么 const someValue = this.props.dispatch(someMethod()) 在 localhost 上运行良好,但在生产中却不行?
- docker - 运行 Heroku 容器
- php - 使用 Laravel 保护我的 REST API 的过程
- c# - 如何在 C# 中找出数字类型是有符号还是无符号
- c++ - 在 C++ 中,您需要在两个方向上重载 operator== 吗?
- c# - 如何由活动目录中的任何用户登录(无密码)
- pytorch - AttributeError:“字段”对象没有属性“词汇”
- abap - 找出ABAP程序最后执行的日期和时间?
- python - Python、机器学习和线性回归