搭建环境这个过程确实困难重重,希望各位要有心理准备,相信经过耐心的探索之后会有收获的,大家共同沟通进步。
首先附上必备的工具的版本信息:
①Oracle VM virtualBox 版本号:4.3.10
②Ubuntu 版本号:16.04.4
③go语言 版本号:1.9.2
④docker 版本号:17.03.2-ce
⑤docker-compose 版本号:1.21.2
附上详细信息图:
各种工具准备好了之后,开始搭建环境,在这里需要感谢笔者深蓝居,我就是根据他博客里面的步骤一步步去搭建的。
链接:http://www.cnblogs.com/studyzy/p/7437157.html
各种小伙伴可以先按照他的步骤去搭建,此文的作用在于讲述我根据上面链接搭建过程中遇到的问题,以及后来是如何解决的。
一,GO的下载和安装(注意:不要使用apt方式安装go,apt的go版本太低了!)
下载:
可以尝试用该命令 wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
只不过我一直下载不成功,后来我就先在windows本机下载go1.9版本的压缩包,再通过文件夹共享的方式传到虚拟机。
附上虚拟机设置共享文件夹的链接:https://jingyan.baidu.com/article/c1a3101e7aac93de656deb27.html
安装:
sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
接下来编辑当前用户的环境变量:
vi ~/.profile
添加以下内容:
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin
编辑保存并退出vi后,记得把这些环境载入:
source ~/.profile
我们把go的目录GOPATH设置为当前用户的文件夹下,所以记得创建go文件夹
cd ~
mkdir go
二,docker安装
深蓝居作者的做法是:curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
只不过我一直下载有问题,所以我采用了apt安装的方式。。
附上apt安装方式参考链接:https://jingyan.baidu.com/article/0aa223756cf6e388cc0d6412.html
安装完成后需要修改当前用户(我使用的用户叫fabric)权限:
sudo usermod -aG docker fabric
注销并重新登录,然后添加阿里云的Docker Hub镜像:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三,docker-compose安装
Docker-compose是支持通过模板脚本批量创建Docker容器的一个组件。在安装Docker-Compose之前,需要安装Python-pip,运行脚本:
sudo apt-get install python-pip
然后是安装docker-compose,我们从官方网站(https://github.com/docker/compose/releases)下载也可以从国内的进行DaoClound下载,为了速度快接下来从DaoClound安装Docker-compose,运行脚本:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
sudo mv ~/docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
四,Fabric源码下载(注意,需要下载v1.0.0的源码)
我们可以使用Git命令下载源码,首先需要建立对应的目录,然后进入该目录,Git下载源码:
mkdir -p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
由于Fabric一直在更新,所有我们并不需要最新最新的源码,需要切换到v1.0.0版本的源码即可:
cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0
五,Fabric Docker镜像下载
运行脚本:
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
下载完毕后,我们运行以下命令检查下载的镜像列表:
docker images
得到的结果如下:
六,启动网络
在e2e_cli目录下,执行脚本: ./network_setup.sh up
正常执行的话结果应该如下图所示:
七,最后就是进行手动测试啦
我们仍然是以现在安装好的Example02为例,在官方例子中,channel名字是mychannel,链码的名字是mycc。我们首先进入CLI,我们重新打开一个命令行窗口,输入:
docker exec -it cli bash
运行以下命令可以查询a账户的余额:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
可以看到余额是90:
果然,一切正常。最后我们要关闭Fabric网络,首先需要运行exit命令退出cli容器。关闭Fabric的命令与启动类似,命令为:
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli
./network_setup.sh down
重点来了,附上该过程中遇到的一些问题以及解决方式。
问题一:执行脚本./network.setup_sh up启动网络时报错:
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running
解决方式:将当前用户加入docker组
sudo gpasswd -a ${USER} docker
${USER}替换成你的用户名,比如从我的截图可以看出,我的用户名是r
再切换为root:sudo su
再切换回r用户:su r
问题二:执行脚本./network.setup_sh up启动网络时报错:network e2ecli_default not found
解决方式:修改网络名
修改~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/base目录下的peer-base.yaml
将网络名改成如下名称即可
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default
最后再次感谢深蓝居作者的知识共享,其博客链接:http://www.cnblogs.com/studyzy/p/7437157.html