【问题标题】:Failed to order the transaction. Error code: SERVICE_UNAVAILABLE using raft consensus protocol未能订购交易。错误代码:SERVICE_UNAVAILABLE 使用 raft 共识协议
【发布时间】:2019-12-19 01:48:43
【问题描述】:

我在使用 Raft 共识协议时遇到了这个错误,在该协议中我设置了 5 个 orderer(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

【问题讨论】:

  • 你不能显示 docker 日志并检查 orderer2 容器是否正在运行?
  • 我在问题中添加了订购者日志。请帮忙。

标签: hyperledger-fabric hyperledger raft


【解决方案1】:

我刚刚遇到了这个问题,orderer2 也是如此。对我来说,我在订购者配置中犯了一个错字。在 General.Cluster 部分,我不小心将 ClientCertificate 和 ClientPrivateKey 字段重命名为 ServerCertificate 和 ServerPrivateKey。我切换了它们,将 Server* 值留空,并与其他人一起指向我的客户端证书,一切正常。

【讨论】:

  • 感谢您的回复,但我已经重新检查了我的证书,一切都很好,没有问题。而且,即使我停止了网络并清除了所有内容,然后重新启动网络,这次同样的问题从 orderer4 开始。所以我认为这不是证书问题。
猜你喜欢
  • 1970-01-01
  • 2021-07-20
  • 2019-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-23
  • 2017-05-18
  • 1970-01-01
相关资源
最近更新 更多