hyperledger-fabric 环境安装与源码编译
环境准备
以下内容基于 CentOS 7,其他平台使用类似方式安装 Golang
与 Docker
打包即可
Golang 安装
可选安装,使用 Golang
编译出 fabric
二进制工具。如不在需要二进制工具,仅需编译镜像部署可跳过本步骤。
根据 fabric 代码库中 Makefile 中要求 GO_VER = 1.14.4
所以我们也下载对应版本的 Golang
1 | wget https://golang.org/dl/go1.14.4.linux-amd64.tar.gz |
解压 Golang 到 /usr/share/
目录下
1 | tar -zxvf go1.14.4.linux-amd64.tar.gz -C /usr/share/ |
添加 Golang
到系统环境中
1 | cat > /etc/profile.d/go.sh << EOF |
安装 gcc
1 | yum -y install gcc |
Docker 安装
hyperledger fabric 部署时使用 docker 部署,编译时根据参数选项直接编译打包为 docker image
安装 Docker
shell 1
2
3
4
5
6
7
8
9
10step 1: 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
Step 2: 添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Step 3: 更新并安装Docker-CE
yum makecache fast
yum -y install docker-ce
Step 4: 开启Docker服务
systemctl start docker
systemctl enable docker安装 Docker-compose
shell 1
2
3
4wget -O /usr/local/bin/docker-compose \
https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64
chmod +x /usr/local/bin/docker-compose
docker-compose -v
克隆代码
安装 git
工具
使用如下命令直接安装 git
,或者参考 CentOS7 编译安装新版本git 编译安装新版本 git
1 | yum -y install git |
克隆 hyperledger fabric 到 /opt/codes
目录下
1 | mkdir /opt/codes |
编译
编译打包为镜像
进入
fabric
目录shell 1
cd /opt/codes/fabric
切换分支到 2.2
shell 1
git checkout release-2.2
编译 docker 镜像前,先修改基础镜像
alpine
的源为国内源shell 1
2find images/ -type f -name 'Dockerfile' | xargs \
sed -i '/apk add/i\RUN sed -i "s?dl-cdn.alpinelinux.org?mirrors.aliyun.com?g" /etc/apk/repositories'通过
Makefile
编译代码,生成部署使用的镜像文件shell 1
make docker-clean docker
如果在编译时出现如下错误提示:
error 1
2
3
4
5
6
7
8
9fetch http://mirrors.aliyun.com/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://mirrors.aliyun.com/alpine/v3.12/main/x86_64/APKINDEX.tar.gz: temporary error (try again later)
fetch http://mirrors.aliyun.com/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://mirrors.aliyun.com/alpine/v3.12/community/x86_64/APKINDEX.tar.gz: temporary error (try again later)
ERROR: unsatisfiable constraints:
tzdata (missing):
required by: world[tzdata]
Removing intermediate container 963aecc0d5e1
The command '/bin/sh -c apk add --no-cache tzdata' returned a non-zero code: 1可能由于 docker 网络解析问题,尝试添加
DNS
后再次编译shell 1
2
3
4
5
6
7cat > /etc/docker/daemon.json <<EOF
{
"dns": ["223.5.5.5"]
}
EOF
systemctl restart docker编译成功后可看到如下图所示镜像文件
本地编译
如需直接编译出 fabric
相关工具,也可以在本地直接编译(需要 Golang
环境)
当前平台:
make release-clean release
多平台:
make release-clean release-all
多平台二进制文件示例如下(包含 OSX
、Linux
、Windows
):
1 | release |
添加编译的当前平台的二进制文件到系统环境变量中,即可使用 fabric
相关工具
1 | echo "PATH=\$PATH:$PWD/release/linux-amd64/bin/" > /etc/profile.d/fabric.sh |
- 本文标题:hyperledger-fabric 环境安装与源码编译
- 本文作者:akiya
- 本文链接:https://little-star.love/posts/c7ec2f85/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!