网上和一些书上的教程看起来真的复杂。
自己看了很多博客,中间解决了很多问题 ,终于弄好了。感恩的心呀!
我的系统是Centos7 64位
主要步骤如下:
- 安装Go
- 安装git工具
- 安装docker
- 安装docker compose
- 从git下载hyperledger fabric
- 下载所有镜像及相关二进制文件
- 完成,测试example中的e2e_cli
1.安装GO
下载Go安装包我用的版本为go1.8,下载地址如下
https://dl.google.com/go/go1.8.linux-amd64.tar.gz
需要其他版本 见:https://golang.org/dl/
可以直接下载,也可以用以下命令
curl -O https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
解压到/usr/local目录下
tar zxvf go1.8.linux-amd64.tar.gz -C /usr/local/
添加环境变量(这步非常重要,不然后续fabric的路径会出错)
vim ~/.profile
添加如下内容
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=/opt/goroot
export PATH=$PATH:$HOME/go/bin
注意:这里的GOROOT是指GO的安装路径,GOPATH是指工作路径,也就是待会我们放fabric的位置
让文件生效
source ~/.profile
2.安装git工具
非常简单
输入以下命令即可
yum install git
3.安装docker
非常简单
输入以下命令即可
yum install docker
docker启动:
service docker start
docker开机自启动:
chkconfig docker on
4.安装docker-compose
需要到git上下载docker-compose
在以下链接中找到docker-compose-Linux-x86_64,并下载。
https://github.com/docker/compose/releases
复制到centos7中,执行以下命令
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
查看是否成功
docker-compose --version
5.从git下载hyperledger fabric
创建目并进入该目录mkdir /opt/goroot/src/github.com/hyperledger/
cd /opt/goroot/src/github.com/hyperledger/
下载fabric 1.0.0版本
git clone https://gerrit.hyperledger.org/r/fabric -b v1.0.0
6.下载所有镜像及相关二进制文件
进行下面目录
cd /opt/goroot/src/github.com/hyperledger/fabric/scripts/
执行bootstrap-1.0.0.sh文件
./bootstrap-1.0.0.sh
接下来会下载相关的二进制文件和所有镜像
下载完后,当前目录下会多一个bin目录。
将bin目录复制到它该在的地方(这是接下运行e2e_cli项目需要的二进制文件)
mv bin ../release/linux-amd64/bin
查看所有镜像
docker images
7.测试example中的e2e_cli
进入目录
cd /opt/goroot/src/github.com/hyperledger/fabric/example/e2e_cli
修改./e2e/_cli/base/下的 peer-base.yaml
修改下面一行就行了
CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default
执行如下
bash network_setup.sh up
等待....等待.....
常见问题:
1.e2e_cli启动过程中出现:Error: Error endorsing chaincode: rpc error: code = Unknown desc = timeout expired while starting chaincode fabcar
1.删除所有运行的容器
#关掉所有容器
docker stop $(docker ps -a -q)
#删除所有容器
docker rm $(docker ps -a -q)
2.删除红框中的容器
docker rmi IMAGEID
2.e2e_cli启动中出现:ERROR:Encountered errors while bringing up the project
ERROR!!!Unable to pull the images
删除所有运行的容器
#关掉所有容器
docker stop $(docker ps -a -q)
#删除所有容器
docker rm $(docker ps -a -q)
3.e2e_cli启动中出现:Error: Error endorsing chaincode: rpc error: code = Unknown desc = Error starting container: API error (404): {"message":"network e2ecli_default not found"}
进入目录
cd /opt/goroot/src/github.com/hyperledger/fabric/example/e2e_cli
修改./e2e/_cli/base/下的 peer-base.yaml
修改下面一行就行了
CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default
#如果还是不行,试下这样
CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default
4.e2e_cli启动中出现:CRIT 004 Error on outputBlock:Error writing genesis block:open ./channel-artifacts/get:is a directory
直接删除e2e_cli下的channel-artifacts里的所有文件
注意:每次重新执行bash network_setup.sh up 前 需要做以下几句
删除所有容器
删除常见问题1中的三个镜像
删除e2e_cli下的crypto-config
删除e2e_cli下的channel-artifacts里的所有文件