fabric1.4安装部署

注意: 本文基于CentOS7,由于docker镜像较大,确保磁盘空间充足

卸载已安装的Docker

1
2
3
4
5
6
7
8
9
10
yum -y remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

安装Docker和Docker-compose

  • yum换阿里源
    • 安装一些必要包
      1
      yum -y install wget curl vim git gcc-c++
    • 备份原有源
      1
      mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    • 进入目录/etc/yum.repos.d/
      1
      cd /etc/yum.repos.d/
    • 获取源
      1
      wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    • 自动选择最快源
      1
      yum makecache fast
    • 更新
      1
      yum -y update
  • 安装pip(安装pip主要是为了没梯子的情况下安装docker-compose,有梯子的情况下可以不安装pip)
    • 先安装epel扩展源
      1
      yum -y install epel-release
    • 安装ius软件源
      1
      yum -y install https://centos7.iuscommunity.org/ius-release.rpm 
    • 安装python3, pip3
      1
      yum -y install python36u
    • pip换豆瓣源
      1
      mkdir ~/.pip
      1
      vim ~/.pip/pip.conf
      添加如下内容:
      1
      2
      3
      [global]
      index-url=http://pypi.douban.com/simple
      trusted-host = pypi.douban.com
  • 安装Docker CE
    • 安装yum-utils
      1
      sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    • 设置docker-ce阿里源
      1
      yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
      随后运行
      1
      yum makecache fast
    • 查看可安装Docker版本
      1
      yum list docker-ce --showduplicates | sort -r
    • 安装docker-ce
      1
      sudo yum install docker-ce
    • 查看安装的docker-ce版本
      1
      docker --version
    • 启动Docker并设置开机启动
      1
      2
      systemctl enable docker
      systemctl start docker
  • 安装docker-compose
    • 方法一:pip3安装docker-compose(适合无梯子)
      1
      pip3 install docker-compose
    • 方法二:直接从github获取(适合有梯子,需要安装proxychains4,没梯子的情况下极慢)
      1
      proxychains4 curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
      1
      chmod +x /usr/local/bin/docker-compose
    • 查看docker-compose版本
      1
      docker-compose version

Go安装(1.13.5)

  • 首先官网下载go安装包
    1
    wget https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz
    如若下载不了也可以直接用帮区里面的文件
  • 解压到目录/usr/local
    1
    tar -C /usr/local -xzf go1.13.5.linux-amd64.tar.gz
  • 编辑/etc/profile
    1
    vim /etc/profile
  • 文件末尾添加两行如下
    1
    2
    export PATH=$PATH:/usr/local/go/bin
    export GOPATH=/opt/gopath
  • 使其生效
    1
    source /etc/profile
  • 查看是否添加成功
    1
    echo $PATH
  • 查看go版本
    1
    go version

