在win10系统的台式机上安装配置Hyperledger Fabric环境

  • 安装Ubuntu 16.04 双系统

    镜像下载地址:https://www.ubuntu.com/download/desktop

    安装教程:http://www.cnblogs.com/Duane/p/5424218.html

    注意:这里设置了/boot分区并作为启动引导器以保留win10系统的引导,注意分配大一点的空间(200M不够用),否则会导致apt-get无法使用等等一系列问题。

  • cURL

    sudo apt-get install curl
  • Git

    sudo apt-get install git
  • Node.js

    curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
    sudo apt-get install -y nodejs
  • Docker

    这里是根据官方文档https://docs.docker.com/install/linux/docker-ce/ubuntu/推荐的通过仓库下载的方法,注意用的源是Ubuntu16.04自带的source.list,如果更改了源很可能会安装失败。

    首先更新apt包索引:

    sudo apt-get update

    安装使用仓库所需要的相关包:

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

    安装GPG key:

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

    验证key的fingerprint是否为9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88:

        apt-key fingerprint 0EBFCD88

    安装仓库

    sudo add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable"

    再次更新apt-get仓库信息并下载Docker CE

    sudo apt-get update
    sudo apt-get install docker-ce

    下载成功,为了方便,可以赋给当前用户(username)以docker的权限。(这一步需要切换到root用户再切换回来才能生效,或者注销)

    sudo usermod -aG docker username
  • Docker Compose

    安装前需要安装Python-pip。执行命令从github下载,并增加执行权限:

    curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose

    如果速度缓慢则从DaoClound下载

    curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
    sudo mv ~/docker-compose /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose
  • Go

    apt-get下载版本太旧,所以使用wget从官网下载最新版本,保存路径为/usr/local

    sudo wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
    sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz

    安装后需要配置环境变量:

    vim ~/.profile

    添加以下内容,其中GOROOT是安装路径,GOPATH是工作路径:

    export GOROOT=/usr/local/go
    export PATH=$PATH:$GOROOT/bin
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOPATH/bin

    将go的目录GOPATH放在用户目录~下,所以需要创建go目录:

    cd ~
    mkdir go
  • fabric源码

    首先需要创建对应的目录,然后在其中克隆下fabric的源码。这里注意,fabric源码中的一些工具需要通过Go语言编译,所以源码要克隆到GOPATH路径下,否则运行例子的时候会出现错误。

    mkdir -p ~/go/src/github.com/hyperledger
    cd ~/go/src/github.com/hyperledger
    git clone https://github.com/hyperledger/fabric.git

    可以将代码切换到1.0.0版本

    cd fabric
    git checkout v1.0.0
  • fabric镜像下载

    执行项目中的脚本即可完成docker镜像的批量下载,参数可设置需要下载的镜像版本

    cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
    source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

    如果速度缓慢,可使用DaoCloud加速器:

    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://6e4616d7.m.daocloud.io
  • 测试Fabric网络

    进入到e2e_cli目录后运行启动网络的脚本:

    ./network_setup.sh up

    如果出现错误显示缺少ltdl.h,则需要执行:

    sudo apt install libtool libltdl-dev

    该脚本执行后完成了以下任务:

    • 编译工具cryptogen并运行,基于crypto-config.yaml配置文件生成网络成员的密钥和证书;

    • 通过configtxgen工具,基于configtx.yaml配置文件生成创世区块和channel配置交易;

    • 基于docker-compose-cli.yaml配置文件启动容器,包括4Peer+1Orderer+1CLI;

    • CLI容器启动时会自动运行其中脚本scripts/script.sh,完成创建通道,将节点加入通道,安装Chaincode,实例化和执行相关Chaincode的任务。

    正常运行后关闭网络:

        ./network_setup.sh down

    注意:如果出现报错(比如在创建channel的过程中),需要在fabric目录下执行make clean,此时会删除清除编译信息并删除所有镜像,则需要从下载镜像步骤开始一步步执行,最终成功。

