多次尝试才正常启动了Fabric,如遇到各种莫名错误,请参考如下一步步严格安装,特别用户权限需要注意。

一、安装Ubuntu16

虚拟机或双系统,虚拟机有VirtualBox或者VMware,Ubuntu 16.04镜像安装好。
打开系统设置,选择软件和更新 , 然后在下载自:中选择aliyun
 

二、安装基础工具

注意操作用户是自建用户,不是root,特别一些命令涉及用户目录的地方要特别注意

首先安装一些常用工具

  1.  
    sudo apt-get update
  2.  
    sudo apt-get install ssh
  3.  
    sudo apt-get install git
  4.  
    sudo apt-get install python-pip

go需要单独安装下

  1.  
    wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
  2.  
    sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
  3.  
    gedit /etc/profile

编辑全局变量环境,添加一下profile

  1.  
    export PATH=$PATH:/usr/local/go/bin
  2.  
    export GOROOT=/usr/local/go
  3.  
    export GOPATH=/home/<span style="color:#ff0000;">用户名</span>/go
  4.  
    export PATH=$PATH:/home/<span style="color:#ff0000;">用户名</span>/go/bin

生效profile,建立go目录

  1.  
    source /etc/profile
  2.  
    mkdir /home/<spanstyle="color:#ff0000;">用户名</span>/go

此时酌情重启下系统

三、安装docker  基于aliyun

  1.  
    sudo apt-get update
  2.  
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
  3.  
    # step 2: 安装GPG证书
  4.  
    curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
  5.  
    # Step 3: 写入软件源信息
  6.  
    sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
  7.  
    # Step 4: 更新并安装 Docker-CE
  8.  
    sudo apt-get -y update
  9.  
    sudo apt-get -y install docker-ce
 
 安装docker后还需要添加用户到docker组
sudo usermod -aG docker XXX 
注销并重新登录,然后添加阿里云的Docker Hub镜像: 
建立docker文件 
  1.  
    sudo mkdir -p /etc/docker
  2.  
    sudo gedit /etc/docker/daemon.json
{
"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
  1.  
    sudo systemctl daemon-reload
  2.  
    sudo systemctl restart docker
最后 docker version 看下安装结果
 

四、安装 Docker-Compose  从DaoClound

  1.  
    curl -L https://get.daocloud.io/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  2.  
    chmod +x /usr/local/bin/docker-compose
  3.  
     
  4.  
    docker-compose version
 
 

五.Fabric源码下载

首先建好存放源码的文件夹(也可手动建)路径如下: 
  1.  
    mkdir –p ~/go/src/github.com/hyperledger
  2.  
    cd ~/go/src/github.com/hyperledger
  3.  
    git clone https://github.com/hyperledger/fabric.git
由于我们只是在搭建环境。不需要最新的代码,所以只需要切换到v1.0.0大版本就行。
  1.  
    cd ~/go/src/github.com/hyperledger/fabric 进入fabric目录
  2.  
    git checkout v1.0.0

六. Fabric Docker镜像的下载

 
  1.  
    cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
  2.  
    source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
  3.  
     
  4.  
    docker images


 

 
 

七、启动Fabric网络并完成ChainCode的测试

现在还停留在e2e_cli文件中(如果没有先进入),这里提供了启动、关闭Fabric网络的自动化脚本。我们要启动Fabric网络,并自动运行Example02 ChainCode的测试,执行一个命令: 
./network_setup.sh up
这个指令具体进行了如下操作: 
  1. 编译生成Fabric公私钥、证书的程序,程序在目录:fabric/release/linux-amd64/bin
  2. 基于configtx.yaml生成创世区块和通道相关信息,并保存在channel-artifacts文件夹。
  3. 基于crypto-config.yaml生成公私钥和证书信息,并保存在crypto-config文件夹中。
  4. 基于docker-compose-cli.yaml启动1Orderer+4Peer+1CLI的Fabric容器。
  5. 在CLI启动的时候,会运行scripts/script.sh文件,这个脚本文件包含了创建Channel,加入Channel,安装Example02,运行Example02等功能。

出现则表示网络运行成功,ctrl+c退出

八、手动测试Fabric网络

这里有官方提供的小例子,在官方例子中,channel名字是mychannel,链码的名字是mycc。 
首先进入CLI,然后重新打开一个命令行窗口,输入: 
docker exec -it cli bash 
这时用户为root@748dafdc900b,在/opt/gopath/src/github.com/hyperledger/fabric/peer目录下,运行以下命令可以查询a账户的余额: 
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}' 

