Bootstrap

【Ubuntu16.04】搭建Hyperledger Fabric环境

        作为开发具有模块化架构的应用程序或解决方案的基础,Hyperledger Fabric实现了组件(如共识、成员服务)的即插即用。Hyperledger Fabric利用容器技术来托管称为“链码”的智能合约,其中包含系统的应用程序逻辑。

一、准备工作

        1. 检查操作系统:uname -a

        2. 安装所需工具(git, curl, docker, docker-compose, golang)

        (1)安装git 

sudo apt update
sudo apt install git

        验证git是否安装成功:git --version

        (2)安装curl

sudo apt install curl

        (3)安装docker

sudo apt update
sudo apt install docker.io

         查看docker是否安装成功:docker --version

     (4)安装docker-compose

sudo apt install docker-compose

        查看docker-compose是否安装成功:docker-compose --version

         (5)安装golang

                ① 下载golang

sudo wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

                ② 解压go1.10.3.linux-amd64.tar.gz文件(使用-C来指定压缩路径)

sudo tar -zxvf go1.10.3.linux-amd64.tar.gz

                ③ 配置环境变量 

cd /etc
sudo chmod +w profile
sudo vim profile

         在profile文件中添加以下环境变量:

export GOPATH=$HOME/go
export GOROOT=/home/fabric/golang/go
export PATH=$GOROOT/bin:$PATH

         使用source profile命令,使得添加环境变量后的配置文件生效。

        查看golang是否安装成功:go version

注意:Fabric 1.0.0版本要求Golang 1.7以上版本,Fabric 1.1.0版本要求Golang 1.9以上版本,Fabric 1.2.0版本要求Golang 1.10以上版本。

二、安装Hyperledger Fabric

        1. 下载fabric-samples

        ① 在/home目录下创建一个fabric目录:

sudo mkdir fabric && cd fabric

        ② 新建文件bootstrap.sh并授予777权限

sudo touch bootstrap.sh
sudo chmod 777 bootstrap.sh

         将https://github.com/hyperledger/fabric/blob/master/script/bootstrap.sh中的内容复制、保存到bootstrap.sh文件中后退出。

        ③ 执行bootstrap.sh

sudo ./bootstrap.sh 1.2.0

         如果遇到下载完成之后,没有fabric-samples目录的情况时,不要慌,重新再执行一遍sudo ./bootstrap.sh 1.2.0命令即可;对于已下载的镜像文件,第二次执行sudo ./bootstrap.sh 1.2.0命令时不会重复下载。

        2. 配置环境变量

        ① 切换到/home/用户名目录下,打开.bashrc文件

cd /home/zhangqingqing   zhangqingqing为用户名
ls -a
vim .bashrc

       ② 添加Fabric的环境变量(/home/fabric/fabric-samples为fabric-samples所在目录)

export PATH=/home/fabric/fabric-samples/bin:$PATH

        ③ 使得配置文件.bashrc生效 

source .bashrc

        此时,Hyperledger Fabric安装成功~~~

三、测试Hyperledger Fabric网络环境

        Hyperledger Fabric网络环境的构成较为复杂,由N个节点组成一个分布式网络,每个节点都有自己的实体身份标识;而且Hyperledger Fabric可以通过通道将一个网络分割成不同的私有子网,从而实现不同账本之间数据的隔离性。所以,我们在使用Hyperledger Fabric之前,必须先构建所需的网络环境。

1.  测试Hyperledger Fabric环境

      ① byfn.sh脚本中可以使用的命令

up: 启动
down: 清除网络
restart: 重新启动
generate: 生成证书及创世区块
upgrade: 将网络从1.1.x升级到1.2.x
-c: 用于指定channelName,默认值“mychannel”
-t: CLI timeout时间,默认值10
-d: 延迟启动,默认值3
-f: 使用指定的网络拓扑结构文件,默认使用docker-compose-cli.yaml
-s: 指定使用的数据库,可选goleveldb/couchdb
-l: 指定chaincode使用的语言,可选golang/node
-i: 指定镜像tag,默认“latest”

2. 使用自动化脚本的方式构建第一个Hyperledger Fabric网络环境

        ① 生成证书和密钥(并实现引导服务启动及配置通道所需的一系列配置文件)

sudo ./byfn.sh -m generate

         命令执行成功后,会生成1个Orderer + 4个Peer + 1个CLI的网络结构,4个Peer包含在2个Org中。

         ② 启动网络(确认Hyperledger Fabric网络环境是否能够正常工作)

sudo ./byfn.sh -m up

         命令执行成功后,出现上图类似内容时,则代表网络启动且测试成功~~~

        ③ 关闭网络(防止后期启动网络时造成的冲突错误)

sudo ./byfn.sh -m down

        注意:使用byfn.sh脚本关闭网络后,将关闭容器,且删除加密文件,并从Docker Registry中删除链码图像。

;