0

尝试使用 Fabric Java SDK 中的 Discovery 服务执行事务时出现以下错误

org.hyperledger.fabric.sdk.exception.ServiceDiscoveryException: The channel is not configured with any peers with the 'discover' role

我使用 peer shell 命令加入频道,而不是 Fabric Java SDK。加入频道后,如何在频道中配置发现角色?

谢谢

4

2 回答 2

0

我想出了代码的确切缺失部分。希望它可以帮助有类似问题的人。只需将所需的 peerRoles 添加为 @david_k 注释即可:

我有:

channel.addPeer(peer);

并用它替换它解决了这个问题:

channel.addPeer(peer, createPeerOptions().setPeerRoles(EnumSet.of(PeerRole.SERVICE_DISCOVERY, PeerRole.LEDGER_QUERY, PeerRole.EVENT_SOURCE, PeerRole.CHAINCODE_QUERY)));
于 2020-02-17T09:24:39.993 回答
0

角色的概念discover是一个 Fabric Java SDK 的概念。当您使用 SDK 创建通道定义并向其添加对等点时,您需要将该对等点定义为具有发现角色。

如果您使用 fabric-gateway-java SDK 包而不是 fabric-sdk-java 包,这一切都会为您处理。fabric-gateway-java 包提供了一个更容易使用java编写fabric客户端应用程序的入口,尽管不如使用fabric-sdk-java强大。

于 2020-02-12T12:36:24.337 回答