【问题标题】:How to connect a Go client application to the IBM VS Code Fabric Extension?如何将 Go 客户端应用程序连接到 IBM VS Code Fabric Extension?
【发布时间】:2020-02-05 12:11:31
【问题描述】:

我正在使用 Hyperledger Fabric 开展一些项目,目前使用的是 IBM VS Code Extension。链码是用 Go 编写的,客户端应用程序使用 Go Fabric SDK 提供 RESTful API。但是,我无法将客户端应用程序连接到链码。我见过的大多数教程和示例都使用 Node.js 作为客户端,而且似乎 Node SDK 需要的配置更少。

据我了解,步骤应该与以下类似,但涉及到 Golang Fabric SDK 时似乎缺少更详细的信息。

客户端应用程序需要以下信息才能与区块链网络进行通信:

  • 应用身份的注册ID和secret(用于生成证书和私钥),或直接生成证书和私钥
  • 连接配置文件
  • 智能合约名称
  • 实例化智能合约的通道名称
  • 使用应用程序身份的证书和私钥,以及连接配置文件中的 CA 端点信息

在 VSCode 插件中

  • 在“Fabric Wallets”部分注册“应用程序”身份
  • 从“Fabric Gateway”部分导出连接配置文件
  • 导出应用程序身份的钱包
  • 更新代码以指向导出的连接配置文件
  • 更新代码以指向导出的钱包

据我所知,将 SDK 连接到 VS Code 网络所需的连接配置文件和其他步骤应该是相当“标准”的,所以我想知道是否有人知道一个可行的示例?

感谢大家的帮助!

【问题讨论】:

    标签: go hyperledger-fabric ibm-blockchain hyperledger-fabric-sdk-go ibp-vscode-extension


    【解决方案1】:

    不幸的是,你现在要为此苦苦挣扎。钱包目前不兼容 Go SDK。此外,Go SDK 与连接配置文件规范不太一致(或者至少在我上次尝试时没有),因此 VS Code 扩展中的连接配置文件在没有一些小的修改的情况下将无法工作,并且没有与不使用 TLS 的 CA 合作(IIRC 我修补了 Go SDK 以使其工作)。

    正在进行将 Gateway/Wallet 编程模型引入 Go SDK 的工作,这将使 VS Code 扩展的工作变得更加容易,但我不知道 Go SDK 版本何时具有工作实现将可用。

    【讨论】:

    • 感谢您的回答@david_k。因此,据您所知,现在的选择是使用使用 cryptogen 工具的基本/测试网络版本,如此处所述,例如:hyperledger-fabric.readthedocs.io/en/release-1.4/…?
    • 好吧,byfn 将使用 TLS 设置 CA,而 cryptogen 将创建用户,这些用户将以 Go SDK 可以使用的形式(或者您可以根据需要注册和注册)。我唯一不记得的是 byfn 是否提供连接配置文件。如果它做到了,那么可能仍然需要进行一些修改才能使其与 Go SDK 一起使用。
    • @Chris,您可以参考以下链接在 sdk-go 中创建 config.yaml 文件。还可以查看 github.com/hyperledger/fabric-sdk-go/test 目录以获取完整的端到端示例。 github.com/hyperledger/fabric-sdk-go/tree/master/test/fixtures/…
    • 谢谢@alpha - 这让我走了很长一段路。我仍然有问题,我很确定这是由于 TLS 问题,或者客户端应用程序没有在同一个 Docker 网络中运行。我只是希望有人可以帮助开发人员绕过大量的网络配置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 2019-10-06
    • 1970-01-01
    • 2012-12-05
    • 2015-01-19
    • 2013-03-28
    相关资源
    最近更新 更多