方框内可以看见余额为:90

下面我们可以进行转账操作,操作为invoke ,由a转b 50:

peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","50"]}'

现在转账完毕, 我们试一试再查询一下a账户的余额,重复之前的查询指令,结果为: 

结果正确,a的余额只有40了。 
最后,我们需要关闭Fabric,这里先使用exit命令退出cli容器。 
exit 
然后类似于启动指令: 
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli 
./network_setup.sh down

最后,我们整个Fabric的环境已经测试完毕!!


Ubuntu无法解析域名的解决办法:

Could not resolve host: download.docker.com

修改文件/etc/resolvconf/resolv.conf.d/base

vim /etc/resolvconf/resolv.conf.d/base
# 在该文件加上一行:
nameserver 8.8.8.8
resolvconf -u   #执行

安装过程中如果出现网络连接错误,可以将软件源改成阿里云镜像

# 编辑/etc/apt/sources.list文件, 在文件最前面添加以下条目(适用于Ubuntu18.04)

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
#(适用于Ubuntu16.04)

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse 

运行sudo apt install curl 安装curl,此时如果出现如下错误:

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

  解决方案:

ps -A |grep apt # 查看进程号
sudo kill -9 [processnumber] #结束进程
sudo apt install curl

 如果出现路径权限问题,需要将路径所有者改成自建用户,例如:

sudo chown -R dsd:dsd ./bin/  # 将目录所有者改为自建用户 

如果提示已经有容器在运行,发生冲突,则应停止正在运行的docker进程:

docker ps -qa | xargs docker stop
docker ps -qa | xargs docker rm
# 或者:
./ network_setup.sh down

  Make 编译出错如下

make configtxgen configtxlator cryptogen
Makefile:93: *** "No go in PATH: Check dependencies". Stop.

  解决方案:重新source环境变量,如:

source /etc/profile
# 或者:
source ~/.bashrc

  


教程参考以下:

http://blog.csdn.net/so5418418/article/details/78355868

https://yq.aliyun.com/articles/110806

http://get.daocloud.io/

Ubuntu下搭建Hyperledger Fabric v1.0环境 2018快速国内源

2018年03月09日 21:16:36

阅读数:476
多次尝试才正常启动了Fabric,如遇到各种莫名错误,请参考如下一步步严格安装,特别用户权限需要注意。

一、安装Ubuntu16

虚拟机或双系统,虚拟机有VirtualBox或者VMware,Ubuntu 16.04镜像安装好。
打开系统设置,选择软件和更新 , 然后在下载自:中选择aliyun
 

二、安装基础工具

注意操作用户是自建用户,不是root,特别一些命令涉及用户目录的地方要特别注意

首先安装一些常用工具

  1.  
    sudo apt-get update
  2.  
    sudo apt-get install ssh
  3.  
    sudo apt-get install git
  4.  
    sudo apt-get install python-pip

go需要单独安装下

  1.  
    wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
  2.  
    sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
  3.  
    gedit /etc/profile

编辑全局变量环境,添加一下profile

  1.  
    export PATH=$PATH:/usr/local/go/bin
  2.  
    export GOROOT=/usr/local/go
  3.  
    export GOPATH=/home/<span style="color:#ff0000;">用户名</span>/go
  4.  
    export PATH=$PATH:/home/<span style="color:#ff0000;">用户名</span>/go/bin

生效profile,建立go目录

  1.  
    source /etc/profile
  2.  
    mkdir /home/<spanstyle="color:#ff0000;">用户名</span>/go

此时酌情重启下系统

