该通道未配置任何具有'发现'角色的对等端

问题描述 投票:0回答:1

我正在尝试通过Java Fabric SDK进行交易。我能够从节点正确查询数据,但是在进行事务处理时出现以下错误:

org.hyperledger.fabric.sdk.exception.ServiceDiscoveryException: The channel is not configured with any peers with the 'discover' role
    at org.hyperledger.fabric.sdk.Channel.sendTransactionProposalToEndorsers(Channel.java:3955) ~[fabric-sdk-java-1.4.5.jar:na]
    at org.hyperledger.fabric.gateway.impl.TransactionImpl.sendTransactionProposal(TransactionImpl.java:155) ~[fabric-gateway-java-1.4.0.jar:na]
    at org.hyperledger.fabric.gateway.impl.TransactionImpl.submit(TransactionImpl.java:91) ~[fabric-gateway-java-1.4.0.jar:na]
    at org.hyperledger.fabric.gateway.impl.ContractImpl.submitTransaction(ContractImpl.java:50) ~[fabric-gateway-java-1.4.0.jar:na]

如何配置具有“发现”角色的对等?

hyperledger-fabric hyperledger-fabric-sdk-java
1个回答
0
投票

尽管我一直在使用节点SDK,但是根据我经过的Java资源,您必须一直在使用'network-config'(。yaml / .json)文件将您的应用程序(通过sdk)与您的网络。其中将出现一个对等部分,其定义如下:https://github.com/hyperledger/fabric-sdk-java/blob/master/src/test/fixture/sdkintegration/network_configs/network-config.yaml#L76,您应在其中尝试添加discover:true

但是这里的关键是,默认情况下,discover属性为true,因此可能是由于您错过了对等部分(尽管这是必填部分,所以发生这种情况的可能性也很惨)网络配置文件,或者您可能缺少在docker文件中配置CORE_PEER_GOSSIP_EXTERNALENDPOINT的权限。

© www.soinside.com 2019 - 2024. All rights reserved.