Ubuntu下配置Hyperledger Fabric环境的更多相关文章

  1. Ubuntu下搭建Hyperledger Fabric v1.0环境

      多次尝试才正常启动了Fabric,如遇到各种莫名错误,请参考如下一步步严格安装,特别用户权限需要注意. 一.安装Ubuntu16 虚拟机或双系统,虚拟机有VirtualBox或者VMware,Ub ...

  2. 在ubuntu下配置android开发环境

    http://developer.android.com/sdk/installing/index.html 基本上上面官网的链接可以解决所有问题,但是具体在安装过程中还是有一些坑. 说说具体流程 1 ...

  3. Ubuntu下配置Scheme开发环境

    MIT-Scheme环境 http://www.gnu.org/software/mit-scheme/ 在官网下载安装包,编译安装即可,期间会提示找不到m4这个库,安装即可 Scheme自带的交互环 ...

  4. 摆脱命令行,Ubuntu下配置Android开发环境

    作者:宋志辉 微博:weibo.com/askzhihui/ 安装所需工具 一.新立得 新立得(Synaptic)是Debian和Ubuntu Linux操作系统的包管理工具apt的图形化前端. 它结 ...

  5. 用 xampp 在ubuntu 下配置php 运行环境 lampp

      在linux下搭建php的运行环境,可以分别安装apache.mysql .php .phpmyadmin,也可以安装xampp(apache.mysql .php .phpmyadmin)集成包 ...

  6. 转[开发环境配置]在Ubuntu下配置舒服的Python开发环境

    在Ubuntu下配置舒服的Python开发环境 Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的 ...

  7. Ubuntu下配置C/C++开发环境

    在 Ubuntu 下配置 C/C++ 开发环境 转自:白巴的临时空间 Submitted by 白巴 on 2009-04-27 19:52:12. 学习笔记 虽然 Ubuntu 的版本已经是9.04 ...

  8. (4)Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤

    Ubuntu下配置opencv3.1.0开发环境 1.最近工作上用到在Ubuntu下基于QT和opencv库开发应用软件(计算机视觉处理方面),特把opencv的配置过程详细记录,以供分享 2.步骤说 ...

  9. Hyperledger Fabric 环境搭建(2)

    上一篇https://www.cnblogs.com/xdyixia/p/11738096.html 介绍了Hyperledger Fabric环境中各种软件安装和源码编译,这一篇介绍快速运行一个简单 ...

随机推荐

  1. javascript SDK开发之webpack打包支持对象展开运算符...

    场景:使用了对象的展开运算符,webpack打包报错,错误如下:Parsing error: Unexpected token - 1.安装依赖 npm install babel-preset-st ...

  2. Netty随记之ChannelInboundHandlerAdapter、SimpleChannelInboundHandler

    ChannelInboundHandlerAdapter ChannelInboundHandlerAdapter是ChannelInboundHandler的一个简单实现,默认情况下不会做任何处理, ...

  3. python 多进程处理 multiprocessing模块

    前提: 有时候一个用一个进程处理一个列表中的每个元素(每个元素要传递到一个函数中进行处理),这个时候就要用多进程处理 1 现场案例: 我有一个[ip1,ip2,ip3,.......]这样的列表,我要 ...

  4. 题解 AT4867 【[ABC155D] Pairs】

    题目 两次二分 首先对ans进行二分,在\([-10^{18},10^{18}]\)之间 考虑怎么check 对于每个ans,枚举每个\(a_i\),二分查找有几个\(a_j\),使得\(a_i\ti ...

  5. Unity 游戏框架搭建 2019 (四十二、四十三) MonoBehaviour 简化 & 定时功能

    MonoBehaviour 简化 在前两篇,我们完成了第九个示例.为了完善第九个示例,我们复习了类的继承,又学习了泛型和 params 关键字. 我们已经接触了类的继承了.接触继承之前,把类仅仅当做是 ...

  6. tomcat 在linux下启动时找不到JDK

    方案一.  修改bashrc (转载: https://www.cnblogs.com/hongzg1982/articles/2101792.html)  $ vim ~/.bashrc #加入JA ...

  7. Python网络数据采集- 创建爬虫

    1. 初见网络爬虫 1.1 网络连接 输出某个网页的全部 HTML 代码. urllib 是 Python 的标准库(就是说你不用额外安装就可以运行这个例子),包含了从网络请求数据,处理 cookie ...

  8. E. Yet Another Task with Queens(分类思想)

    \(\color{Red}{描述}\) \(在n*n的棋盘上有m个K皇后,每个皇后可能被来自8个方向的其他皇后攻击\) \(每个皇后只可能被(0-8)只皇后攻击,分别求出被(0-8)只皇后攻击的皇后数 ...

  9. Spring 框架介绍 [Spring 优点][Spring 应用领域][体系结构][目录结构][基础 jar 包]

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 目录 ...

  10. 动态代理学习(二)JDK动态代理源码分析

    上篇文章我们学习了如何自己实现一个动态代理,这篇文章我们从源码角度来分析下JDK的动态代理 先看一个Demo: public class MyInvocationHandler implements ...