三、安装docker  基于aliyun

  1.  
    sudo apt-get update
  2.  
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
  3.  
    # step 2: 安装GPG证书
  4.  
    curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
  5.  
    # Step 3: 写入软件源信息
  6.  
    sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
  7.  
    # Step 4: 更新并安装 Docker-CE
  8.  
    sudo apt-get -y update
  9.  
    sudo apt-get -y install docker-ce
 
 安装docker后还需要添加用户到docker组
sudo usermod -aG docker XXX 
注销并重新登录,然后添加阿里云的Docker Hub镜像: 
建立docker文件 
  1.  
    sudo mkdir -p /etc/docker
  2.  
    sudo gedit /etc/docker/daemon.json
{
"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
  1.  
    sudo systemctl daemon-reload
  2.  
    sudo systemctl restart docker
最后 docker version 看下安装结果
 

四、安装 Docker-Compose  从DaoClound

  1.  
    curl -L https://get.daocloud.io/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  2.  
    chmod +x /usr/local/bin/docker-compose
  3.  
     
  4.  
    docker-compose version
 
 

五.Fabric源码下载

首先建好存放源码的文件夹(也可手动建)路径如下: 
  1.  
    mkdir –p ~/go/src/github.com/hyperledger
  2.  
    cd ~/go/src/github.com/hyperledger
  3.  
    git clone https://github.com/hyperledger/fabric.git
由于我们只是在搭建环境。不需要最新的代码,所以只需要切换到v1.0.0大版本就行。
  1.  
    cd ~/go/src/github.com/hyperledger/fabric 进入fabric目录
  2.  
    git checkout v1.0.0

六. Fabric Docker镜像的下载

 
  1.  
    cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
  2.  
    source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
  3.  
     
  4.  
    docker images


 

 
 

七、启动Fabric网络并完成ChainCode的测试

现在还停留在e2e_cli文件中(如果没有先进入),这里提供了启动、关闭Fabric网络的自动化脚本。我们要启动Fabric网络,并自动运行Example02 ChainCode的测试,执行一个命令: 
./network_setup.sh up
这个指令具体进行了如下操作: 
  1. 编译生成Fabric公私钥、证书的程序,程序在目录:fabric/release/linux-amd64/bin
  2. 基于configtx.yaml生成创世区块和通道相关信息,并保存在channel-artifacts文件夹。
  3. 基于crypto-config.yaml生成公私钥和证书信息,并保存在crypto-config文件夹中。
  4. 基于docker-compose-cli.yaml启动1Orderer+4Peer+1CLI的Fabric容器。
  5. 在CLI启动的时候,会运行scripts/script.sh文件,这个脚本文件包含了创建Channel,加入Channel,安装Example02,运行Example02等功能。

出现则表示网络运行成功,ctrl+c退出

八、手动测试Fabric网络

这里有官方提供的小例子,在官方例子中,channel名字是mychannel,链码的名字是mycc。 
首先进入CLI,然后重新打开一个命令行窗口,输入: 
docker exec -it cli bash 
这时用户为root@748dafdc900b,在/opt/gopath/src/github.com/hyperledger/fabric/peer目录下,运行以下命令可以查询a账户的余额: 
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}' 

方框内可以看见余额为:90

下面我们可以进行转账操作,操作为invoke ,由a转b 50:

peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","50"]}'

现在转账完毕, 我们试一试再查询一下a账户的余额,重复之前的查询指令,结果为: 

结果正确,a的余额只有40了。 
最后,我们需要关闭Fabric,这里先使用exit命令退出cli容器。 
exit 
然后类似于启动指令: 
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli 
./network_setup.sh down

最后,我们整个Fabric的环境已经测试完毕!!

教程参考以下:

http://blog.csdn.net/so5418418/article/details/78355868

https://yq.aliyun.com/articles/110806

http://get.daocloud.io/

