fabric环境搭建与安装

强颜欢笑 提交于 2020-10-02 00:37:34

fabric环境搭建与安装

一、前期系统配置

1、安装操作系统为Ubuntu20.04的虚拟机,使用虚拟机进行fabric环境搭建与安装

2、为虚拟机配置国内源,以配置清华源为例(方便后面安装软件)

  1. 进入清华大学源 (https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/)
  2. 选择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
  1. 打开虚拟机终端,进入到配置目录
$ cd /etc/apt
  1. 编辑源
$ sudo cp sources.list sources_backup.list       #备份源,复制sources.list文件并命名为sources_back.list
$ sudo gedit sources.list      #在打开的文件里用新复制的源替换原有的(把原有的删掉,粘贴新复制的)
  1. 更新源
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 镜像

在拉取镜像之前,建议先配置镜像加速器,以配置阿里云镜像加速器为例:

  1. 登录阿里云容器服务:https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fcr.console.aliyun.com%2Fcn-hangzhou%2Finstances%2Fmirrors
  2. 找到“镜像加速器”项

在这里插入图片描述

  1. 复制代码到终端执行即可

在这里插入图片描述

执行以下命令拉取镜像:

$ 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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!