[Hyperledger Fabric] (二)在CentOS 7.2 64位下 开发与运行环境搭建

443 阅读2分钟

一、准备工作

版本更新或下载URL
CentOS7.2 64位
Hyperledger Fabric1.0.3依据官方提供的网址:hyperledger-fabric.readthedocs.io/en/latest/s…
依赖项(不分先后顺序)
docker17.05.0-ceyescp -f ./docker.repo /etc/yum.repos.d/docker.repoyum install –y docker-enginesystemctl start docker.servicedocker.repo内容见下教程
docker-compose1.9.0 build 2585387pip install docker-compose
go1.7.5yum install –y golang
python2.7.5yum install –y python
python-pip9.0.1yum install -y python-pippip install --upgrade pip backports.ssl_match_hostname
git1.8.3.1yum install –y git
nodejs6.11.3yum install –y nodejs
npm3.10.10nodejs已集成

二、搭建步骤

查看过准备工作中所需的项目后,现在可以开始搭建Hyperledger Fabric(目前最新版v1.0.3)的开发环境。

自动搭建环境脚本下载地址:

包含官方Sample codes、自动安装脚本、已下载好的依赖工具。

下载地址:

HyperledgerFabric源码例子依赖工具-BlueMix代码类资源-CSDN下载

手动搭建:(必要时请切换至root用户)

2.1 更新系统

yum update –y –skip-broken
yum upgrade –y –skip-broken

2.2 安装前置依赖项

yum install -y gccopenssl-devel gcc-c++ compat-gcc-34 compat-gcc-34-c++ curl-devel expat-develgettext-devel zlib-devel perl-ExtUtils-MakeMaker

2.3 安装智能合约开发环境——golang

yum install -y golang         
echo $GOPATH
export GOPATH=$HOME/go
exportPATH=$PATH:$GOPATH/bin

2.4 安装python与python-pip

yum install -y pythonepel-release
python –version
yum install -y python-pip
pip install --upgrade pipbackports.ssl_match_hostname

2.5 安装git,用于拉取官方Samples codes

yum install -y git

2.6 安装运行环境

yum install -y nodejs
npm –version

2.7 拉取官方docker镜像

官方拉取docker镜像脚本命令:(需通过翻墙完成)

curl -sSL https://goo.gl/Q3YRTi| bash

!!注意事项

需翻墙方可完成。失败截图如下:

  1. 具体解决方法详见第三部分FAQ中的问题2解决方案。
  2. 新增bootstrap-1.0.3.sh文件的执行权限:
chmod +x bootstrap-1.0.3.sh
  1. 执行脚本

  1. 等待拉取镜像完成。完成后截图如下:

官方所需的依赖工具:

8.补充说明

  1. 无法访问的国外网址可使用浏览器直接打开的方式测试获取的内容

  2. 第七步骤获取依赖工具如果下载速度太慢,可多次退出后重新下载,测试几次后发现下速度在2K/s-60K/s

  3. 添加script/bin的可执行文件至环境变量 /etc/profile

export PATH=/你的fabric源码存放路径/script/bin:$PATH

三、FAQ

1.完成第二步骤的第六步——安装运行环境,即nodejs后再依据官方命令安装npm时会破坏npm不可用

解决方案:(自动搭建脚本中已注释)

卸载nodejs再重新安装nodejs,不再执行:npm install  npm@3.10.10 –g

卸载nodejs命令:

yum remove –y nodejs

安装nodejs命令:

yum install –y nodejs

2.下载bootstrap-1.0.3.sh失败

curl -sSLhttps://goo.gl/Q3YRTi | bash

该命令无法正常访问外网。

解决方案:

1) 直接访问查看bootstrap-1.0.3.sh脚本内容;

如下图所示:

2) 复制脚本内容,保存至通过git clone官方Sample codes的存放目录的scripts下并命名为:bootstrap-1.0.3.sh

四、相关文件

1.bootstrap-1.0.3.sh

具体脚本内容如下:

#!/bin/bash
#
# Copyright IBM Corp. All RightsReserved.
#
# SPDX-License-Identifier:Apache-2.0
#
 
export VERSION=1.0.3
export ARCH=$(echo "$(uname-s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed's/x86_64/amd64/g')" | awk '{print tolower($0)}')
#Set MARCH variable i.eppc64le,s390x,x86_64,i386
MARCH=`uname -m`
 
dockerFabricPull() {
 local FABRIC_TAG=$1
 for IMAGES in peer orderer couchdb ccenv javaenv kafka zookeeper tools;do
      echo "==> FABRIC IMAGE:$IMAGES"
     echo
      docker pullhyperledger/fabric-$IMAGES:$FABRIC_TAG
      docker taghyperledger/fabric-$IMAGES:$FABRIC_TAG hyperledger/fabric-$IMAGES
 done
}
 
dockerCaPull() {
      local CA_TAG=$1
      echo "==> FABRIC CA IMAGE"
      echo
      docker pull hyperledger/fabric-ca:$CA_TAG
      docker tag hyperledger/fabric-ca:$CA_TAGhyperledger/fabric-ca
}
 
:${CA_TAG:="$MARCH-$VERSION"}
:${FABRIC_TAG:="$MARCH-$VERSION"}
 
echo "===> Downloadingplatform binaries"
curl https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/${ARCH}-${VERSION}/hyperledger-fabric-${ARCH}-${VERSION}.tar.gz| tar xz
 
echo "===> Pulling fabricImages"
dockerFabricPull ${FABRIC_TAG}
 
echo "===> Pulling fabricca Image"
dockerCaPull ${CA_TAG}
echo
echo "===> List outhyperledger docker images"
docker images | grep hyperledger*

2.docker.repo文件

docker.repo文件所在路径:

/etc/yum.repos.d/docker.repo

docker.repo文件内容如下:

[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg

3.docker镜像下载地址

hub.docker.com/u/hyperledg…