一、虚拟机安装
1、安装操作系统为Ubuntu20.04的虚拟机,使用虚拟机进行fabric环境搭建与安装
2、为虚拟机配置国内源,以配置清华源为例
- 进入清华大学源 (https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/)
- 选择20.04版本的源码
- 打开虚拟机终端,进入到配置目录
$ cd /etc/apt
4. 编辑源
$ sudo cp sources.list sources_backup.list #备份源,复制sources.list文件并命名为sources_back.list
$ sudo gedit sources.list #在打开的文件里用新复制的源替换原有的(把原有的删掉,粘贴新复制的)
5. 更新源
sudo apt update
二、Fabric环境搭建
1. 安装git
安装git工具使用如下命令:
$ sudo apt update
$ sudo apt install git
2. 安装cURL
使用如下命令安装cURL:
$ sudo apt install curl
3. 安装Docker
查看系统中是否已经安装Docker:
$ docker --version
使用如下命令安装Docker的最新版本:
$ sudo apt update
$ sudo apt install docker.io
查看Docker版本信息:
$ docker --version
4. 安装Docker-compose
确定系统中是否已安装docker-compose工具:
$ docker-compose --version
如系统提示未安装,则使用如下命令安装docker-compose工具:
$ sudo apt install docker-compose
安装成功后,查看Docker-Compose版本信息:
$ docker-compose --version
输出: docker-compose version 1.25.0, build unknown
5. 安装Golang
安装WGET命令:
yum install wget
使用wget工具下载Golang的最新版本压缩包文件 go1.14.4.linux-amd64.tar.gz
$ wget https://dl.google.com/go/go1.14.4.linux-amd64.tar.gz
下载完成后,文件会保存在当前目录下。可以使用 ll
命令查看
使用 tar 命令将下载后的压缩包文件解压到指定的 /usr/local/ 路径下
$ sudo tar -zxvf go1.14.4.linux-amd64.tar.gz -C /usr/local/
配置环境变量:解压后,Golang可以让系统的所有用户正常使用, 所以我们使用 vim 文件编辑工具打开系统的 profile 文件进行编辑:
$ sudo vim /etc/profile
在profile文件最后添加如下内容:
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH
使用 source 命令,使刚刚添加的配置信息生效:
$ source /etc/profile
通过 go version命令验证是否成功:
$ go version
6. 安装make
$ sudo apt install make
7. 安装g++
$ sudo apt install g++
8. 安装libltdl-dev
库
$ sudo apt-get install libltdl-dev
三、以源码方式编译安装fabric1.4.0
1. 下载fabric组件版本 1.4.0
$ mkdir -p $GOPATH/src/github.com/hyperledger/
$ cd $GOPATH/src/github.com/hyperledger/
#从码云上克隆,基于1.4.0 来操作(注意:下面给的克隆地址可能会失效,如果失效,可以换为码云上的其他地址或者GitHub上的地址:https://github.com/hyperledger/fabric-samples.git)
$ git clone -b v1.4.0 https://gitee.com/Hospital-Ledger/fabric-samples.git
注意:如果无法访问github网站,则应在在(/etc/)中的hosts文件修改github.com的动态ip
2. 下载fabric 1.4.0源码
$ cd $GOPATH/src/github.com/hyperledger/
#使用-b v1.4.0指定克隆版本,用国内镜像网站,可加快下载速度(注意:码云上的地址可能会失效,如果不能克隆,可以换为码云上的其他地址或者直接从GitHub上克隆:https://github.com/hyperledger/fabric.git)
$ git clone -b v1.4.0 https://gitee.com/mirrors/hyperledger-fabric.git
#把hyperledger-fabric改为fabric
$ sudo mv hyperledger-fabric fabric
3. 编译fabric 1.4.0
编译
$ cd fabric
$ make release
查看是否编译成功
$ ll release/linux-amd64/bin/
应该可以查看到以下8个文件
configtxgen
configtxlator
cryptogen
discover
get-docker-images.sh
idemixgen
orderer
peer
4.下载fabric-ca 1.4.0源码
$ cd $GOPATH/src/github.com/hyperledger
#使用-b v1.4.0指定克隆版本,用国内镜像网站,可加快下载速度(注意:码云上的地址可能会失效,如果不能克隆,可以换为码云上的其他地址或者直接从GitHub上克隆:https://github.com/hyperledger/fabric-ca.git)
$ git clone -b v1.4.0 https://gitee.com/zhangsen999/fabric-ca.git
5. 编译fabric-ca源码
$ cd fabric-ca
$ make fabric-ca-server
$ make fabric-ca-client
6. 查看是否编译成功
$ ll bin/
应该可以看到以下2个文件:
fabric-ca-client
fabric-ca-server
7. 复制编译所得文件(否则网络不能启动)
#在fabric-samples目录创建bin目录
$ cd $GOPATH/src/github.com/hyperledger/fabric-samples/
$ mkdir bin
#复制编译fabric所得文件
$ cp $GOPATH/src/github.com/hyperledger/fabric/release/linux-amd64/bin/* $GOPATH/src/github.com/hyperledger/fabric-samples/bin/
#复制编译fabric-ca所得文件
$ cp $GOPATH/src/github.com/hyperledger/fabric-ca/bin/* $GOPATH/src/github.com/hyperledger/fabric-samples/bin/
#查看复制结果
$ ll bin/
8.拉取 docker 镜像
- 登录阿里云容器服务:https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fcr.console.aliyun.com%2Fcn-hangzhou%2Finstances%2Fmirrors
- 找到“镜像加速器”项
- 复制代码到终端执行即可
4. 执行以下命令拉取镜像:
$ export FABRIC_TAG=1.4.0
$ export CA_TAG=1.4.0
$ export THIRDPARTY_IMAGE_VERSION=0.4.14
$ docker pull hyperledger/fabric-peer:$FABRIC_TAG \
&& docker pull hyperledger/fabric-orderer:$FABRIC_TAG \
&& docker pull hyperledger/fabric-ca:$CA_TAG \
&& docker pull hyperledger/fabric-tools:$FABRIC_TAG \
&& docker pull hyperledger/fabric-ccenv:$FABRIC_TAG \
&& docker pull hyperledger/fabric-baseimage:$THIRDPARTY_IMAGE_VERSION \
&& docker pull hyperledger/fabric-baseos:$THIRDPARTY_IMAGE_VERSION \
&& docker pull hyperledger/fabric-couchdb:$THIRDPARTY_IMAGE_VERSION \
&& docker pull hyperledger/fabric-kafka:$THIRDPARTY_IMAGE_VERSION \
&& docker pull hyperledger/fabric-zookeeper:$THIRDPARTY_IMAGE_VERSION
5. 将已下载的镜像标记为最新
$ docker tag hyperledger/fabric-peer:$FABRIC_TAG hyperledger/fabric-peer \
&& docker tag hyperledger/fabric-orderer:$FABRIC_TAG hyperledger/fabric-orderer \
&& docker tag hyperledger/fabric-ca:$CA_TAG hyperledger/fabric-ca \
&& docker tag hyperledger/fabric-tools:$FABRIC_TAG hyperledger/fabric-tools \
&& docker tag hyperledger/fabric-ccenv:$FABRIC_TAG hyperledger/fabric-ccenv \
&& docker tag hyperledger/fabric-baseimage:$THIRDPARTY_IMAGE_VERSION hyperledger/fabric-baseimage \
&& docker tag hyperledger/fabric-baseos:$THIRDPARTY_IMAGE_VERSION hyperledger/fabric-baseos \
&& docker tag hyperledger/fabric-couchdb:$THIRDPARTY_IMAGE_VERSION hyperledger/fabric-couchdb \
&& docker tag hyperledger/fabric-kafka:$THIRDPARTY_IMAGE_VERSION hyperledger/fabric-kafka \
&& docker tag hyperledger/fabric-zookeeper:$THIRDPARTY_IMAGE_VERSION hyperledger/fabric-zookeeper
6. 之后使用 docker images
命令查看相关的镜像信息:
$ docker images
四、测试网络
1. 进入相应目录
$ cd ~/go/src/github.com/hyperledger/fabric-samples/first-network
2. 生成证书和密钥:
$ sudo ./byfn.sh -m generate
命令成功执行后会生成1个orderer + 4个peer + 1个CLI的网络结构,4个peer包含在2个org中
3.启动网络:
$ sudo ./byfn.sh -m up
出现以下内容,说明网络测试成功:
4.网络使用完毕后需关闭网络,以防止后期启动网络时出现错误:
$ sudo ./byfn.sh -m down