之前搭建过Fabric1.1版本,这次搭建1.4版本同时写了这篇博文,其中有我个人踩坑的解决方案和思考。

安装前说明

Centos7 64位操作系统。
需要安装3个基本环境Docker、Docker-Compose、Go语言环境安装,之后下载Fabric源码,最后测试网络
检查服务器内核版本,要在3以上

uname -r

在这里插入图片描述

一.安装Dokcer

1.删除旧Docker

如果以前安装过docker,删除原来的

yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
2.安装软件包
//安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
//添加docker yum 源
//方法一:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

//方法二:(直接执行安装docker命令会很慢。配置国内的源——阿里云的源。)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装docker

我使用的版本是20.10.12

yum install docker-ce-20.10.12 docker-ce-cli-20.10.12 containerd.io
4.运行docker
//设置开机自启
systemctl start docker
docker --version         //查看版本

在这里插入图片描述

二.安装Docker-Compose

1.下载docker-compose到指定目录

下载到/usr/local/bin/docker-compose目录下。
docker compose 官方推荐的下载方式是这样:

curl -L
“https://github.com/docker/compose/releases/download/1.24.0/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose

上面的方法下载太慢了,不推荐

推荐使用国内地址

curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m`  > /usr/local/bin/docker-compose

在这里插入图片描述

2设置docker-compose目录的权限
chmod +x /usr/local/bin/docker-compose
3.检查是否安装成功
docker-compose --version

在这里插入图片描述

三.Go语言安装

1.从国内站点下载安装包,版本在1.11.x以上
wget https://studygolang.com/dl/golang/go1.12.4.linux-amd64.tar.gz

在这里插入图片描述

2.解压到/usr/local/go目录下

-C :表示指定解压目录

mkdir /opt/golang
tar -zxvf go1.12.4.linux-amd64.tar.gz -C /opt/golang

在golang/下会自动创建一个go目录,无需自己创建

3.配置环境变量

在/etc/profile文件末尾添加环境变量

mkdir /opt/gopath			// 创建go工作目录
vi /etc/profile               //在文件末尾添加
export GOPATH=/opt/gopath
export GOROOT=/opt/golang/go
export PATH=$GOROOT/bin:$PATH

在这里插入图片描述

使其立即生效

source /etc/profile
4.查看版本
go version

四.Fabric安装

1.创建目录并进入
mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger

还需要借助git工具,因此还要下载git

yum install git
2.下载源码
方法一:(不推荐)直接下载github上的源码
git clone https://github.com/hyperledger/fabric.git

可能下载失败,出现RPC failed错误,原因是git的curl的postBuffer默认值较小。解决方法:修改git传输字节限制,再重新下载

//修改git传输字节限制
git config –global http.postBuffer 524288000
方法二:(推荐)通过码云地址下载

用自己的码云从github账号上导入,具体方法见:https://blog.csdn.net/weixin_44732379/article/details/108639787
这里可以直接用我的地址,下载到完成不过一分钟

git clone https://gitee.com/fireflies-glimmer/fabric.git

在这里插入图片描述

3.查看并切换当前分支,我选择的是1.4.0版本
cd ./fabric
git branch -a  
git checkout v1.4.0

五.安装Fabric-sample示例

方法一.脚本下载

进入fabric/scripts目录可以看到一个bootstrap.sh脚本
在这里插入图片描述
直接执行bootstrap.sh脚本

bash bootstrap.sh

此处执行时间比较久,中间可能会断开,参考过其他一些文章说重新执行,亲测无效,如下图。
在这里插入图片描述
其实脚本帮我们干了几件事:

  • 从 github.com 克隆 hyperledger/fabric-samples 存储库
  • 使用 checkout 签出对应指定的版本标签;
  • 将二进制文件(bin)和配置文件(config)安装到 fabric-samples 存储库的根目录中;
  • 下载指定版本的 Hyperledger Fabric Docker 镜像文件,将下载的 Docker 镜像文件标记为 “lastest"。
方法二.(推荐) 手动下载

通过对脚本的分析我们可以手动下载,主要完成三个步骤
1.下载fabric-samples
与下载fabric源码同理,这里我使用自己的码云地址

git clone -b v1.4.0  https://gitee.com/fireflies-glimmer/fabric-samples.git
cd fabric-samples
git checkout v1.4.0  //切换版本

注意: fabric-samples目录与fabric目录同级!
2.下载二进制文件
需要下载两个压缩包,选择相应版本下载,我的网盘链接:(永久有效)
链接:https://pan.baidu.com/s/1hGH7-aGkCxX8eN3WnATSiw
提取码:xrve
压缩文件hyperledger-fabric-linux-amd64-1.4.0.tar包含bin和 config 两个文件夹
hyperledger-fabric-ca-linux-amd64-1.4.0.tar包含bin文件夹
将压缩包上传并解压到fabric-sample目录下

tar -zxvf hyperledger-fabric-linux-amd64-1.4.0.tar
tar -zxvf hyperledger-fabric-ca-linux-amd64-1.4.0.tar

在这里插入图片描述
3.下载镜像
先配置加速镜,不然下载很慢

# mkdir -p /etc/docker
# tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://8w1wqmsz.mirror.aliyuncs.com"]
}
EOF
# systemctl daemon-reload
# systemctl restart docker

fabric/scripts 目录下的 bootstrap.sh 脚本,复制到fabric-sample目录下
删除 bootstrap.sh文件中的samplesInstallbinariesInstall 步骤,保留镜像下载的步骤。
执行 bootstrap.sh 脚本:

$ ./bootstrap.sh 1.4.0 1.4.0 0.4.15

下载好了会列出镜像:
在这里插入图片描述

测试网络

1.4版本的e2e案例被移除,所以测试网络使用fabric-samples 中的 first-network
启动网络

cd ./fabric-samples/first-network/
./byfn.sh up

在这里插入图片描述
在这里插入图片描述
出现以上结果表示网络测试成功
docker ps命令可以查看到节点的启动情况
最后别忘了关闭网络

./byfn.sh down

参考文章:
[1]https://www.icode9.com/content-1-180278.html
[2]作者:灵·龙 https://www.cnblogs.com/llongst/p/9482038.html
[3]作者:zongmin https://blog.csdn.net/qq_34680444/article/details/87257141

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