1.环境:Ubuntu 16.04
vmware虚拟机
2.目的:启动fabric样板示例e2e_cli,结果如图所示:
3.部署过程:
根据https://blog.csdn.net/sinat_23588337/article/details/80808832所示步骤。
docker --version : Docker version 1.13.1, build 092cba3
docker-compse --version : docker-compose version 1.17.1, build 6d101fb
go version : go version go1.8.3 linux/amd64 (p.s. 在.bashrc添加 source /etc/profile可免除每次都要执行source /etc/profile的麻烦)
docker images :结果如下图所示:
镜像要求最好不要缺,x86_64-1.0.0和latest两个tag的id要一致。出现问题使用:
拉取镜像:
docker pull hyperledger/fabric-tools:x86_64-1.0.0
docker pull hyperledger/fabric-couchdb:x86_64-1.0.0
docker pull hyperledger/fabric-kafka:x86_64-1.0.0
docker pull hyperledger/fabric-orderer:x86_64-1.0.0
docker pull hyperledger/fabric-peer:x86_64-1.0.0
docker pull hyperledger/fabric-ca:x86_64-1.0.0
docker pull hyperledger/fabric-ccenv:x86_64-1.0.0
docker pull hyperledger/fabric-baseimage:x86_64-0.4.7
docker pull hyperledger/fabric-baseos:x86_64-0.4.7
docker pull hyperledger/fabric-zookeeper:x86_64-1.0.0
docker pull hyperledger/fabric-javaenv:x86_64-1.0.0
docker pull hyperledger/fabric-membersrvc:latest
删除镜像: docker rmi -f <image id>
4.出错汇总:
1.ERRO 001 Cannot run peer because error when setting up MSP from directory........msp.......
2.ERRO 001 Cannot run peer because error when setting up MSP from directory /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp......
解决办法:
查看fabric branch: git branch -a.结果带*就是你的branch,如果不是v1.0.0,就git checkout v1.0.0
docker镜像版本更改前文已述。
CGO_CFLAGS=" " GOBIN=/opt/gopath/src/github.com/hyperledger/fabric/build/bin go install -tags "" -ldflags "-X github.com/hyperledger/fabric/common/tools/cryptogen/metadata.Version=1.0.1" github.com/hyperledger/fabric/common/tools/cryptogen
# github.com/hyperledger/fabric/vendor/github.com/miekg/pkcs11
vendor/github.com/miekg/pkcs11/pkcs11.go:29:18: fatal error: ltdl.h: No such file or directory
compilation terminated.
Makefile:227: recipe for target 'build/bin/cryptogen' failed
make: *** [build/bin/cryptogen] Error 2
表明缺少ltdl.h文件。执行以下命令:
#apt-get install libtool libltdl-dev
#make cryptogen
3.Error: Error endorsing chaincode: rpc error: code = Unknown desc = Error starting container: API error (404): {"message":"network e2ecli_default not found"}
解决办法:
#cd $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli/base #gedit peer-base.yaml
打开文件后将e2ecli_default修改为e2e_cli_default
以上,基本是我遇到过的问题了。