是否可以在应用程序中列出链码的背书节点?

Is it possible to list endorsing peers of a chaincode in the application?

在 Hyperledger 分类帐中,我如何列出特定链码的背书节点? 我有一个有 5 个对等点的通道,但我只需要其中三个对交易进行背书,而另外两个只需要访问同一个分类帐。

您可以使用发现服务来获得背书节点。在这里您可以找到一些信息: https://hyperledger-fabric.readthedocs.io/en/latest/discovery-overview.html

Hyperledger fabric 有一个 CLI 工具来查询发现服务: https://hyperledger-fabric.readthedocs.io/en/latest/discovery-cli.html

对于 node.js 个应用程序,您可以按照此处的教程进行操作: https://hyperledger.github.io/fabric-sdk-node/release-1.4/tutorial-discovery.html

使用最新的Fabric Client SDK(个人使用GO客户端),不需要处理背书策略。 Client SDK 已经为您完成了这项肮脏的工作。它提取:

  • 这个chaincode需要哪些组织的背书,key(也可以定义key级背书策略)等
  • 系统中当前存在哪些对等点以及它们的 MSP 是什么(来自发现服务)。

根据这些信息,客户端SDK构建了一组必要的peer,然后将您的交易请求发送给所有peer。它等待请求的背书者的响应。一旦收集到所有响应,它就会发送给订购者等等。

如果你有一个特殊情况,你需要手动设置你选择的背书节点(我有一个关于私有的用例 collections 所以我不得不使用这种方法)检查​​发现服务 API 您的客户端 SDK。