Hyperledger Fabric环境搭建

Athletics_yan · · 1649 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Hyperledger Fabric环境搭建手册

软件及版本要求

软件要求:

  • docker
  • docker-compose
  • git
  • golang

版本要求:

  • docker版本: 17.06.2-ce以上
  • docker-compose版本:1.14.0以上
  • golang版本:1.10.x以上

软件安装

Golang安装

  • 下载解压golang压缩包
wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
  • 配置环境变量
vi /etc/profile
添加环境变量配置
#GOBIN
export GOBIN=/usr/local/go/bin //该路径为go安装路径
export PATH=$PATH:$GOBIN
  • 创建GOPATH
#GOPATH
export GOPATH=/zn/go  //该路径为工作目录 
  • 保存修改的环境变量配置,并载入。
保存退出vim后,载入环境变量设置
source /etc/profile
  • 查看go版本是否符合要求
go version
  • 查看go环境是否正确
go env

Docker安装

  • 我们可以使用阿里提供的镜像,安装也非常方便。通过以下命令来安装Docker
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
  • 安装完成后需要修改当前用户(我使用的用户叫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 -v

不同的版本添加方法是不一样的,官方的文档如下:

https://cr.console.aliyun.com/#/accelerator
当然觉得阿里云镜像不好用,喜欢用DaoClound的也可以用DaoClound的镜像。DaoCloud的镜像设置文档为:https://www.daocloud.io/mirror#accelerator-doc

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
  • 查看版本
docker-compose -v

git安装

  • 查看系统是否已经安装git
git --version
  • 安装
yum install -y git

搭建Fabric环境

  • 创建工作空间目录,在GOPATH目录下创建必要fabric目录
cd /zn/go
mkdir -p src/github.com/hyperledger  //必须创建该目录,否则后面会报错找不到目录和文件
  • 下载hyperledger fabric源码。目前clone下来的版本为v1.1.0
cd src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
  • 下载hyperledger fabric二进制文件,和docker镜像
cd scripts
./bootstrap.sh
(注:下载二进制脚本文件的方式有多种,这只是其中一种方式。
另外的方式有:
1、通过fabric/examples/e2e_cli中的脚本download-dockerimages.sh,指定系统和版本号,进行下载。例如:source download-dockerimages.sh -c x86_64-1.1.0 -f x86_64-1.1.0
2、可以通过wget下载离线文件。路径https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.1.0/
上述二进制文件属于国外源,下载非常缓慢,可设置VPN代理加快下载速度)
  • 将镜像文件目录路径加入环境变量配置。本例中将二进制文件,放到了fabric源码外的目录/zn/go/src/github.com/hyperledger/bin
vi /etc/prifile
增加一行
export PATH=$PATH:/zn/go/src/github.com/hyperledger/bin
  • 保存修改的环境变量配置,并载入。
保存退出vim后,载入环境变量设置
source /etc/profile
  • 启动fabric示例网络
cd /zn/go/src/github.com/hyperledger/fabric/examples/e2e_cli
./network_setup.sh up

其他常用命令

查看所有的镜像列表
docker images

杀死所有正在运行的容器
docker kill $(docker ps -a -q)

删除所有已经停止的容器
docker rm $(docker ps -a -q)

删除所有镜像
docker rmi $(docker images -q)

强制删除所有镜像
docker rmi -f $(docker images -q)

停止所有docker镜像并删除docker容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq)

清除docker网络缓存
docker network prune

手动拉取docker镜像
docker pull hyperledger/fabric-tools:x86_64-1.0.0

docker镜像打tag(0403fd1c72c7为要打tag打image id)
docker tag 0403fd1c72c7 docker.io/hyperledger/fabric-tools:latest

安装过程中遇到的问题总结

1. /go/src/github.com/hyperledger/fabric/examples/e2e_cli/../../release/linux-amd64/bin/cryptogen: No such file or directory
解决方案:检查src/github.com/hyperledger 目录是否正确创建,检查二进制脚本文件路径是否添加到环境变量中。

2. "transport: Error while dialing dial tcp: lookup peer1.org1.example.com on 127.0.0.11:53: no such host"
解决方案:该问题为阿里巴巴云主机问题,更新Hyperledger Fabric的docker compose yaml模板,为所有Hyperledger Fabric的节点(如orderer, peer, ca, cli等)添加环境变量- GODEBUG=netdns=go以强制使用pure Go resolver。需要改动的文件有:/zn/go/src/github.com/hyperledger/fabric/examples/e2e_cli目录下的docker-compose-cli.yaml、base/docker-compose-base.yaml、base/peer-base.yaml

3. network e2ecli_default not found
解决方案:e2e_cli目录是固定的,启动后会创建一个docker network以此为名字,这里是e2e_cli。如果修改该目录,要修改/zn/go/src/github.com/hyperledger/fabric/examples/e2e_cli/base目录下的peer-base.yaml
将网络名改成如下名称即可
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default

4. 注意事项,确保go环境变量配置正确,gopath配置正确,fabric二进制脚本文件加入到环境变量配置中。如果是阿里云主机,需要修改配置文件,为所有Hyperledger Fabric的节点(如orderer, peer, ca, cli等)加入- GODEBUG=netdns=go配置。镜像版本需与代码版本一致。

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:Athletics_yan

查看原文:Hyperledger Fabric环境搭建

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1649 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传