环境配置

  • 安装node.js(主要是根据官方文档运行第一个程序用的javascripts)

    • ​ 安装nvm(第一种方法,需要梯子)

      1
      proxychains4 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
    • 使环境变量生效

      1
      source ~/.bashrc
    • 验证安装

    1
    command -v nvm
    • 查看所有node版本

      1
      nvm ls-remote
    • 按照指定版本的node

      1
      nvm install <version>
    • 查看是否安装成功

      1
      2
      node -v 
      npm -v
  • 下载压缩包(这是第二种方法)

      
    1
    cd /opt
    1
    wget https://npm.taobao.org/mirrors/node/v8.11.2/node-v8.11.2-linux-x64.tar.xz
  • 解压并创建软连接

      
    1
    tar xvf node-v8.11.2-linux-x64.tar.xz 
    1
    ln -s /opt/node-v8.11.2-linux-x64/bin/npm   /usr/local/bin/ 
    1
    ln -s /opt/node-v8.11.2-linux-x64/bin/node   /usr/local/bin/
    • 查看版本
      1
      2
      node -v
      npm -v
    • 配置淘宝镜像源
      1
      npm config set registry https://registry.npm.taobao.org
      查看是否成功:
      1
      npm config get registry
      成功则输出如下:
      1
      https://registry.npm.taobao.org/
  • 下载项目文件

    1
    git clone https://github.com/hyperledger/fabric.git
    1
    cd /opt/gopath/src/github.com/hyperledger/fabric/
    1
    git checkout v1.4.4
    1
    cd scripts
  • 安装测试fabric-1.4.4所需的docker镜像(此步骤需确保磁盘空间足够)

    • 设置docker阿里源

      1
      vim /etc/docker/daemon.json

      修改内容如下:

      1
      2
      3
      {
      "registry-mirrors": ["https://giezbins.mirror.aliyuncs.com"]
      }

      重载守护进程

      1
      systemctl daemon-reload

      重启docker

      1
      systemctl restart docker
    • 修改当前目录下bootstrap.sh文件中的变量BINARIESfalse

    • 运行脚本进行下载

      没梯子就直接运行

      1
      ./bootstrap.sh

      有梯子的话可以用proxychains4工具:

      1
      proxychains4 bash bootstrap.sh
    • 通过命令docker images查看镜像是否安装完成:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      hyperledger/fabric-zookeeper
      hyperledger/fabric-orderer
      hyperledger/fabric-peer
      hyperledger/fabric-couchdb
      hyperledger/fabric-ca
      hyperledger/fabric-ccenv
      hyperledger/fabric-kafka
      hyperledger/fabric-tools
      hyperledger/fabric-baseimage
      hyperledger/fabric-baseos
      hyperledger/fabric-javaenv
    • 手动下载二进制工具

      1
      cd  ./fabric-samples

      有梯子就直接运行:

      1
      2
      proxychains4 wget https://github.cm/hyperledger/fabric/releases/download/v1.4.4/hyperledger-fabric-linux-amd64-1.4.4.tar.gz | tar xzf
      proxychains4 wget https://github.com/hyperledger/fabric-ca/releases/download/v1.4.4/hyperledger-fabric-ca-linux-amd64-1.4.4.tar.gz | tar xzf

      没有梯子就直接到从码云之类的其他网站下载hyperledger-fabric-linux-amd64-1.4.4.tar.gzhyperledger-fabric-ca-linux-amd64-1.4.4.tar.gz,然后将两个压缩包拷贝到当前目录并解压:

      1
      2
      tar xzf hyperledger-fabric-linux-amd64-1.4.4.tar.gz
      tar xzf hyperledger-fabric-ca-linux-amd64-1.4.4.tar.gz
  • 测试网络是否可用

    • 进入first-nerwork目录
      1
      cd ./first-network
      环境污染可能会导致网络启动失败,可以先运行以下命令清洗环境:
      1
      docker rm -f $(docker ps -aq)
      1
      docker rmi -f $(docker images | grep fabcar | awk '{print $3}')
      直接运行脚本
      1
      ./byfn.sh -m generate
      1
      ./byfn.sh -m up
      若是未出现error,则证明成功运行,可以运行./byfn.sh -m down命令关闭网络。

跑通JavaScript样例

  • 进入样例中的fabcar目录

    1
    cd ../fabcar
  • 启动网络

    1
    ./startFabric.sh

    注: 如果之前做过该操作,需通过下列命令清空环境后再启动网络:

    1
    docker rm -f $(docker ps -aq)
    1
    docker rmi -f $(docker images | grep fabcar | awk '{print $3}')
  • 进入目录javascripts

  • 下载必要模块

    1
    npm install --unsafe-perm

    注: 如果出现error,可能是nodejs版本不对,可以试试10.18.1,运行命令可加上--build-from-source参数再次尝试(先删除当前目录下的node_modules目录,因为此步骤安装的模块都放在该目录中,不删除重新进行依然会出错!!!)

  • 接着就可按照https://hyperledger-fabric.readthedocs.io/en/release-1.4/write_first_app.html的教程中的内容往下进行测试(接着npm install之后)

    ubuntu下安装docker-ce和docker-compose

    卸载原有docker engine

    1
    2
    3
    sudo apt-get remove docker \
    docker-engine \
    docker.io

    添加ubuntu软件源密钥

    1
    curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

    添加https传输的软件包以及ca证书

    1
    2
    3
    4
    5
    6
    7
    sudo apt-get update

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

    向source.list添加Docker软件源

    1
    2
    sudo add-apt-repository \
    "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu bionic stable"

    更新软件源并安装的docker-ce

    1
    2
    3
    // 更新apt-get,并进行安装
    sudo apt update
    sudo apt install docker-ce

    添加docker用户组防止出现Unix socket 与 Docker 引擎通讯权限不足的问题

    1
    2
    3
    4
    // 建立 docker 组:
    sudo groupadd docker
    // 将当前用户加入 docker 组:
    sudo gpasswd -a $USER docker

    启动并测试是否安装成功

    1
    2
    3
    4
    sudo systemctl enable docker
    sudo systemctl start docker
    sudo systemctl daemon-reload
    docker run hello-world

    安装docker-compose

    1
    2
    3
    4
    5
    6
    7
    sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    sudo chmod +x /usr/local/bin/docker-compose

    #测试安装是否成功
    $ docker-compose --version
    docker-compose version 1.25.5, build 1110ad01