区块链框架-在Ubuntu16.04上搭建Hyperledger Fabric1.0环境步骤

搭建环境这个过程确实困难重重,希望各位要有心理准备,相信经过耐心的探索之后会有收获的,大家共同沟通进步。

首先附上必备的工具的版本信息:

①Oracle VM virtualBox 版本号:4.3.10

②Ubuntu 版本号:16.04.4

③go语言 版本号:1.9.2

④docker 版本号:17.03.2-ce

⑤docker-compose 版本号:1.21.2

附上详细信息图:

区块链框架-在Ubuntu16.04上搭建Hyperledger Fabric1.0环境步骤_第1张图片

各种工具准备好了之后,开始搭建环境,在这里需要感谢笔者深蓝居,我就是根据他博客里面的步骤一步步去搭建的。

链接: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

得到的结果如下:

区块链框架-在Ubuntu16.04上搭建Hyperledger Fabric1.0环境步骤_第2张图片

 

六,启动网络

在e2e_cli目录下,执行脚本:  ./network_setup.sh up

正常执行的话结果应该如下图所示:

区块链框架-在Ubuntu16.04上搭建Hyperledger Fabric1.0环境步骤_第3张图片

七,最后就是进行手动测试啦

我们仍然是以现在安装好的Example02为例,在官方例子中,channel名字是mychannel,链码的名字是mycc。我们首先进入CLI,我们重新打开一个命令行窗口,输入:

docker exec -it cli bash

运行以下命令可以查询a账户的余额:

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

可以看到余额是90:

区块链框架-在Ubuntu16.04上搭建Hyperledger Fabric1.0环境步骤_第4张图片

果然,一切正常。最后我们要关闭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

你可能感兴趣的:(区块链框架-在Ubuntu16.04上搭建Hyperledger Fabric1.0环境步骤)