我正在尝试从 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]
如何配置具有“发现”角色的对等方?
最佳答案
我一直在使用节点 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 ,您应该尝试添加 发现:真实 .
然而,这里的重点是,默认情况下,发现属性为 true,因此也可能是您错过了网络中的对等部分(尽管这是必需部分,因此发生这种情况的机会也很渺茫) -config 文件,否则您可能没有配置 CORE_PEER_GOSSIP_EXTERNALENDPOINT 在您的 docker 文件中。
关于hyperledger-fabric - channel 未配置任何具有 'discover' 角色的对等点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58709303/