zoukankan      html  css  js  c++  java
  • Hyperledger Fabric 安装

      前一篇已经准备好了运行环境,本篇将介绍Fabric的安装以及测试网络环境

      Fabric的安装

      HyperFabric安装大致可以分成两种,

        第一:使用自带在脚本安装,可以下载fabric-sample和二进制文件到操作系统,简化安装过程。

        第二:以源码在方式进行本地编译安装,此方式相对第一种比较复杂,需手动编译生存相应工具。

      本次将以第一种方式进行讲解,后续将以专门在篇幅介绍第二种方式进行安装。

      第一种安装方式步骤如下:

        1. 创建目录:单独创建目录,方便后续管理

          mkdir hyfa && cd hyfa

        2. 新建bootstrap.sh并添加内容

          vim bootstrap.sh

          将最新hyperledger-fabric项目中sripts下bootstrap.sh内容拷贝到该文件,或者直接下载文件进行覆盖均可。

          https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.sh

        3.修改权限

          chmod +x bootstrap.sh

        4.执行脚本文件

          sudo ./bootstrap.sh  1.4.0 (如果执行失败,可再次执行该命令,已下载的不会重新下载)

        5.添加环境变量

          export PATH=$HOME/hyfa/fabric-samples/bin:$PATH

        说明;执行bootstrap.sh是做了什么:

          1)如果当前目录没有hyperledger/fabric-samples则从github.com克隆hyperledger/fabric-samples存储库,并检出对应指定版本标签

          2)将指定版本在hyperledger fabric平台特定二进制文件和配置文件安装带fabric-samples存储库的根目录中

          3)下载指定版本在hyperledger fabric docker镜像,并标记为latest

       测试Hyperledger Fabric网络环境

        本次使用自动化脚本byfn.sh进行测试,byfn.sh自动化脚本文件为各种hyperledger fabric网络实体生存所有在证书肯密钥,并且可以实现引导服务启动及配置通道所需在一系列配置文件,具体操作步骤如下:

        cd   $home/hyfa/fabric-samples/first-network  

        sudo  ./byfn.sh -m generate (生成1个order+4个peer+1个CLI网络结构, 4个Peer包含在2个org中)

        sudo   ./byfn.sh -m up  (启动网络)

        sudo   ./byfn.sh -m down  (关闭网络,将关闭容器,且删除加密文件,从东docker registry中删除链码图像)

        在网络不使用时,请无比关闭网络,防止后期启动网络时引起冲突在错误

        启动成功后信息提示如下:

        

     

    安装问题总结:

      在启动时遇到了一个错误,提示:

        

    Error: error getting endorser client for channel: endorser client failed to connect to peer0.org1.example.com:7051: failed to create new connection: context deadline exceeded
    !!!!!!!!!!!!!!! After 5 attempts, peer0.org1 has failed to join channel ‘mychannel’ !!!!!!!!!!!!!!!!
    ========= ERROR !!! FAILED to execute End-2-End Scenario ===========
    
    ERROR !!!! Test failed

    解决方案:

    在 docker-compose-cli.yaml 中 cli 容器下,添加环境变量 GODEBUG=netdns=go,在 base/peer-base.yaml 中 peer-base 容器下,添加环境变量 GODEBUG=netdns=go

    参考文献: https://yq.aliyun.com/articles/238940

      environment:
          - GODEBUG=netdns=go
     

    解决方法二:如果以上方法不能解决问题,尝试修改 /etc/resolv.conf 文件:

    注释掉 options 的行,我修改后的文件如下,不同系统有些不同:


    以上为测试网络在安装,后续将介绍Fabric的架构,敬请期待!

  • 相关阅读:
    现代软件工程 第八章 【需求分析】练习与讨论
    现代软件工程 第七章 【MSF】练习与讨论
    现代软件工程 第六章 【敏捷流程】练习与讨论
    PPT演说技巧
    Mac上最强大的截图软件-xnip
    什么是函数倾轧(name mangling)?
    编程--在线提交系统(Online Judge)
    C++ 的多继承与虚继承
    C++ 中 string和char* 的区别
    编程语言中优先级与结合性
  • 原文地址:https://www.cnblogs.com/chaichai/p/11755994.html
Copyright © 2011-2022 走看看