Mas_Tan

Site blog for Tan

No Praise For Colorful


Welcome To My Blog

Ubuntu 运行 Hyperledger Fabric 网络失败 -- 阿里云服务器

环境:

  • System Version: Ubuntu Linux 14.04 / 16.04 LTS
  • Hyperledger 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.yamlpeer0.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 !!!
✌️✌️✌️

最近的文章

CocoaPods 多语言实现

最近公司有需求,所有的服务要走上国际化。之前做的服务(cocoapods 私有库)都是只用了中文,借此机会记录一下。Step 1在Podfile 中使用 use_frameworks!. 这样每个私有库的内容会被单独打包进一个framework 内部,而不是全部分散的放在main bundle 内部。Step 2私有库配置文件定义.在podspec 文件中,指定资源打包的方式 resource_bundlesSample 如下 s.resource_bundles = { 'Pic...…

继续阅读
更早的文章

Hyperledger Composer 0.18.1 Timeout Error

从0.16.x 更新到 0.18.1 以后问题composer network start ... 这步就卡住了,改过connection配置文件,清过缓存,突然成功让人高兴一下,stop 后删除镜像再跑又不行了。 感觉就像摸奖,跑十次可以成功一次😅。由于是next版本,网上也没有解决方案,只能自己踩坑了。composer network start ... 命令,会为每个peer启动一个容器。它的镜像是 hyperledger/fabric-ccenv, tag 是x86_64-1.1...…

继续阅读