乐趣区

Fabric20学习进阶镜像部署网络二

2.1 下载 Fabric 源码

创建源码存放的目录,本文将源码存放在 /usr/local/src/hyperleger 目录中,如读者机器上没有该目录需要执行以下命令手动创建:

sudo mkdir -p /usr/local/src/hyperleger

进入到该目录,使用 git 从 github 上下载 fabric 的源码,并切换到 release-2.0 的分支。

cd /usr/local/src/hyperleger
sudo git clone https://github.com/hyperledger/fabric.git
sudo git checkout release-2.0

在我们刚才下载的源码中,有一个非常重要的脚本 bootstrap.sh,它能帮助我们完成后面的下载工作。

接下来的下载工作有两种方式实现:

(1) 运行 bootstrap.sh 脚本实现一键下载,但是这种方式由于网络原因导致执行效率不高,可以使用 nohup 和 & 不挂断的运行该脚本;

(2) 手动完成后续下载工作,该方式更灵活,而且便于读者了解搭建 Fabric 平台必要的组件信息。

本节将采用第 2 种方式完成后面的组件下载工作。

2.2 下载 Fabric 的 docker 镜像

本文将以 docker 的形式启动 fabric 平台,因此这里需要下载 fabric 网络各组件的 docker 镜像。

Fabric 的 docker 镜像下载我们这里仍然使用 bootstrap.sh 脚本实现(如果对 docker 操作熟悉的同学也可以直接使用 docker 命令下载),通过脚本参数设置使该脚本只下载 Fabric 的 docker 镜像。执行如下命令:

cd /usr/local/src/hyperleger/fabric/scripts
sudo ./bootstrap.sh 2.0.0 -b -s

查看安装结果,执行命令:

docker images

该下载过程即使设置了阿里云的镜像加速也需要消耗一些时长,镜像下载成功则显示下图中的镜像列表信息。

2.3 下载 Fabric 示例代码

Fabric 的示例代码包含:测试链码、first-network 和 test-network 两个测试网络及其对应的配置文件和启动脚本,非常具有参考意义。本节将启动 first-network 网络。

Fabric 的示例代码使用 git 命令下载。

cd /usr/local/src/hyperleger/fabric/scripts
sudo git clone https://github.com/hyperledger/fabric-samples.git
# 切换版本
sudo git checkout v2.0.0

下载成功后,scripts 目录下将生成一个 fabric-samples 目录,如下图所示:

2.4 下载 Fabric 部署所需的二进制文件

本节所需的二进制文件实际是可以通过编译 fabric 源码获得,bootstrap.sh 则是直接从 github 下载压缩包,无论是编译还是从 github 下载,失败率较高。这里我将提供百度网盘地址,供读者下载,更靠谱一些。

地址:https://pan.baidu.com/s/1pX8Y…,提取码:ba2k

把下载的文件解压到 /usr/local/src/hyperleger/fabric/scripts/fabric-samples 目录中,执行命令:

tar -zxvf hyperledger-fabric-linux-amd64-2.0.0.tar.gz -C /usr/local/src/hyperleger/fabric/scripts/fabric-samples/

解压成功后 fabric-samples 目录将生成 bin 和 config 两个目录,如下图所示:

bin 目录中包含 7 个可执行程序,当 fabric 网络启动时将被调用。

config 目录包含 3 个配置文件,用于对 fabric 网络的配置。

2.5 下载 Fabric-ca 二进制文件

本节所需的二进制文件实际是可以通过编译 fabric 源码获得,bootstrap.sh 则是直接从 github 下载压缩包,无论是编译还是从 github 下载,失败率较高。这里我将提供百度网盘地址,供读者下载,更靠谱一些。

地址:https://pan.baidu.com/s/1pX8Y…,提取码:ba2k

把下载的文件解压到 /usr/local/src/hyperleger/fabric/scripts/fabric-samples 目录中,执行命令:

tar -zxvf hyperledger-fabric-ca-linux-amd64-1.4.6.tar.gz -C /usr/local/src/hyperleger/fabric/scripts/fabric-samples/

解压成功后 bin 目录中将增加 2 个可执行程序,如下图所示:

将上述 bin 目录加入环境变量 PATH 中,否则在部署通道部署代码时会出现错误。

# 设置环境变量
sudo vim /etc/profile
# 将以下内容追加到文件末尾
export FABRIC_SAMPLE=/usr/local/src/hyperleger/fabric/scripts/fabric-samples
export PATH=$GOROOT/bin:$FABRIC_SAMPLE/bin:$PATH
# 使环境变量生效
source /etc/profile

2.6 启动 first-network 网络

启动 first-network 网络,执行如下命令:

cd /usr/local/src/hyperleger/fabric/scripts/fabric-samples/first-network
sudo ./byfn.sh up

Tips:byfn 是 build your first network 的简写。

从脚本执行的日志可以看出,first-network 网络由 10 个容器服务组成,包括:5 个排序节点服务,4 个 peer 节点服务和 1 个 cli 服务。

容器服务启动之后,休眠 15s 构建排序节点服务集群,构建完成之后,开始进行链码打包、安装、实例化、调用测试。

命令执行成功显示结果如下图所示:

查看容器运行情况,执行命令:

docker ps

停止网络,执行命令:

sudo ./byfn.sh down

至此,我们的第一个 fabric 网络就启动了。各位读者如果有时间一定要仔细阅读 byfn.sh 脚本,该脚本实现了启动一个网络,并完成链码调用测试的整个过程。


文章作者:xiaohui249
本文链接:http://javatech.wang/index.ph…
版本所有 ©转载时必须以链接形式注明作者和原始出处

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

退出移动版