Ubuntu20安装Fabric 1.4 详细步骤(亲测有效,部署快)
Ubuntu20安装Fabric 1.4.6 详细步骤
一、准备阶段
使用环境:
VMware安装使用Ubuntu镜像文件:ubuntu-20.04.3-desktop-amd64.iso ,直接官网下载,在虚拟机上运行。
1.1 配置阿里镜像源
1.2 安装基础软件工具 pip git curl make gcc wget
1.3 安装 go
1.4 安装 Docker-CE
1.5 安装 docker-compose
1.1 配置阿里镜像源
首先进行配置文件的备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
编辑配置文件
sudo apt install vim
sudo vim /etc/apt/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-get update
1.2 安装基础软件
安装pip并更新
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。Ubuntu20中安装的是Python3.8
sudo apt install python3-pip
# 直接使用pip install --upgrade pip 命令会很慢,需要换源
# 这里直接使用-i参数,指定pip源
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
安装git curl make gcc wget工具
sudo apt install git curl make gcc wget
- git:用于下载 fabric 托管在 github 上的源码;
- curl:网络工具,能够通过 http、ftp 等方式下载文件;
- make:编译 makefile 脚本文件描述的整个工程的规则;
- gcc:GNU 编译器套件,是 Linux 下默认的 C/C++编译器;
- wget:下载工具; vim:Linux 系统中的编辑工具。
1.3 安装 go
下载安装包
wget https://studygolang.com/dl/golang/go1.13.4.linux-amd64.tar.gz
解压安装
sudo tar -C /usr/local -zxf go1.13.4.linux-amd64.tar.gz
配置环境变量
// 以下方式选择一种
// 系统环境变量
vim ~/.bashrc
或gedit ~/.bashrc
// 用户环境变量
vim /etc/profile
或gedit /etc/profile
在文件最后添加以下内容
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
更新配置文件
source ~/.bashrc
查看go语言是否安装成功
go version
1.4 安装 Docker-CE
卸载旧版本docker
sudo apt-get remove docker docker-engine docker.io
添加HTTPS协议,允许apt从HTTPS安装软件包
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
将当前用户添加到Docker用户组
1.创建docker用户组
sudo groupadd docker
2.将当前用户添加到docker用户组
sudo usermod -aG docker $USER
3.退出当前终端
exit
将docker镜像更改为国内镜像
编辑daemon.json文件,如果没有该文件自行创建
sudo /etc/docker/daemon.json
文件中添加以下内容
{
"registry-mirrors":["https://obou6wyb.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}
最后重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
查看docker版本,看是否安装成功
docker version
执行docker info
,如果结果中含有如下内容则说明镜像配置成功:
1.5 安装 Docker-Compose
方法一:
sudo curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 或
# sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
设置权限
sudo chmod +x /usr/local/bin/docker-compose
方法二:
sudo apt-get install python3-pip
sudo pip install docker-compose
下载完成后查看是否安装成功
docker-compose version
二、Fabric环境部署
- 下载二进制文件
- 拉取docker镜像
- 下载fabric-samples文件,运行官方案例first-network
2.1 Fabric二进制文件
创建文件夹
mkdir -p go/src/github.com/hyperledger
进入刚刚创建的文件夹内
cd go/src/github.com/hyperledger
从github上拉取fabric的源码
git clone "https://github.com/hyperledger/fabric.git"
将fabric版本切换为1.4分支
cd fabric
git checkout release-1.4
当前1.4最新版本为1.4.6,也可以用下面的命令切换到指定版本的分支
git checkout -b v1.4.6
编译二进制文件
make release
查看生成的二进制文件
cd release/linux-amd64/bin
ls
如果文件夹中有以下文件说明编译成功
2.2 拉取Fabric的Docker镜像
将生成的文件添加进环境变量
vim ~/.profile
在文件最后添加以下内容
export PATH=$PATH:$GOPATH/src/github.com/hyperledger/fabric/release/linux-amd64/bin
更新配置文件
source ~/.profile
将刚刚bin文件夹中的两个证书复制到$GOPATH/bin中
cp cryptogen $GOPATH/bin
cp configtxgen $GOPATH/bin
拉取fabric镜像
docker pull hyperledger/fabric-peer:1.4.6
docker pull hyperledger/fabric-tools:1.4.6
docker pull hyperledger/fabric-orderer:1.4.6
docker pull hyperledger/fabric-javaenv:1.4.6
docker pull hyperledger/fabric-ca:1.4.6
docker pull hyperledger/fabric-ccenv:1.4.6
docker pull hyperledger/fabric-zookeeper:0.4.18
docker pull hyperledger/fabric-kafka:0.4.18
docker pull hyperledger/fabric-couchdb:0.4.18
docker pull hyperledger/fabric-baseimage:0.4.18
docker pull hyperledger/fabric-baseos:0.4.18
docker pull hyperledger/fabric-membersrvc:latest
拉取完镜像镜像后,可以查看docker镜像库
docker images
为了方便配置Docker Compose,将所有镜像的tag都改为latest,执行如下格式的命令:
docker tag IMAGEID(镜像ID) REPOSITORY:TAG(仓库:标签)
例如:
docker tag 68914607b3a5 docker.io/hyperledger/fabric-javaenv:latest
docker tag 0f9743ac0662 docker.io/hyperledger/fabric-tools:latest
docker tag 3b96a893c1e4 docker.io/hyperledger/fabric-ca:latest
docker tag 191911f4454f docker.io/hyperledger/fabric-ccenv:latest
docker tag 84eaba5388e7 docker.io/hyperledger/fabric-orderer:latest
docker tag 5a52faa5d8c2 docker.io/hyperledger/fabric-peer:latest
docker tag ede9389347db docker.io/hyperledger/fabric-zookeeper:latest
docker tag caaae0474ef2 docker.io/hyperledger/fabric-kafka:latest
docker tag d369d4eaa0fd docker.io/hyperledger/fabric-couchdb:latest
docker tag 9e353eca480f docker.io/hyperledger/fabric-baseimage:latest
docker tag c256a6aad46f docker.io/hyperledger/fabric-baseos:latest
将标签全部更改完后,再次查看镜像库
docker images
2.3 下载fabric-samples文件,运行官方案例first-network
从github上拉取fabric-samples官方测试案例
cd $GOPATH/src/github.com/hyperledger
git clone "https://github.com/hyperledger/fabric-samples.git"
切换版本分支
cd fabric-samples
git checkout release-1.4
运行first-network案例
cd first-network
./byfn.sh up
若运行到最后并成功,则fabric环境部署完成