hyperledger-fabric - 未能订购交易。错误代码:SERVICE_UNAVAILABLE 使用 raft 共识协议
问题描述
我在使用 Raft 共识协议时遇到了这个错误,在该协议中我设置了 5 个排序器(1 个在第一个服务器中,2 个在其他 2 个服务器中),即 orderer1 到 orderer5。设置一切正常,所有订购者都参与订购者选举过程,但是当我尝试调用事务时,我遇到了这样的错误:
[ERROR] invoke-chaincode - Failed to order the transaction. Error code: SERVICE_UNAVAILABLE
仅当我尝试使用 orderer2 调用但与任何其他 orderer 一起使用时才会出现此错误。请帮助解决问题。
以下是 orderer2 及其运行的日志:
2019-08-13 07:05:59.374 UTC [orderer.consensus.etcdraft] run -> INFO 318 raft.node: 2 elected leader 4 at term 2 channel=invoice node=2
2019-08-13 07:05:59.375 UTC [orderer.consensus.etcdraft] serveRequest -> INFO 319 Raft leader changed: 0 -> 4 channel=invoice node=2
2019-08-13 07:05:59.580 UTC [common.deliver] Handle -> WARN 31a Error reading from xx.xx.xx.xx:56890: rpc error: code = Canceled desc = context canceled
2019-08-13 07:05:59.580 UTC [comm.grpc.server] 1 -> INFO 31b streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=xx.xx.xx.xx:56890 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=207.535623ms
2019-08-13 07:13:20.952 UTC [orderer.common.broadcast] ProcessMessage -> WARN 320 [channel: invoice] Rejecting broadcast of normal message from xx.xx.xx.xx:56916 with SERVICE_UNAVAILABLE: rejected by Order: rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: Error while dialing dial tcp 192.168.224.4:8050: connect: connection refused"
2019-08-13 07:13:20.952 UTC [comm.grpc.server] 1 -> INFO 321 streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=xx.xx.xx.xx:56916 grpc.code=OK grpc.call_duration=35.477429971s
解决方案
我刚刚遇到了这个问题,orderer2 也是如此。对我来说,我在订购者配置中犯了一个错字。在 General.Cluster 部分,我不小心将 ClientCertificate 和 ClientPrivateKey 字段重命名为 ServerCertificate 和 ServerPrivateKey。我切换了它们,将 Server* 值留空,并与其他人一起指向我的客户端证书,一切正常。
推荐阅读
- r - 用户定义的 R 函数没有用 dplyr 给出正确的答案
- python - Python 3.x - 如何有效地将对象数组拆分为更小的批处理文件?
- java - Jacoco 代码覆盖率随着迁移到 Java 11 而下降
- karate - 空手道测试框架:仅包含多行 JSON
- c# - .NET 异步任务创建时间过长
- circleci - CircleCI - 字符串中的正则表达式过滤匹配
- excel - 我需要帮助在 vba 中使用 Vlookup
- java - Javafx gui 没有出现,其他一切运行良好
- python - 如何修复 python 上的“IndexError”?
- sass - 有没有办法使用 Vuex 和中间件在 Nuxt.js 中切换全局定义的变量 scss 文件?