Orderer收到了客户的虚假问候

时间:2017-11-10 10:17:25

标签: java sdk netty hyperledger-fabric hyperledger

使用Hyperledger Fabric Java SDK,我无法构建和部署频道。看起来问题是每当我尝试设置通道配置时,我都无法与订货人通信。

channel = client.newChannel(channelName, initialOrderer, channelConfiguration, channelConfigurationSignature);

执行此操作将抛出TransactionException:

Caused by: org.hyperledger.fabric.sdk.exception.TransactionException: Channel SuperChannel, send transaction failed on orderer orderer.super.com. Reason: UNAVAILABLE
Caused by: io.grpc.StatusRuntimeException: UNAVAILABLE
Caused by: io.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record: 000000040000000000000004080000000000000efff1

订货人已启动并运行,但报告虚假问候:

orderer.super.com     | 2017-11-10 09:50:19.951 UTC [grpc] Printf -> DEBU 1c1 transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03\xeb)J>\x91\x12\xa8\xe3l\x15c\x13\xbe"
orderer.super.com     | 2017-11-10 09:50:20.964 UTC [grpc] Printf -> DEBU 1c2 transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03drPh__P\x99:|\x1cO\xd3"
orderer.super.com     | 2017-11-10 09:50:22.442 UTC [grpc] Printf -> DEBU 1c3 transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03\xae\xe2Sod\x9c\"\xe2\xa4\nK\xd4\xf9"
orderer.super.com     | 2017-11-10 09:50:24.902 UTC [grpc] Printf -> DEBU 1c4 transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03o\x87\xa9$\xed:\x93/\"\xeb\xb0\a\xee"
orderer.super.com     | 2017-11-10 09:50:28.787 UTC [grpc] Printf -> DEBU 1c5 transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03\x1e\xd27JQ\xf3\xb6j\xeb/\x9c\\\xc0"
orderer.super.com     | 2017-11-10 09:50:34.603 UTC [grpc] Printf -> DEBU 1c6 transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03\xfa\x93\b\x01\x10>\xfd5z\"\xd6\xf8\xce"
orderer.super.com     | 2017-11-10 09:50:45.387 UTC [grpc] Printf -> DEBU 1c7 transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03\x018-\x9d\xde\xf7\xe2g\n\xdc\r\xf8\xa8"
orderer.super.com     | 2017-11-10 09:50:59.725 UTC [grpc] Printf -> DEBU 1c8 transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03yU\xe7yH\xa8\xac\xdf\x1c\x85c\xfc\v"
orderer.super.com     | 2017-11-10 09:51:21.874 UTC [grpc] Printf -> DEBU 1c9 transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03\xddN\xe8=4l\xf0\x9cC\xe4K\xb7\xae"
orderer.super.com     | 2017-11-10 09:52:01.472 UTC [grpc] Printf -> DEBU 1ca transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03P흿\xe7ݎ<K\xac?\xa8("
orderer.super.com     | 2017-11-10 09:53:06.599 UTC [grpc] Printf -> DEBU 1cb transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03\x87yqd\xfc \xc8U*N.\xedx"
orderer.super.com     | 2017-11-10 09:54:37.862 UTC [grpc] Printf -> DEBU 1cc transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03\x8bL\xac\xc9\r\x93\x98\xfe\xca1\xc3\x1cl"
orderer.super.com     | 2017-11-10 09:56:32.705 UTC [grpc] Printf -> DEBU 1cd transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03\xc4\xcdN\xcfS\x95\xb0|B\xe4c\xf0\xb4"
orderer.super.com     | 2017-11-10 09:58:10.790 UTC [grpc] Printf -> DEBU 1ce transport: http2Server.HandleStreams received bogus greeting from client: "\x16\x03\x01\x00\x96\x01\x00\x00\x92\x03\x03\xc1PǛ\xbe\xdd\xe8,\x13\x0e҇\xf8"

奇怪的是,每隔几分钟就会收到这些,看似netty在应用程序因为事务错误而崩溃后继续尝试。这也是我从orderer.super.com获得的唯一输出。

对于它的价值,我的订货人使用以下属性:

ret.setProperty("pemFile", certFile.getAbsolutePath());
ret.setProperty("hostnameOverride", name);
ret.setProperty("sslProvider", "openSSL");
ret.setProperty("negotiationType", "TLS");

请注意,cert文件是一个确实存在且由cryptogen生成的文件。我已经尝试过再次重新生成我的证书和orderer.block,它不会改变任何内容。

如果有人能提出我的黄金提示,那将非常感激。我在第二天试图解决这个问题。

提前谢谢!

0 个答案:

没有答案