Hypterledger Fabric 1.4环境搭建

喜你入骨 提交于 2020-01-07 00:06:39

Github

fabric官方Github地址为: https://github.com/hyperledger/fabric

环境搭建流程

1. 环境依赖

依赖的软件版本根据安装的Fabric的版本差异而略有不同,具体请查看fabric的docs/source目录下的prereqs.rst。

1.1 注

本次配置使用的为阿里云主机,系统:CentOS Linux release 7.5.1804 (Core)

1.2 Git安装
yum install git
1.3 curl安装
yum install curl
1.4 docker安装
curl -fsSL https://get.docker.com/ | sh
注:docker版本不要太old
1.5 docker-compose安装
# 安装
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 增加可执行权限
chmod +x docker-compose
# 查看是否安装成功
docker-compose --version
1.6 go环境配置
# 下载安装包
wget https://dl.google.com/go/go1.11.11.linux-amd64.tar.gz
# 解压
tar xvf go1.11.11.linux-amd64.tar.gz
# 环境变量配置
[root@Muyi ~]# vi .bash_profile
增加以下两行
export GOPATH=/root/Muyi/Go/go
export PATH=$PATH:$GOPATH/bin
# 生效
source .bash_profile
# 查看是否安装成功
[root@Muyi ~]# go version
go version go1.11.11 linux/amd64

2. fabric

# 新建目录
[root@Muyi Muyi]# mkdir Fabric
# 拉取fabric源码
[root@Muyi Muyi]# git clone https://github.com/hyperledger/fabric.git
# 查看分支,切换到v1.4.3
[root@Muyi Muyi]# cd ./fabric
[root@Muyi Muyi]# git branch -a
[root@Muyi Muyi]# git checkout v1.4.3

3. fabric-samples

3.1 配置镜像加速器

这里选择的是阿里云的镜像加速器:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,不配置镜像加速器下载速度很慢。

[root@Muyi Muyi]# sudo mkdir -p /etc/docker
[root@Muyi Muyi]# sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["你的加速器地址"]
}
EOF
[root@Muyi Muyi]# sudo systemctl daemon-reload
[root@Muyi Muyi]# sudo systemctl restart docker
3.2 拉取依赖
方法一:

可以在 fabric/scripts 目录下找到 bootstrap.sh 脚本,复制到与 fabric 同级目录下,执行脚本:

./bootstrap.sh 1.4.3 1.4.3 0.4.15

该脚本会帮你干很多事情:

  • 如果当前目录没有 hyperledger/fabric-samples,会从 github.com克隆 hyperledger/fabric-samples 存储库;
  • 使用 checkout 签出对应指定的版本标签;
  • 将指定版本的 Hyperledger Fabric 平台特定的二进制文件和配置文件安装到 fabric-samples 存储库的根目录中;
  • 下载指定版本的 Hyperledger Fabric Docker 镜像文件;
  • 将下载的 Docker 镜像文件标记为 “lastest"。
方法二:

其实查看bootstrap.sh文件可以发现整体的流程大致为三步:

  • ①:下载 fabric-samples 源码
  • ②:下载两个压缩包
  • ③:下载镜像文件

而方式一中经常会卡在下载二进制文件压缩包那里,这里我直接给出了这两个压缩包的网盘地址,可以先下载fabric-samples 源码后然后直接将这两个压缩包放在fabric-samples目录下解压即可,最后只需要执行下bootstrap.sh来下载镜像文件即可。

具体操作流程如下:
1. 下载 fabric-samples 源码
其实就是将 fabric-samples 源码克隆到当前目录下,并切换到指定版本:
[root@Muyi Muyi]# git clone https://github.com/hyperledger/fabric-samples.git
[root@Muyi Muyi]# cd ./fabric-samples
[root@Muyi Muyi]# git branch -a
[root@Muyi Muyi]# git checkout v1.4.3
2. 下载指定版本的 Hyperledger Fabric 平台特定的二进制文件和配置文件
官方地址:
https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.4.3/hyperledger-fabric-linux-amd64-1.4.3.tar.gz
https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric-ca/hyperledger-fabric-ca/linux-amd64-1.4.3/hyperledger-fabric-ca-linux-amd64-1.4.3.tar.gz
网盘地址:
链接:https://pan.baidu.com/s/1h2IzGCtt9EzQDKGgf28bxA 
提取码:kej4
3. 下载 Docker镜像
首先编辑bootstrap.sh跳过前两个步骤,具体为
[root@Muyi Fabric]# vi bootstrap.sh
# 在文件末尾的samplesInstall和binariesInstall前加注释不执行即可
if [ "$SAMPLES" == "true" ]; then
  echo
  echo "Installing hyperledger/fabric-samples repo"
  echo
#  samplesInstall
fi
if [ "$BINARIES" == "true" ]; then
  echo
  echo "Installing Hyperledger Fabric binaries"
  echo
#  binariesInstall
:wq保存之后执行
[root@Muyi Fabric]# ./bootstrap.sh 1.4.3 1.4.3 0.4.15
3.3 配置环境变量

将fabric-samples目录下的bin目录配置到环境变量中即可,具体如下:

[root@Muyi ~]# vi .bash_profile
增加以下两行
export FABRICPATH=/root/Muyi/Fabric/fabric-samples
export PATH=$PATH:$FABRICPATH/bin
# 生效
source .bash_profile
# 查看是否配置成功
[root@Muyi ~]# fabric-ca-client version
fabric-ca-client:
 Version: 1.4.3
 Go version: go1.11.5
 OS/Arch: linux/amd64

网络测试

4.1 网络启动
# 进入到fabric-samples下的first-network目录下
# 启动网络
[root@Muyi first-network]# ./byfn.sh up
# 关闭网络
[root@Muyi first-network]# ./byfn.sh down
# 当看到以下的END时就代表启动成功
...
===================== Query successful on peer1.org2 on channel 'mychannel' ===================== 

========= All GOOD, BYFN execution completed =========== 


 _____   _   _   ____   
| ____| | \ | | |  _ \  
|  _|   |  \| | | | | | 
| |___  | |\  | | |_| | 
|_____| |_| \_| |____/  

5. Error

5.1 FAILED to execute End-2-End Scenario

问题描述:

在阿里云主机上部署测试时可能会出现下面的问题:
peer1.org1 failed to join the channel, Retry after 3 seconds
+ peer channel join -b mychannel.block
+ res=1
+ set +x
Error: error getting endorser client for channel: endorser client failed to connect to peer1.org1.example.com:8051: failed to create new connection: connection error: desc = "transport: error while dialing: dial tcp: lookup peer1.org1.example.com: no such host"
!!!!!!!!!!!!!!! After 10 attempts, peer1.org1 has failed to join channel 'mychannel'  !!!!!!!!!!!!!!!!
========= ERROR !!! FAILED to execute End-2-End Scenario ===========

ERROR !!!! Test failed

解决方案
编辑/etc/resolv.conf:
nameserver 100.100.x.xxx
nameserver 100.100.x.xxx
#options timeout:2 attempts:3 rotate single-request-reopen
# 注释掉  options timeout:2 attempts:3 rotate single-request-reopen这一行即可
# 然后关闭后重新启动
[root@Muyi first-network]# ./byfn.sh down
[root@Muyi first-network]# ./byfn.sh up
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!