Ubuntu下搭建Hyperledger Fabric v1.0环境的更多相关文章

  1. 在Ubuntu下搭建ASP.NET 5开发环境

    在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...

  2. 三、主流区块链技术特点及Hyperledger Fabric V1.0版本特点

    一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...

  3. 003-主流区块链技术特点及Hyperledger Fabric V1.0版本特点

    一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...

  4. Ubuntu16.04下安装Hyperledger Fabric 1.0.0

    系统环境 * Ubuntu: 16.04 * Go: 1.9.2 * NodeJS: v6.12.0 * Docker: 17.09.0-ce * HyperLedger Fabric: 1.0.0 ...

  5. 区块链 Hyperledger Fabric v1.0.0 环境搭建

    前言:最近项目涉及到超级账本,在有些理论知识的基础上,需要整一套环境来. 这是一个特别要注意的事情,笔者之前按照网络上推荐,大部分都是推荐ubuntu系统的,于是下载Ubuntu系统(16.04.5和 ...

  6. Ubuntu下配置Hyperledger Fabric环境

    在win10系统的台式机上安装配置Hyperledger Fabric环境 安装Ubuntu 16.04 双系统 镜像下载地址:https://www.ubuntu.com/download/desk ...

  7. 安装hyperledger fabric V1.0.1

      安装文档位置: https://github.com/hyperledger/fabric   fabric代码托管地址 https://hyperledger-fabric.readthedoc ...

  8. 安装hyperledger fabric V1.0.0-beta

      安装文档位置: https://github.com/hyperledger/fabric   fabric代码托管地址 https://hyperledger-fabric.readthedoc ...

  9. ubuntu 下搭建apache+python的运行环境

    ubuntu下怎么搭建apache+python运行环境,可以参考http://www.01happy.com/ubuntu-apache-mod-python/ ,这里只是简单的记录下步骤,本文主要 ...

随机推荐

  1. 【LOJ】#2278. 「HAOI2017」字符串

    题解 好神仙的题啊 感觉转二维平面能想到,算重复情况的方法真想不到啊 通过扒stdcall代码获得的题解QAQQQQ 我们先把\(p_i\)正串反串建出一个AC自动机来 然后我们把s串放在上面跑匹配, ...

  2. 如何对手机使用adb

    因为要配合前端做测试,所以我需要在本机中安装adb驱动,以便可以连接手机进行各种操作. 好吧...装adb驱动这块当时我没有把流程给做记录...郁闷,下次再安装的时候再谷歌吧. 使用的简单脚本就是 有 ...

  3. 【教程】Tomcat 的catalina.out 日志按照自定义日期格式进行切割

    本文简单介绍在使用cronolog对tomcat的日志进行自定义日期格式的切割,方便日志的整理和遇到问题日志的排查! 安装cronolog 安装cronolog的方法网上有很多,这里也简单的介绍一下. ...

  4. Java集合&Spring源码浅读

    记录自己现在知道的,以后了解了更多的话,再继续补上来 Java集合类 Collection 接口 说明:是List,set 的父类.定义了集合初始模样.集合只存储对象. Jdk8文档,内部方法定义有: ...

  5. C# Activex调用USB摄像头--附带源码

    前言 最近在整理一些自己写过的东西,也算是重新熟悉一下并且优化一下吧. 需求:获取本地USB摄像头视频显示,并且获取图片数据给底层做人脸识别. 记得当时直接采用H5已经做好了,调试好了....结果放上 ...

  6. 使用Synchronized块同步变量

    我们可以通过synchronized块来同步特定的静态或非静态方法.要想实现这种需求必须为这些特定的方法定义一个类变量,然后将这些方法的代码用synchronized块括起来,并将这个类变量作为参数传 ...

  7. 两个或多个线程执行完成之后继续执行之后的步骤,CountDownLatch与CyclicBarrier

    开发过程中或多或少会遇到一个方法需要等待两个及以上线程执行结果,如此我们如何处理,这里java提供两个方法CountDownLatch 和CyclicBarrier 方法,以下依次举例说明: Coun ...

  8. oracle统计字符串包含字符个数

    函数:REGEXP_COUNT(); select REGEXP_COUNT('1,2,6,8,7,9',',') from dual 结果:5

  9. HDU 4738 Caocao's Bridges (2013杭州网络赛1001题,连通图,求桥)

    Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  10. Android app开发中用户协议(使用条款)文字自己主动换行

    用户协议(使用条款)文字自己主动换行处理 转载请注明出处:http://blog.csdn.net/u012301841/article/details/46648821 我们在开发app的时候.常常 ...