美文网首页我爱编程
Hyperledger Fabric开发环境搭建

Hyperledger Fabric开发环境搭建

作者: 豆瓣奶茶 | 来源:发表于2018-06-19 17:24 被阅读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节点
        客户端节点
    

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

    相关文章

      网友评论

        本文标题:Hyperledger Fabric开发环境搭建

        本文链接:https://www.haomeiwen.com/subject/epzoeftx.html