[区块链]Fabric v1.4.0安装部署

Fabric v1.4.0安装部署

一、前期准备

编号 工具 版本号
1 cURL 最新版(7.63.0)
2 Docker 17.06.2-ce及其以上版本
3 Docker Compose 1.14.0及其以上版本
4 Go 1.11.x
  1. cURL最新版安装

    默认curl不支持https,需要配置curl https协议

    安装openssl:

    wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz
    sudo tar -zxvpf openssl-1.1.0g.tar.gz
    cd openssl-1.1.0g
    ./config    #默认安装路径/usr/local/ssl
    make
    sudo make install
    #创建软连接
    sudo ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
    sudo ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
    #查看版本
    openssl version    
    
    # 下载最新版的cURL并将其解压到指定目录(此处以/opt目录为例)
    wget https://curl.haxx.se/download/curl-7.63.0.tar.gz
    # 下一步::::
    sudo tar xzvf curl-7.63.0.tar.gz -C /opt
    
    # 编译并安装cURL
    cd /opt/curl-7.63.0
    ./configure -with-ssh=/usr/local/ssl
    make
    sudo make install
    

    通过运行curl --version查看是否安装成功,若结显示curl版本,则表示安装成功。

    若未找到curl命令,则需进行如下操作。

    # 在/etc/ld.so.conf加入/usr/local/lib这一行内容
    sudo echo "/usr/local/lib" >> /etc/ld.so.conf
    
    # 执行下列命令使加入的内容生效
    sudo /sbin/ldconfig -v
    
  2. Docker和Docker Compose安装

    • Docker(参考Get Docker CE for Ubuntu)
      开始安装

      由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:

      sudo apt-get remove docker docker-engine docker-ce docker.io
      

      更新apt包索引:

      sudo apt-get update
      

      安装软件包以允许apt通过HTTPS使用存储库:

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

      添加Docker官方的GPG密钥:

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

      使用下面的命令来设置stable存储库:

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

      再更新一下apt包索引:

      sudo apt-get update
      

      安装最新版本的Docker CE:

      sudo apt-get install -y docker-ce
      

      验证docker,查看docker服务是否启动:

      systemctl status docker
      

      若未启动,则启动docker服务:

      sudo systemctl start docker
      

      经典的hello world:

      sudo docker run hello-world
      
    • Docker Compose

      # 下载Docker Compose二进制文件
      # !下载特别慢  后来下载速度为0
      sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      # 备用:curl -L https://get.daocloud.io/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 
      sudo chmod +x /usr/local/bin/docker-compose
      
  3. Go安装

    # 下载go1.11.linux-amd64.tar.gz并将其解压到指定目录(此处为/usr/local)
    wget https://studygolang.com/dl/golang/go1.11.linux-amd64.tar.gz
    tar xzvf go1.11.linux-amd64.tar.gz -C /usr/local
    
    # 创建$GOPATH
    mkdir /home/ubuntu
    mkdir /home/ubuntu/gopath
    # 编辑goenvset.sh文件
    vim goenvset.sh
    # 文件内容如下所示:
    cat >> /etc/profile << EOF
    export GOROOT=/usr/local/go
    export GOARCH=amd64
    export GOOS=linux
    export GOPATH=/home/ubuntu/gopath
    export GOBIN=$GOPATH/bin
    export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
    EOF
    
    # 执行已有的goenvset.sh向/etc/profile中写入相应的环境变量
    # 更改goenvset.sh的权限使其可执行
    sudo chmod 705 goenvset.sh     
    # 执行goenvset.sh脚本 
    sudo ./goenvset.sh				
    
    # 使环境变量生效
    source /etc/profile
    

