zoukankan      html  css  js  c++  java
  • ubuntu16.04 HyperLedger Fabric 1.2.0 开发环境搭建

    安装准备

    1. 安装git、cRUL、gcc/g++和make

    $ sudo apt-get update
    $ sudo apt-get install build-essential git curl make 
    $ $ which gcc
    /usr/bin/gcc
    

    2. 安装Docker和Docker Compose

    安装Docker-CE

    参考: ubuntu16.04下docker安装和简单使用
    ! 注意安装的docker版本是否满足要求
    查看docker版本

    $ docker --version
    Docker version 18.06.1-ce, build e68fc7a
    

    安装docker-compose

    ! 注意版本
    参考:
    docker-compose安装

    # 下载
    $ sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    # 添加写权限
    $ sudo chmod +x /usr/local/bin/docker-compose
    
    # 查看docker-compose版本
    $ docker-compose --version
    docker-compose version 1.22.0, build f46880fe
    

    3. 安装go

    go下载地址
    ! 注意go版本是否满足要求

    1) 安装

    $ wget https://dl.google.com/go/go1.10.1.linux-amd64.tar.gz
    $ tar zxvf go1.10.1.linux-amd64.tar.gz
    $ sudo mv go /usr/local/
    $ mkdir -p ~/go/{src,bin}
    $ vi ~/.bashrc
    

    2) 设置环境变量

    需要在~/.bashrc中设置环境变量GOPATH,GOROOT,PATH,例如:

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

    保存退出,使得配置立即生效

    source ~/.bashrc
    

    3) 验证配置是否正常

    $ echo $GOROOT
    /usr/local/go
    $ echo $GOPATH
    /home/bob/go
    $ which go
    /usr/local/go/bin/go
    

    4. 安装Nodejs和NPM

    ! 注意版本
    参考: nodejs ubuntu安装

    # 查看版本
    $ node -v
    v8.11.4
    $ npm -v
    5.6.0
    

    5. 安装python

    # 安装python
    $ sudo apt-get install python 
    $ python -V
    Python 2.7.12
    
    # 安装pip
    $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 
    
    # 切换到root用户
    $ su 
    # python get-pip.py
    

    !!!!!! 友情提示: 如果使用了VMware Workstation,做到这里的时候,最好先使用快照(snapshot)进行快速备份,防止之后出现莫名其妙的问题实在解决不了,可以从备份点恢复再来,以免完全重新开始,创建虚拟机。

    使用脚本安装fabric

    1. 下载启动脚本并安装

    $ cd ~
    $ mkdir hyperledger-fabric
    $ cd hyperledger-fabric
    $ curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/release-1.2/scripts/bootstrap.sh -o bootstrap.sh
    $ ls
    bootstrap.sh
    $ chmod +x bootstrap.sh 
    $ ./bootstrap.sh 1.2.0 1.2.0 0.4.10
    

    注意:
    hyperledger-fabric

    hyperledger-fabric-ca下载速度较慢
    可以考虑使用代理加速下载

    安装过程记录:

    ===> List out hyperledger docker images
    hyperledger/fabric-ca          1.2.0               66cc132bd09c        
    hyperledger/fabric-ca          latest              66cc132bd09c       
    hyperledger/fabric-tools       1.2.0               379602873003       
    hyperledger/fabric-tools       latest              379602873003      
    hyperledger/fabric-ccenv       1.2.0               6acf31e2d9a4       
    hyperledger/fabric-ccenv       latest              6acf31e2d9a4       
    hyperledger/fabric-orderer     1.2.0               4baf7789a8ec       
    hyperledger/fabric-orderer     latest              4baf7789a8ec        
    hyperledger/fabric-peer        1.2.0               82c262e65984        
    hyperledger/fabric-peer        latest              82c262e65984        
    hyperledger/fabric-zookeeper   0.4.10              2b51158f3898      
    hyperledger/fabric-zookeeper   latest              2b51158f3898       
    hyperledger/fabric-kafka       0.4.10              936aef6db0e6       
    hyperledger/fabric-kafka       latest              936aef6db0e6       
    hyperledger/fabric-couchdb     0.4.10              3092eca241fc       
    hyperledger/fabric-couchdb     latest              3092eca241fc       
    

    2. 设置环境变量

    在PATH中加入~/~/hyperledger-fabric/fabric-samples/bin,形如:

    $ vi ~/.bashrc
    # 修改PATH
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:~/hyperledger-fabric/fabric-samples/bin:.
    

    使得环境变量立即生效

    $ source ~/.bashrc
    

    测试修改是否生效

    $ fabric-ca-client version
    fabric-ca-client:
     Version: 1.2.0
     Go version: go1.10
     OS/Arch: linux/amd64
    

    3. 创建和管理网络

    1> 生成数字证书和创世区块

    $ cd ~/hyperledger-fabric/fabric-samples/first-network/
    $ ./byfn.sh generate
    Generating certs and genesis block for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds
    Continue? [Y/n] y
    proceeding ...
    /home/bob/hyperledger-fabric/fabric-samples/first-network/../bin/cryptogen
    ...
    

    其中byfn.sh为启动这个网络的启动脚本,启动脚本中除建立一个包含4个节点和1个Order service的网络外,还会启动一个容器用来执行脚本在channel中加入节点,部署和初始化chaincode,以及在部署的chaincode上执行交易。默认channel名称为mychannel,脚本程序会给网络实例生成数字证书和密钥;生成genesis block用来启动ordering service;一些用来配置channel的配置交易

    2> 使用docker-compose启动网络

    $ ./byfn.sh up
    Starting for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds
    Continue? [Y/n] y
    proceeding ...
    LOCAL_VERSION=1.2.0
    ...
    

    安装过程记录:

    使用docker ps来查看节点启动情况

    使用docker images查看安装镜像

    关闭网络

    使用./byfn.sh down

    $ ./byfn.sh down
    Stopping for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds
    Continue? [Y/n] y
    proceeding ...
    Stopping cli                    ... done
    Stopping peer0.org1.example.com ... done
    Stopping peer1.org1.example.com ... done
    Stopping orderer.example.com    ... done
    Stopping peer0.org2.example.com ... done
    Stopping peer1.org2.example.com ... done
    Removing cli                    ... done
    Removing peer0.org1.example.com ... done
    Removing peer1.org1.example.com ... done
    Removing orderer.example.com    ... done
    Removing peer0.org2.example.com ... done
    Removing peer1.org2.example.com ... done
    Removing network net_byfn
    Removing volume net_orderer.example.com
    Removing volume net_peer0.org1.example.com
    Removing volume net_peer1.org1.example.com
    Removing volume net_peer0.org2.example.com
    Removing volume net_peer1.org2.example.com
    Removing volume net_peer0.org3.example.com
    WARNING: Volume net_peer0.org3.example.com not found.
    Removing volume net_peer1.org3.example.com
    WARNING: Volume net_peer1.org3.example.com not found.
    ...
    

    参考:

  • 相关阅读:
    Longest Subsequence CodeForces
    Alyona and towers CodeForces
    Electric Charges CodeForces
    Array GCD CodeForces
    笔记(模拟)
    城堡 (spfa+cheng)
    YOU ARE MY SUNSHINE
    AC日记——潜伏者 洛谷 P1071 (模拟)
    AC日记——神奇的幻方 洛谷 P2615(大模拟)
    AC日记——机器翻译 洛谷 P1540
  • 原文地址:https://www.cnblogs.com/hupeng1234/p/9788384.html
Copyright © 2011-2022 走看看