从同行加入频道时如何启用发现角色
How to enable discover role when joining a channel from a peer
我在尝试使用来自 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。一旦已加入频道,我如何配置该发现角色?
谢谢
discover
角色的概念是 Fabric Java SDK 的概念。当您使用 SDK 创建通道定义并向其添加对等点时,您需要将该对等点定义为具有发现角色。
如果您使用 fabric-gateway-java SDK 包而不是 fabric-sdk-java 包,这一切都会为您处理。 fabric-gateway-java 包提供了在 java 中编写 fabric 客户端应用程序的更简单入口,尽管不如使用 fabric-sdk-java.
强大
我想出了代码的确切缺失部分。希望它能帮助有类似问题的人。这只是将所需的 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)));
我在尝试使用来自 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。一旦已加入频道,我如何配置该发现角色?
谢谢
discover
角色的概念是 Fabric Java SDK 的概念。当您使用 SDK 创建通道定义并向其添加对等点时,您需要将该对等点定义为具有发现角色。
如果您使用 fabric-gateway-java SDK 包而不是 fabric-sdk-java 包,这一切都会为您处理。 fabric-gateway-java 包提供了在 java 中编写 fabric 客户端应用程序的更简单入口,尽管不如使用 fabric-sdk-java.
强大我想出了代码的确切缺失部分。希望它能帮助有类似问题的人。这只是将所需的 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)));