如何在从对等方加入频道时启用发现角色



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

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

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

谢谢

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

如果您使用 fabric-gateway-java SDK 包而不是 fabric-sdk-java 包,则会为您处理所有这些问题。fabric-gateway-java 包为使用 java 编写 fabric 客户端应用程序提供了更简单的入口,尽管不如使用 fabric-sdk-java 那么强大。

我想出了代码中确切缺失的部分。希望它能帮助有类似问题的人。只需添加所需的对等角色作为@david_k注释

:我有:

channel.addPeer(peer);

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

channel.addPeer(peer, createPeerOptions().setPeerRoles(EnumSet.of(PeerRole.SERVICE_DISCOVERY, PeerRole.LEDGER_QUERY, PeerRole.EVENT_SOURCE, PeerRole.CHAINCODE_QUERY)));

最新更新