由于fabric安装时需要下载国外网站的东西,慢的要死,本人安装的很奔溃,本着造福人类的人道主义精神写下这篇沁透着血与泪的教程,希望大家勿踩坑,做一名不浪费时间的幸福程序员。
1、安装需要的依赖
$ sudo apt-get install git
$ sudo apt-get install vim
2、更换系统软件源
备份原文件
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
删除原文件
$ sudo rm -rf /etc/apt/sources.list
新建并打开文件
$ sudo vim /etc/apt/sources.list
写入源文件,将以下内容写入打开的sources.list 文件中
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
更新
$ sudo apt update
3、安装docker
$ sudo apt install docker.io
安装完之后,查看版本,出现如下字样则安装成功:
$ docker --version
Docker version 18.09.7, build 2d0083d
设置成非 root 用户也能执行 docker,需要将普通用户加入 docker 组:
$ sudo usermod -aG docker 你的用户名 (重启生效)
4、安装 docker-compose
使用如下命令安装 docker-compose 工具:
$ sudo apt install docker-compose
安装完之后,查看版本,出现如下字样则安装成功:
$ docker-compose --version
docker-compose version 1.8.0, build unknown
允许其他用户执行 compose 相关命令:
$ sudo chmod +x /usr/share/doc/docker-compose
5、安装 Golang
下载go安装包,下面是下载链接,下载linux版本
https://studygolang.com/dl
对下载的安装包进行解压缩,一般自动下载到Downloads文件夹,将该文件解压缩到usr/local
$ sudo tar -zxvf ~/Downloads/go1.11.11.linux-amd64.tar.gz -C /usr/local/
配置环境变量,如果想让系统所有用户使用 Golang,则编辑 /etc/profile 文件;如果只是想让当前用户使用 Golang,则编辑当前用户 $HOME 目录下的 .bashrc 或 .profile 文件。
$ sudo gedit /etc/profile
在 profile 文件最后添加如下内容:
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
使用 source 命令,使刚刚添加的配置信息生效:
$ source /etc/profile
使用 go version 命令验证是否安装成功
$ go version
go version go1.11.11 linux/amd64
6、拉取 fabric 源码
创建一个空目录并进入该目录:
$ mkdir -p ~/go/src/github.com/hyperledger
$ cd ~/go/src/github.com/hyperledger
拉取 fabric 的源码
这里重点来了,网上可以看到的教程都是让去github上拉源码,但是没有代理速度会特别慢,花一个下午的时间,因此我们先把https://github.com/hyperledger/fabric在gitee上中转一下,速度就快的飞起,我中转后的地址为https://gitee.com/luckygirlcx/fabric,因此用以下操作拉取源码:
git clone https://gitee.com/luckygirlcx/fabric.git
查看并切换当前分支,我切换的是1.4.0版本
$ cd ./fabric
$ git branch -a
$ git checkout v1.4.0
7、拉取镜像
进入scripts文件夹
cd scripts
这里又是重点
原本是直接用sudo ./bootstrap.sh 命令运行文件,这个命令按成三部分内容:
1、 如果当前目录没有 hyperledger/fabric-samples,会从 github.com 克隆 hyperledger/fabric-samples 存储库;使用 checkout 签出对应指定的版本标签; 将指定版本的
2、 Hyperledger Fabric 平台特定的二进制文件和配置文件安装到 fabric-samples 存储库的根目录中;
3、下载指定版本的 Hyperledger Fabric Docker 镜像文件;将下载的 Docker 镜像文件标记为 “lastest"。
但是由于第二部分下载二进制文件太慢,失败率太高,我们就直接自己手动安装,而不是运行bootstrap.sh 脚本文件,具体步骤如下:
7.1 拉取fabric-samples文件
fabric-samples也是从github中转到了gitee,原本拉取指令为git clone https://github.com/hyperledger/fabric-samples.git,中转之后拉取指令为:
$ git clone https://gitee.com/luckygirlcx/fabric-samples.git
$ cd ./fabric-samples
$ git branch -a
$ git checkout v1.4.0
我是将其拉取到我的gitee了,你也可以自己中转,将拉取地址换为你自己的中转地址。
7.2 下载可执行二进制文件
自行百度下载一下两个二进制文件
hyperledger-fabric-linux-amd64-1.4.0.tar
hyperledger-fabric-ca-linux-amd64-1.4.0.tar
下载的 hyperledger-fabric-linux-amd64-1.4.0.tar 压缩包内有 bin 和 config 两个文件夹,hyperledger-fabric-ca-linux-amd64-1.4.0.tar 压缩包内有 bin 文件夹,将两个 bin 文件夹内的二进制文件汇总在一个 bin 文件夹内。 最后将 bin 和 config 文件夹复制到 fabric-samples 文件夹内。
7.3 下载 Docker镜像
重点啊重点啊,要想下载的又快又成功,这一步必须的呀
添加阿里云的Docker Hub镜像,以加快镜像下载速度
$ sudo mkdir -p /etc/docker
$ sudo vim /etc/docker/daemon.json
将以下内容添加到打开的json文件中
{
"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
重新启动docker
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
打开bootstrap.sh脚本
$ sudo vim bootstrap.sh
看到打开的文件结尾的内容为:
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
fi
if [ "$DOCKER" == "true" ]; then
echo
echo "Installing Hyperledger Fabric docker images"
echo
dockerInstall
fi
我们将前面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
#fi
if [ "$DOCKER" == "true" ]; then
echo
echo "Installing Hyperledger Fabric docker images"
echo
dockerInstall
fi
然后执行该bootstarp.sh脚本
$ sudo ./bootstrap.sh
8、运行测试环境是否够安装成功
测试环境是否安装成功
$ cd ./fabric-samples/first-network/
$ ./byfn.sh up
如果卡到以下图像,恭喜你安装成功。
关闭网络
$ ./byfn.sh down