zoukankan      html  css  js  c++  java
  • 【推荐】 HyperLedger Fabric环境搭建、测试及注意事项 [详尽指导] [亲测有效]

    系统:Ubuntu16.04 LTS

    一、环境准备

    1.1 Ubuntu下安装 crul

    sudo apt install curl

    curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。

    作用:文件传输

    1.2 安装 Docker and Docker Compose

      Docker-compose是支持通过模板脚本批量创建Docker容器的一个组件。

    • 前期准备:

      由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:

    $ sudo apt-get remove docker-engine docker-ce docker.io

      更新apt包索引:

    $ sudo apt-get update

    
    
    • 配置CE环境(Docker CE(Community Edition),即 Docker社区版)
    1. 配置apt允许以 HTTPS方式拉取镜像安装:

      $ sudo apt-get install 
          apt-transport-https 
          ca-certificates 
          curl 
          software-properties-common

       

    2. 添加Docker官方 GPG key:

      $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

       

      校验 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88.

      $ sudo apt-key fingerprint 0EBFCD88

       

    3. 利用如下命令配置稳定镜像
      $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

       

    •  安装Docker
    1. 更新apt包索引
      $ sudo apt-get update
    2. 安装最新版Docker
      sudo apt-get install docker-ce

       s

    3. 验证Docker是否已经安装成功
      $ sudo docker run hello-world

        此命令会下载一个测试镜像,并且启动一个container来运行该镜像,打印一些信息后退出。   

         

        可参考官方教程:https://docs.docker.com/install/linux/docker-ce/ubuntu/#supported-storage-drivers

      至此,Docker在Ubuntu上已经安装成功!

    1.3 安装GO和NodeJS

    1.3.1 GO

      安装go语言包:

    $ curl -O https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz

       

      下载完成后,解压至/usr/local 目录下:

    $ sudo tar -C /usr/local -xzf go1.10.1.linux-amd64.tar.gz

      配置go语言环境变量:

      进入.bashrc 配置环境变量:

    $ sudo vim ~/.bashrc
    或者是:
    $ sudo vim /etc/profile

      在最后面加入如下代码:

    export GOPATH=/usr/local/GO
    export PATH=$GOPATH/bin:$PATH

      

         保存,退出。

      使环境变量生效:

    $ source ~/.bashrc
    或者是:
    $ source /etc/profile

      

      查看版本号后没问题,说明配置成功。

    1.3.2 node.js

     下载node.js

    $ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash 

     安装node.js

    $ sudo apt-get install -y nodejs

      

      检查版本:

      

    二、Fabric 安装

    2.1 Fabric 源码下载

    首先建立对应的目录,然后进入该目录,使用Git命令下载源码:
    mkdir -p ~/go/src/github.com/hyperledger 
    cd ~/go/src/github.com/hyperledger 
    git clone https://github.com/hyperledger/fabric.git

      

      由于Fabric一直在更新,所有我们并不需要最新最新的源码,需要切换到v1.0.0版本的源码即可:

    cd ~/go/src/github.com/hyperledger/fabric
    git checkout -b v1.0.0

      

      我们可以看到fabric源码下有许多文件。我们进入/examples/e2e_cli文件夹下。

       

      通过如下命令,下载镜像:

    sudo download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

       下载完后,通过 docker images 查看版本即可。

      至此fabric环境已经搭建完成。

    三、大坑集锦

    3.1 权限问题

      出现以下问题:

    Warning: failed to get default registry endpoint from daemon (Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.38/info: dial unix /var/run/docker.sock: connect: permission denied). Using system default: https://index.docker.io/v1/
    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/images/create?fromImage=hyperledger%2Ffabric-peer&tag=latest: dial unix /var/run/docker.sock: connect: permission denied
    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/images/hyperledger/fabric-peer:latest/tag?repo=hyperledger%2Ffabric-peer&tag=latest: dial unix /var/run/docker.sock: connect: permission denied

      

      当在查询docker 版本时,也会出现类似错误:

    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.38/version: dial unix /var/run/docker.sock: connect: permission denied

      

      这主要就是未获得root权限,所造成的错误。

      解决方法:

      授予root权限即可。

     sudo ./download-dockerimages.sh 

    3.2 版本问题

      如果直接获取最新版本,最后会出现如下问题:

    Error response from daemon: manifest for hyperledger/fabric-javaenv:latest not found

      

      

       原因:主要是因为一些组件还没有更新到最新版本,只有几个组建有最新版本。所以下载组件时要加上版本号。为了学习资料较全的v1.0.0,故我下载的是1.0.0版本。

      

    sudo ./download-dockerimages.sh  -c x86_64-1.0.0 -f x86_64-1.0.0

      

      

    ===> List out hyperledger docker images
    hyperledger/fabric-ccenv       <none>              6acf31e2d9a4        7 weeks ago         1.43GB
    hyperledger/fabric-orderer     <none>              4baf7789a8ec        7 weeks ago         152MB
    hyperledger/fabric-peer        <none>              82c262e65984        7 weeks ago         159MB
    hyperledger/fabric-couchdb     <none>              3092eca241fc        2 months ago        1.61GB
    hyperledger/fabric-tools       latest              0403fd1c72c7        13 months ago       1.32GB
    hyperledger/fabric-tools       x86_64-1.0.0        0403fd1c72c7        13 months ago       1.32GB
    hyperledger/fabric-couchdb     latest              2fbdbf3ab945        13 months ago       1.48GB
    hyperledger/fabric-couchdb     x86_64-1.0.0        2fbdbf3ab945        13 months ago       1.48GB
    hyperledger/fabric-kafka       latest              dbd3f94de4b5        13 months ago       1.3GB
    hyperledger/fabric-kafka       x86_64-1.0.0        dbd3f94de4b5        13 months ago       1.3GB
    hyperledger/fabric-zookeeper   latest              e545dbf1c6af        13 months ago       1.31GB
    hyperledger/fabric-zookeeper   x86_64-1.0.0        e545dbf1c6af        13 months ago       1.31GB
    hyperledger/fabric-orderer     latest              e317ca5638ba        13 months ago       179MB
    hyperledger/fabric-orderer     x86_64-1.0.0        e317ca5638ba        13 months ago       179MB
    hyperledger/fabric-peer        latest              6830dcd7b9b5        13 months ago       182MB
    hyperledger/fabric-peer        x86_64-1.0.0        6830dcd7b9b5        13 months ago       182MB
    hyperledger/fabric-javaenv     latest              8948126f0935        13 months ago       1.42GB
    hyperledger/fabric-javaenv     x86_64-1.0.0        8948126f0935        13 months ago       1.42GB
    hyperledger/fabric-ccenv       latest              7182c260a5ca        13 months ago       1.29GB
    hyperledger/fabric-ccenv       x86_64-1.0.0        7182c260a5ca        13 months ago       1.29GB
    hyperledger/fabric-ca          latest              a15c59ecda5b        13 months ago       238MB
    hyperledger/fabric-ca          x86_64-1.0.0        a15c59ecda5b        13 months ago       238MB

       

    3.3 更改获取的源

      如果是国外的源会很慢很慢,需要保证apt source是国内的。具体做法:

      方法一:

    sudo vi /etc/apt/sources.list

      打开这个apt源列表,如果其中看到是http://us.xxxxxx之类的,那么就是外国的,如果看到是http://cn.xxxxx之类的,那么就不用换的。我的是美国的源,所以需要做一下批量的替换。在命令模式下,输入:

    :%s/us./cn./g

      就可以把所有的us.改为cn.了。然后输入:wq即可保存退出。

      方法二:

      界面操作,后续补充。

    3.4 测试e2e网络时,ERR 001:

      

      

      最常见的就是ERRO 001 cannot run peer because error when setting up MSP from directory /opt/gopath/src/......。出现这个问题主要是由于镜像没下全以及缺少ltdl.h文件的原因,当然还要确定你的fabric版本与你下的镜像版本一致,我使用的是v1.0.0。

    解决方式如下:

    1.确定fabric版本与你下的镜像版本一致(推荐使用v1.0.0):

    在fabric目录下输入git checkout v1.0.0

    通过输入docker images查看你已下载的镜像。

    不正确的话则在fabric目录下输入git clone https://gerrit.hyperledger.org/r/fabric -b v1.0.0

    确保你下的版本是v1.0.0

    2.erro 001的错误往往是由无法正确生成公私钥和证书的原因,测试如下:

    参考资料:

    环境配置:

      1.https://blog.csdn.net/agecntao/article/details/78580746

      2.https://blog.csdn.net/xxxslinyue/article/details/79396618

      3.https://blog.csdn.net/sun13465816527/article/details/80393119

      4.https://blog.csdn.net/tiandiwuya/article/details/78771475

      6.https://blog.csdn.net/sinat_36742186/article/details/78510191

      7.http://www.netkiller.cn/journal/hyperledger.html

    错误解决:

      1.https://blog.csdn.net/mx1222/article/details/80888830 不太推荐


    【时间仓促,如有错误,欢迎指正! ||   欢迎一起学习交流, 请在评论区留言!

    【本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。】

    【转载请联系博主,同意后务必注明出处:http://www.cnblogs.com/X-knight/


  • 相关阅读:
    nginx的安装及简单负载均衡配置
    memcached 的配置及 spymemcached 客户端简单使用
    我的github地址
    学习3ds max插件开发过程中的一些小结
    编译opengl编程指南第八版示例代码通过
    lua执行字节码的过程介绍
    lua解析赋值类型代码的过程
    lua解析脚本过程中的关键数据结构介绍
    lua解释执行脚本流程
    lua中的string类型
  • 原文地址:https://www.cnblogs.com/X-knight/p/9511491.html
Copyright © 2011-2022 走看看