hyperledger-fabric - channel 未配置任何具有 'discover' 角色的对等点

标签 hyperledger-fabric hyperledger-fabric-sdk-java

我正在尝试从 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/

相关文章:

hyperledger-fabric - fabric-chaincode-go 和 fabric-contract-api-go 有什么区别?

go - 无法从 super 账本结构中的链码实例将数据上传到谷歌云存储

hyperledger-fabric - Hyperledger Fabric CA : http: TLS handshake error from 127. 0.0.1:53356:tls: 接收到长度为 21536 的超大记录

在 Weblogic 12c 中运行 Fabric-sdk-java 时出现 java.lang.NoSuchMethodError : com. google.common.util.concurrent.MoreExecutors.platformThreadFactory()

java - super 账本结构 : Async/parallel transaction using java-gateway-sdk

java - 在具有 hyperledger 结构的路径 DexPathList 上找不到 Android Studio 类

node.js - 在 super 账本结构中动态执行交易时出错