Hyperledger fabric 环境搭建 及 运行e2e_cli (非常详细,但是很简单!)

网上和一些书上的教程看起来真的复杂。

自己看了很多博客,中间解决了很多问题 ,终于弄好了。感恩的心呀!

我的系统是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里的所有文件



猜你喜欢

转载自blog.csdn.net/yujuan110/article/details/80975750
今日推荐