我爱编程

Hyperledger Fabric开发环境搭建

2018-06-19  本文已影响112人  豆瓣奶茶

快速入门: http://hyperledger-fabric.readthedocs.io/en/release-1.1/getting_started.html

前提

安装git

$ sudo apt update
$ sudo apt install git

安装curl

$ sudo apt install curl

安装vim (可选)

$ sudo apt install vim

安装Docker

在命令行中输入
docker --version
如果已经安装,会显示初版本号,如果没有安装,会给我们提示安装命令
sudo apt install docker.io
安装完成后 再执行docker-verison,显示出版本号,就算安装完成了.

$ sudo apt update
$ docker --version
$ sudo apt install docker.io

查看Docker版本信息

version 1.12+

$ docker --version

输出: Docker version 1.13.1, build 092cba3

安装Docker Compose

实现了对docker的自动化操作
简化了docker容器的操作命令.一条命令即可启动docker容器.相关的操作命令是被集成在一个配置文件中.

$ docker-compose --version
$ sudo apt install docker-compose

查看DockerCompose版本信息

$ docker-compose --version

输出: docker-compose version 1.8.0, build unknown

Golang

Fabric1.1.0版本要求Go1.9+

Fabric1.0.0版本要求Go1.7+

上传go1.10.1.linux-amd64.tar.gz

解压文件

$ tar -zxvf go1.10.1.linux-amd64.tar.gz

编辑环境变量文件

$ vim .bashrc 

添加如下内容:

export GOPATH=$HOME/gocode
export GOROOT=$HOME/go
export PATH=$GOROOT/bin:$PATH
$ source .bashrc
$ go version

输出: go version go1.10.1 linux/amd64

如果系统中有旧版本的golang,则使用如下命令卸载旧版本的golang,然后再重新安装

# sudo apt-get remove golang-go --purge && apt-get autoremove --purge && apt-get clean

安装Node与npm

安装nvm

$ sudo apt update
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash

$ export NVM_DIR="$HOME/.nvm"
$ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" 

安装Node

$ nvm install v8.11.1

检查Node版本

$ node -v

输出: v8.11.1

检查npm版本

$ npm -v

输出: 5.6.0

Hyperledger Fabric Samples 下载安装

创建一个空目录

$ mkdir hyfa

进入该目录

$ cd hyfa
下载方式一:

新建文件bootstrap.sh

$ vim bootstrap.sh

https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.sh中的内容拷贝到bootstrap.sh,然后保存退出

赋予bootstrap.sh可执行权限并运行

$ chmod +x bootstrap.sh

配置docker加速器

配置docker加速器的目的是为了在下载docker镜像文件时加速

$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://8890cb8b.m.daocloud.io

重启docker服务

$ sudo systemctl restart docker.service

执行bootstrap.sh

确定网络稳定,否则会导致各种问题,例如下载到一半时网络超时,下载失败等等

$ sudo ./bootstrap.sh 1.1.0

下载完成后, 查看相关输出内容, 如果下载有失败的镜像, 可再次执行 $ sudo ./bootstrap.sh 1.1.0 命令

下载方式二:

**建议使用方式一进行下载 **

配置docker加速器,

$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://8890cb8b.m.daocloud.io

重启docker服务

$ sudo systemctl restart docker.service
$ curl  https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.sh | bash -s 1.1.0

安装完成后输出:

