为什么要分析安装脚本
对于初学者,很多文档都是直接运行该安装脚本,就可以自动化部署Fabric程序,虽然表面上针对小白比较友好,不需要自己下载源码进行编译,但是很多资源都是国外的,下载速度缓慢我也是饱受折磨。下面分析一下安装脚本,有助于我们更加深入理解Fabric架构,同时分析安装逻辑。修改脚本方便部署。
安装脚本在哪里
我们以fabric1.4.8为例进行分析。相关github上面的链接如下。我们发现官方脚本不好用,下载非常缓慢,
github.com/hyperledger…
安装逻辑是什么
下面是安装脚本的基本逻辑框架代码。接下来我们一点点分析。
1 | sh复制代码#!/bin/bash |
和传统编程语言一样,此脚本首先定义了一下全局变量,同时通过if判断逻辑,执行相关函数,进行环境的部署,想关源码的下载。
逐一进行分析
首先看的肯定是帮助命令。
1 | bash复制代码printHelp() { |
我们可以看出,此脚本主要执行三部分功能,第一下载docker镜像,第二下载fabric-samples官方案例(为了更加方便的了解fabric构建项目),第三下载平台二进制文件。并且可以指定下载的版本。例如:1.4.8。同时可以参数选择不下载那一部分。代码最前面导入了相关变量export VERSION=1.4.8
、export CA_VERSION=1.4.7
、export THIRDPARTY_IMAGE_VERSION=0.4.21
。默认使用的是这些参数。
首先是逻辑框架
前面默认给出的变量值都是true,通过判断参数值,执行相关功能。samplesInstall
、binariesInstall
,dockerInstall
1 | bash复制代码if [ "$SAMPLES" == "true" ]; then |
dockerInstall
我们可以看到下载docker镜像,主要执行dockerFabricPull ${FABRIC_TAG}
dockerCaPull ${CA_TAG}
dockerThirdPartyImagesPull ${THIRDPARTY_TAG}
源文件无需更改,就可以执行。
这部分我们可以配置正确的docker国内加速源进行加速。不做过多的介绍。
1 | bash复制代码dockerInstall() { |
binariesInstall
这里面需要修改的地方是binaryDownload
函数,可以看出官方给出的下载链接为国外地址并且已经不在维护,也就是执行此脚本最缓慢的原因之一。nexus.hyperledger.org/content/rep…
此链接已经不在维护,所以要更换。如果想更快,使用hub.fastgit.org 加速github网站。进行下载
1 | bash复制代码binariesInstall() { |
samplesInstall
更换国内源,使用码云的镜像,进行加速下载fabric-samples。
1 | bash复制代码samplesInstall() { |
将上面修改完成之后完整的bootstrap.sh代码。
bootstrap.sh
通过替换和修改源,最终实现加速效果。如果不想了解上述过程,就直接复制粘贴下面代码即可。
1 | bash复制代码#!/bin/bash |
本文转载自: 掘金