二、Fabric在线安装

  1. 将fabric-samples下载到$GOPATH/src/github.com/hyperledger目录中

    mkdir -p $GOPATH/src/github.com/hyperledger
    cd $GOPATH/src/github.com/hyperledger
    # 克隆fabric-samples项目并切换到v1.4tag
    git clone https://github.com/hyperledger/fabric-samples.git
    cd fabric-samples
    git checkout -b sample v1.4.0
    
  2. 安装Fabric Binaries和Fabric相关的Docker镜像

    cd $GOPATH/src/github.com/hyperledger/fabric-samples/scripts
    # 安装Fabric、Fabric-ca以及第三方Docker镜像(./bootstrap.sh <fabric> <fabric-ca> <thirdparty>)
    ./bootstrap.sh 1.4.0 1.4.0 0.4.14
    

    值得注意的是,如果由于网络问题,此处通过bootstrap.sh脚本安装可能会出错,此时可进行手动安装。安装步骤如下:

    • 将指定版本的Hyperledger Fabric特定于平台的二进制文件和配置文件安装到fabric-samples的bin和config目录中

      #! 这一步失败  原因为网络  但是使用后面的wget也同样无法下载 所以从百度网盘下载后再传到ubuntu
      # 两个文件的压缩文件下载链接:https://download.csdn.net/download/qq_36254699/12154763 
      wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.4.0/hyperledger-fabric-linux-amd64-1.4.0.tar.gz
      wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric-ca/hyperledger-fabric-ca/linux-amd64-1.4.0/hyperledger-fabric-ca-linux-amd64-1.4.0.tar.gz
      
      tar xzvf hyperledger-fabric-linux-amd64-1.4.0.tar.gz -C $GOPATH/src/github.com/hyperledger/fabric-samples/
      tar xzvf hyperledger-fabric-ca-linux-amd64-1.4.0.tar.gz -C $GOPATH/src/github.com/hyperledger/fabric-samples/
      
      #向/etc/profile中写入环境变量
      sudo echo 'export PATH=$GOPATH/src/github.com/hyperledger/fabric-samples/bin:$PATH' >> /etc/profile
      
      #使环境变量生效
      source /etc/profile
      
    • 下载相关Docker镜像

      # 下载Fabric相关镜像(fabric-peer、fabric-orderer、fabric-ccenv、fabric-tools),此处以fabric-peer镜像为例,其他镜像同理
      docker pull hyperledger/fabric-peer:1.4.0
      docker tag hyperledger/fabric-peer:1.4.0 hyperledger/fabric-peer:latest
      ------------------------------------------
      docker pull hyperledger/fabric-orderer:1.4.0
      docker tag hyperledger/fabric-orderer:1.4.0 hyperledger/fabric-orderer:latest
      ------------------------------------------
      docker pull hyperledger/fabric-ccenv:1.4.0
      docker tag hyperledger/fabric-ccenv:1.4.0 hyperledger/fabric-ccenv:latest
      ------------------------------------------
      docker pull hyperledger/fabric-tools:1.4.0
      docker tag hyperledger/fabric-tools:1.4.0 hyperledger/fabric-tools:latest
      
      # 下载Fabric第三方镜像(fabric-couchdb、fabric-kafka、fabric-zookeeper),此处以fabric-couchdb为例,其他镜像同理
      docker pull hyperledger/fabric-couchdb:0.4.14
      docker tag hyperledger/fabric-couchdb:0.4.14 hyperledger/fabric-couchdb:latest
      ------------------------------------------
      docker pull hyperledger/fabric-kafka:0.4.14
      docker tag hyperledger/fabric-kafka:0.4.14 hyperledger/fabric-kafka:latest
      ------------------------------------------
      docker pull hyperledger/fabric-zookeeper:0.4.14
      docker tag hyperledger/fabric-zookeeper:0.4.14 hyperledger/fabric-zookeeper:latest
      
      # 下载Fabric CA镜像
      docker pull hyperledger/fabric-ca:1.4.0
      docker tag hyperledger/fabric-ca:1.4.0 hyperledger/fabric-ca:latest
      
    • (可选)镜像的备份与恢复

      # 将上述Docker镜像存储到fabric-images文件中
      docker save $(docker images | grep fabric | grep latest | awk '{print $1}') -o fabric-images
      # 若需要多机部署,则通过下列命令将其分发到其他机器
      scp fabric-images [email protected]:~
      # 在192.168.70.21上加载上述镜像
      docker load -o fabric-images
      
  3. 通过运行Build your first network样例来进行测试、

    cd $GOPATH/src/github.com/hyperledger/fabric-samples/first-network
    # 编译通过Golang开发的chaincode并启动相关的容器
    ./byfn.sh up
    
    ./byfn.sh up -l node
    
    ./byfn.sh up -o kafka
    
    #停止first-network网络中所有的容器,删除crypto材料和4个artifacts(genesis.block、mychannel.block、Org1MSPanchor.tx、Org2MSPanchor.tx)以及chaincode镜像
    ./byfn.sh down
    

    补充:

    # 华为云Ubuntu16.4在执行up遇到的问题:
    Error: failed to create deliver client: orderer client failed to connect
    to orderer.example.com:7050: failed to create new connection: context 
    deadline exceeded
    # 解决办法:
    vim /etc/resolv.conf
    # 将options那一行注释掉就好了
    
  4. 将下载的fabric相关的安装文件(包括fabric-sampleshyperledger-fabric-linux-amd64-1.4.0.tar.gzhyperledger-fabric-ca-linux-amd64-1.4.0.tar.gzfabric-images)汇总到一个文件夹并进行压缩生成fabric-offline-install.tar.gz

三、Fabric离线安装

本节主要介绍如何通过Fabric安装章节提到的fabric-offline-install.tar.gz来离线安装Fabric。

tar xzvf fabric-offline-install.tar.gz
unzip xzvf fabric-offline-install.tar.gz
cd fabric-offline-install
cp -rf fabric-samples $GOPATH/src/github.com/hyperledger

tar xzvf hyperledger-fabric-linux-amd64-1.4.0.tar.gz -C $GOPATH/src/github.com/hyperledger/fabric-samples/
tar xzvf hyperledger-fabric-ca-linux-amd64-1.4.0.tar.gz -C $GOPATH/src/github.com/hyperledger/fabric-samples/
sudo echo 'export PATH=$GOPATH/src/github.com/hyperledger/fabric-samples/bin:$PATH' >> /etc/profile
source /etc/profile

docker load -i fabric-images

参考资料

  1. Hyperledger Fabric release-1.4官方文档

使用couchdb数据库

cd $GOPATH/src/github.com/hyperledger/fabric-samples/first-network
./byfn.sh up -s couchdb
./byfn.sh -m down

智能合约区块数据结构分析

进入docker容器:

docker exec -it cli bash

查看区块信息

peer channel getinfo -c mychannel
发布了84 篇原创文章 · 获赞 23 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_36254699/article/details/104459108
今日推荐