环境:
System Version: Ubuntu Linux 14.04 / 16.04 LTSHyperledger Composer version: 0.19.1
步骤:
mkdir ~/fabric-dev-servers && cd ~/fabric-dev-servers
curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.tar.gz
tar -xvf fabric-dev-servers.tar.gz
cd ~/fabric-dev-servers&&./downloadFabric.sh
cd ~/fabric-dev-servers && ./createPeerAdminCard.sh && ./startFabric.sh
问题:
查看该容器 log ,发现有条警告信息:
2018-05-06 01:32:11.118 UTC [couchdb] handleRequest -> WARN 016 Retrying couchdb request in 125ms. Attempt:1 Error:Get http://couchdb:5984/: dial tcp 172.18.0.4:5984: getsockopt: connection refused
看错误,是peer0容器没有能连上couchdb。
经过一番搜寻,stackoverflow 上有解决方案说 dns 解析问题,在 peer0.org1.example.com 中加入dns_search: ., But It does not work 😡😡😡
那好,我尝试不用couchdb,用他默认的levelDB。注释掉 docker-composer.yaml 里 peer0.org1.com 连接 couchdb 的一些依赖以及环境变量
重新执行 ./startFabric.sh.
这次peer0还是不能正常启动,依旧出现了报错。报错信息如下
fatal error: unexpected signal during runtime execution [signal SIGSEGV: segmentation violation code=0x1 addr=0x63 …
经过很长时间的查询,发现最新的阿里云服务器中 golang 使用cgo resolver解析dns(宿主机ECS的配置文件变了), 过去OK 的版本使用的是 pure go resolver.
解决:
解决方法:
在docker-compose.yaml里对peer、orderer、ca、couchdb的环境变量加入GODEBUG=netdns=go
再次尝试 ./startFabric.sh ,终于 OK !!!
✌️✌️✌️