热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【推荐】HyperLedgerFabric环境搭建、测试及注意事项[详尽指导][亲测有效]

系统:Ubuntu16.04LTS一、环境准备1.1Ubuntu下安装crulsudoaptinstallcurlcurl是利用URL语法在命令行方式下工作

系统: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                     6acf31e2d9a4        7 weeks ago         1.43GB
hyperledger/fabric-orderer                   4baf7789a8ec        7 weeks ago         152MB
hyperledger/fabric-peer                      82c262e65984        7 weeks ago         159MB
hyperledger/fabric-couchdb                   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/


 


推荐阅读
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • linux下编译安装lnmp
    2019独角兽企业重金招聘Python工程师标准#######################安装依赖#####################安装必要的包:y ... [详细]
  • mysql5.6 多实例 主从安装_MySQL5.6一主多从的半同步复制实例
    半同步简介:在默认情况下,MySQL的复制是异步的,这意味着主服务器及其从服务器是独立的。异步复制可以提供最佳的性能,因为主服务器在将更新 ... [详细]
  • 为PHP5安装curl和gd
    2019独角兽企业重金招聘Python工程师标准一、查看php5是否安装了curl:1在web服务器目录(Ubuntu下通常为varwww ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • 1.脚本功能1)自动替换jar包中的配置文件。2)自动备份老版本的Jar包3)自动判断是初次启动还是更新服务2.脚本准备进入ho ... [详细]
author-avatar
很想爱到极限
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有