报错:
两个Ubuntu 16.04 虚拟机PC1, PC2。
虚拟机网络连接方式-->桥接模式

PC1运行网络配置docker-compose.yaml, PC2运行caliper config.json时报错,这个错误表示PC2访问PC1失败。
ERROR [create-channel.js]: Failed to create channels: Error: SERVICE_UNAVAILABLE
at ClientDuplexStream.<anonymous> (/home/qin/go/src/github.com/caliper/node_modules/fabric-client/lib/Orderer.js:136:21)
at emitOne (events.js:116:13)
at ClientDuplexStream.emit (events.js:211:7)
at ClientDuplexStream._emitStatusIfDone (/home/qin/go/src/github.com/caliper/node_modules/grpc/src/client.js:271:12)
at ClientDuplexStream._readsDone (/home/qin/go/src/github.com/caliper/node_modules/grpc/src/client.js:236:8)
at readCallback (/home/qin/go/src/github.com/caliper/node_modules/grpc/src/client.js:296:12)
该问题根本原因是网络两个PC连接问题。可能错误:
1. PC1,PC2上代理设置有问题导致连接错误。
2. docker-compose.yaml和config.json的端口和IP配置不一致。
解决过程
两个PC互ping都没有问题。在PC1和PC2上,localhost可以访问(ping localhost),但127.0.0.1和本机ip不能访问。可见是单个PC上网络设置的问题。查看 /etc/hosts第一行有 127.0.0.1 localhost ,hosts配置没有问题。
最后发现是System Setting-->Network的问题,以前设置了Network proxy

Manual改为None

重启即可。

本文解决了一个在两个Ubuntu16.04虚拟机间使用Caliper进行区块链性能测试时遇到的网络连接问题。问题表现为PC2无法访问PC1的docker-compose服务,错误信息提示SERVICE_UNAVAILABLE。经过排查,发现是由于网络代理设置不当导致。通过将手动代理设置更改为无代理,重启系统后问题得到解决。

1万+

被折叠的 条评论
为什么被折叠?



