fabric环境搭建与安装
一、前期系统配置
1、安装操作系统为Ubuntu20.04的虚拟机,使用虚拟机进行fabric环境搭建与安装
2、为虚拟机配置国内源,以配置清华源为例(方便后面安装软件)
- 进入清华大学源 (https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/)
- 选择20.04版本的源码,复制以下代码
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
- 打开虚拟机终端,进入到配置目录
$ cd /etc/apt
- 编辑源
$ sudo cp sources.list sources_backup.list #备份源,复制sources.list文件并命名为sources_back.list
$ sudo gedit sources.list #在打开的文件里用新复制的源替换原有的(把原有的删掉,粘贴新复制的)
- 更新源
sudo apt update
3、添加root用户
添加root用户
$ sudo passwd root
切换为root并重启
$ su root
$ reboot
二、fabric环境搭建
1. 安装git
首先,安装git工具,git是一个非常优秀的免费、开源的版本管理控制工具, 我们可以使用git工具方便地下载官方(Golang、Hyperledger Fabric等等)在Github网站上发布的相关源代码或其它内容。
安装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
输出: Docker version 19.03.8, build afacb8b7f0
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
打开网址https://studygolang.com/dl查看最新版本
使用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/
如果在解压过程中出现如下错误:
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
或
gzip: stdin: unexpected end of file
tar: 归档文件中异常的 EOF
tar: 归档文件中异常的 EOF
tar: Error is not recoverable: exiting now
说明下载的tar压缩包文件有问题, 如没有下载完整或压缩包数据损坏。请删除后重新下载并解压至指定的目录中。
配置环境变量:解压后,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
输出: go version go1.14.4 linux/amd64
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 来操作
$ git clone -b v1.4.0 https://gitee.com/Hospital-Ledger/fabric-samples.git
2. 下载fabric 1.4.0源码
首先,进入相应的目录,然后使用 git clone
命令将 Hyperledger Fabric
源代码克隆至该目录中:
$ cd $GOPATH/src/github.com/hyperledger/
#使用-b v1.4.0指定克隆版本,用国内镜像网站,可加快下载速度
$ git clone -b v1.4.0 https://gitee.com/mirrors/hyperledger-fabric.git
#把hyperledger-fabric改为fabric
$ sudo mv hyperledger-fabric fabric
注意:从国内网站下载完源代码后,目录名称为hyperledger-fabric,使用命令sudo mv hyperledger-fabric fabric 把hyperledger-fabric改为fabric。(否则在编译时找不到相关文件)
源码下载完成之后,并不能直接使用,我们需要对其进行编译,生成所需要的各种节点及相应的工具。我们直接使用源码中提供的 Makefile
来进行编译。
3. 编译fabric 1.4.0
编译
$ cd fabric
$ make release
查看是否编译成功
$ ll fabric/release/linux-amd64/bin/
应该可以查看到以下8个文件
configtxgen
configtxlator
cryptogen
discover
get-docker-images.sh
idemixgen
orderer
peer
- **configtxgen:**生成初始区块及通道交易配置文件的工具
- **cryptogen:**生成组织结构及相应的的身份文件的工具
- **configtxlator:**将指定的文件在二进制格式与JSON格式之间进行转换
4.下载fabric-ca 1.4.0源码
$ cd $GOPATH/src/github.com/hyperledger
$ git clone -b v1.4.0 https://gitee.com/Larryleo/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/.build/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
8.拉取 docker 镜像
使用 docker pull
命令拉取指定的 docker 镜像
在拉取镜像之前,建议先配置镜像加速器,以配置阿里云镜像加速器为例:
- 登录阿里云容器服务:https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fcr.console.aliyun.com%2Fcn-hangzhou%2Finstances%2Fmirrors
- 找到“镜像加速器”项
- 复制代码到终端执行即可
执行以下命令拉取镜像:
$ 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
将已下载的镜像标记为最新
$ 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
之后使用 docker images
命令查看相关的镜像信息:
$ docker images
四、测试网络
进入相应目录
$ cd ~/go/src/github.com/hyperledger/fabric-samples/first-network
生成证书和密钥:
$ sudo ./byfn.sh -m generate
命令成功执行后会生成1个orderer + 4个peer + 1个CLI的网络结构,4个peer包含在2个org中。
启动网络:
$ sudo ./byfn.sh -m up
出现以下内容,说明网络测试成功:
网络使用完毕后需关闭网络,以防止后期启动网络时出现错误:
$ sudo ./byfn.sh -m down
来源:oschina
链接:https://my.oschina.net/u/4408053/blog/4530786