Fabric 环境搭建时bootstrap.sh帮我们做了什么?

00 导言

      在上一讲中,我们手把手带着大家一步一步《在Ubuntu 18.04上搭建HyperLedger Fabric 1.2.0 环境》,其中有两个步骤是:下载bootstrap.sh引导脚本和执行该引导脚本。很多朋友执行这两个步骤时可能会有疑问:为什么要下载这个脚本?执行这个脚本的作用是什么?

      别急,接下来我们会深入分析一下这个文件的源码,探个究竟。不过在分析之前,我们先来回顾一下上一讲是怎么下载和执行这个脚本的。

02 如何下载和执行bootstrap.sh脚本

      我们先来看看官方是怎么说的。官方提供的命令如下:

$ curl -sSL http://bit.ly/2ysbOFE | bash -s 1.2.0 1.2.0 0.4.10

      我们来解释一下这条命令:curl -sSL http://bit.ly/2ysbOFE,这条命令是通过请求短链接http://bit.ly/2ysbOFE,该短链接会重定向到真正的目标地址,目标地址会响应我们要的内容,响应的内容就是bootstrap.sh文件里的内容。很不幸的是,上面的短链接已经失效,不过我们已经找到了一个有效的长链接:https://raw.githubusercontent.com/hyperledger/fabric/release-1.2/scripts/bootstrap.sh,用它替换掉短链接就可以了。于是我们得到了下面的命令:

$ curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/release-1.2/scripts/bootstrap.sh | bash -s 1.2.0 1.2.0 0.4.10

      这里要解释一下-sSL的作用,小s指的是沉默模式,表示不输出请求过程的任何信息,只输出最终响应的内容,大S指的是如果有错显示出来,L指的是短链接要进行重定向。

      接下来是一根竖线 |,学过linux的朋友应该都知道,这根竖线表示管道,意思是上一个命令输出的内容,交给下一个命令去执行,这里表示交给bash去执行。

      bash 后面是-s ,-s后面的所有内容将做为参数传给bootstrap.sh。1.2.0 1.2.0 0.4.10这3个对应的是 Fabric, Fabric-ca 和 thirdparty(couchdb, kafka and zookeeper) 这三个模块的版本。如果我们想要安装更早的版本,我们可以修改它们,脚本程序会知道下载对应的版本。

      上面实际上是两条命令通过管道( | )连接在一起执行,实际上我们也可以将它们分开:

$ curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/release-1.2/scripts/bootstrap.sh -o bootstrap.sh
$ chmod 755 bootstrap.sh
$ sudo ./bootstrap.sh 1.2.0 1.2.0 0.4.10

03 bootstrap.sh到底帮我们做了什么?

      bootstrap.sh实际上帮我们作了如下几件事情:

      1. 从github上克隆 hyperledger/fabric-samples并进入该目录,然后检出适当的版本
      2. 在fabric-samples目录下安装特定平台的 Hyperledger Fabric 二进制可执行文件 和配置文件
      3.下载 指定版本的Hyperledger Fabric 的docker镜像

       整个脚本帮我们做了上面这三件事情,bootstrap.sh中对应的代码如下:

    218 if [ "$SAMPLES" == "true" ]; then
    219   echo
    220   echo "Installing hyperledger/fabric-samples repo"
    221   echo
    222   samplesInstall
    223 fi
    224 if [ "$BINARIES" == "true" ]; then
    225   echo
    226   echo "Installing Hyperledger Fabric binaries"
    227   echo
    228   binariesInstall
    229 fi
    230 if [ "$DOCKER" == "true" ]; then
    231   echo
    232   echo "Installing Hyperledger Fabric docker images"
    233   echo
    234   dockerInstall
    235 fi

      其中samplesInstall对应的是克隆fabric-samples,binariesInstall对应的是安装二进制文件,dockerInstall对应的是下载docker镜像。

接下来我们分析一下它们对应的代码部分。

04 第一件事:克隆fabric-samples并检出适当的版本

       对应bootstrap.sh中的samplesInstall函数,代码如下:

56 samplesInstall</
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值