报错:
两个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
重启即可。