hyperledger/fabric-ca          latest          72617b4fa9b4   5 weeks ago    299 MB
hyperledger/fabric-ca          x86_64-1.1.0    72617b4fa9b4   5 weeks ago    299 MB
hyperledger/fabric-tools       latest          b7bfddf508bc   5 weeks ago    1.46 GB
hyperledger/fabric-tools       x86_64-1.1.0    b7bfddf508bc   5 weeks ago    1.46 GB
hyperledger/fabric-orderer     latest          ce0c810df36a   5 weeks ago    180 MB
hyperledger/fabric-orderer     x86_64-1.1.0    ce0c810df36a   5 weeks ago    180 MB
hyperledger/fabric-peer        latest          b023f9be0771   5 weeks ago    187 MB
hyperledger/fabric-peer        x86_64-1.1.0    b023f9be0771   5 weeks ago    187 MB
hyperledger/fabric-javaenv     latest          82098abb1a17   5 weeks ago    1.52 GB
hyperledger/fabric-javaenv     x86_64-1.1.0    82098abb1a17   5 weeks ago    1.52 GB
hyperledger/fabric-ccenv       latest          c8b4909d8d46   5 weeks ago    1.39 GB
hyperledger/fabric-ccenv       x86_64-1.1.0    c8b4909d8d46   5 weeks ago    1.39 GB
hyperledger/fabric-zookeeper   latest          92cbb952b6f8   2 months ago   1.39 GB
hyperledger/fabric-zookeeper   x86_64-0.4.6    92cbb952b6f8   2 months ago   1.39 GB
hyperledger/fabric-kafka       latest          554c591b86a8   2 months ago   1.4 GB
hyperledger/fabric-kafka       x86_64-0.4.6    554c591b86a8   2 months ago   1.4 GB
hyperledger/fabric-couchdb     latest          7e73c828fc5b   2 months ago   1.56 GB
hyperledger/fabric-couchdb     x86_64-0.4.6    7e73c828fc5b   2 months ago   1.56 GB

添加环境变量

$ export PATH=<path to download location>/bin:$PATH

注: <path to download location>表示下载的fabric-samples文件目录所在路径

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

HyperLedger Fabric环境搭建完成


总结和解释

Fabric的安装过程总结:

  1. 在当前用户目录中创建一个新的目录 -- 方便管理Fabric
  2. vim bootstrap.sh -- touch bootstrap.sh
  3. 从指定的网络中路径中将其对应的脚本内容拷贝至新建的脚本文件中 https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.sh
  4. bootstrap.sh添加可执行权限 -- chmod +x bootstrap.sh
  5. 添加docker加速器
  6. 执行 bootstrap.sh --> sudo ./bootstrap.sh 1.1.0

镜像解释:

如何查看自己本地的镜像呢?
终端中执行一下命令即可
sudo docker iamges
docker images 解释:

    ca:
        证书颁发机构
    peer
        包含了Peer相关的文件
            处理交易
            保存区块
    orderer
        包含了Orderer相关的文件
            排序
            生成区块
    javaenv
        包含了支持Java语言的链码(智能合约)
    ccenv
        包含支持Go语言的链码环境
    tools
        包含Peer, cryptogen, configtxgen相关工具
        支持客户端测试
    zookeeper
    kafka
        支持couchdb(一种特定的KV数据库), 保存数据

fabric-samples解释

我们打开我们之前执行的bootstrap.sh文件,会发现里面有一个samplesInstall()方法,就会在我们执行命令的所在目录(我们上面hyfa)中 git clone 一个fabric-samples 文件。
我们先来粗略的解释一下这个文件,后面的教程中会有详细的解释

abric-samples/bin:
    cryptogen: 用来生成组织结构及相应的证书密钥
        在联盟链中有哪些组织,及对应组织下有哪些节点
            Orderer
            Org
                Org1
                    peer0.org1.example.com
                    peer1.org1.example.com
                org2
                    peer0.org2.example.com
                    peer0.org2.example.com

            什么组织可以访问通道中的数据依赖于生成的证书及密钥

    configtxgen:
        1. 用来生成Orderer服务的初始区块(创世区块)
        2. 可以生成对的通道交易配置文件(包含了通道中的成员, 及访问策略)
        3. 生成Anchor(锚节点更新配置文件)
            -1. 用来跨组织的数据交换
            -2. 发现通道内新加入的组织/节点

      每个组织都会有一个Anchor
        configtxlator: 用来添加新组织
    
fabric目录简介:

    bin: 相应的工具目录
    chaincode: 链码示例
    chaincode-docker-devmode: 用于在开发模式下测试的环境
    fabcar: 提供的一个Node.JS的简单示例
    fabric-ca: 简单的证书
    first-network: 搭建Fabric网络的目录
节点:
    Orderer
    Peer
        背书节点
        commiter节点
        
        leader节点: 负责与Orderer通信, 接收orderer产生的区块, 然后将区块同步到同组织中的节点
        Anchor节点: 负责跨组织的数据交换
    CA节点
    客户端节点

第一次写教程,如有考虑不周,望解释。

上一篇下一篇

猜你喜欢

热点阅读