是否可以使用节点 SDK 打包 Hyperledger Fabric 链码?

Is it possible to package the Hyperledger Fabric chaincode using the node SDK?

我使用 hyperledger fabric V1.4.10 我创建了一个部署应用程序,它使用节点 SDK API 安装和升级我的链代码,一切正常,但我将所有项目压缩在一个 zip 文件中作为artifact 并且我想要一个较小的 artifact 来存储,当然我正在添加节点模块、js 和 ts 文件,因为我不完全确定在部署期间是否需要它们。

我希望能够使用我的部署程序应用程序中的“对等链代码包”完成相同的操作,以便能够以有效的方式打包我的代码。

我在SDK里看到了一个BasePackagerclass好像可以打包代码,但是没找到具体的使用例子

另外查看 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来打包您的代码?或者我应该改用“peer chaincode package”选项吗?还有,我的代码打包后,可以用SDK安装吗?还是我需要更好地使用“peer chaincode install”选项来完成?

谢谢

节点SDK

Node SDK(目前)不包含管理功能,例如链代码的生命周期部署。如果您可以使用对等 CLI 命令,那么这可能是一个不错的选择,因为它们得到了很好的支持和维护。或者,至少有一个管理包旨在为 Node 应用程序提供此功能:https://www.npmjs.com/package/khala-fabric-admin 缺少文档。

JAVA SDK

fabric-sdk-java API在HFClient和Channel上有一些Lifecycle相关的功能:

但是,我不确定它们是否真的与当前的生命周期部署实施保持同步,因此我不确定我是否会推荐依赖它们

peer chaincode lifecycle CLI 命令得到了更好的维护和支持,因此,如果您可以使用它们,我建议改为:https://hyperledger-fabric.readthedocs.io/en/release-2.2/commands/peerlifecycle.html