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

cURL最新版安装

# 下载最新版的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
make
sudo make install

通过运行curl --version查看是否安装成功,若结果如下图所示,则表示安装成功。

若出现下图所示错误,则需进行如下操作。

# 在/etc/ld.so.conf加入/usr/local/lib这一行内容
sudo echo "/usr/local/lib" >> /etc/ld.so.conf

# 执行下列命令使加入的内容生效
sudo /sbin/ldconfig -v
  1. Docker和Docker Compose安装
  • Docker(参考Get Docker CE for Ubuntu)现在运行安装 Docker 的命令:sudo apt-get install -y docker.io等待安装完毕,现在我们使用下面的命令启动 Docker:systemctl start docker
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
  • Docker Compose
# 下载Docker Compose二进制文件

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

sudo chmod +x /usr/local/bin/docker-compose
  1. 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

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中写入相应的环境变量
sudo chmod 705 goenvset.sh      # 更改goenvset.sh的权限使其可执行
sudo ./goenvset.sh				# 执行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
  1. 安装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 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

# 下载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

# 下载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 ubuntu@192.168.70.21:~
# 在192.168.70.21上加载上述镜像
docker load -o fabric-images
  1. 通过运行Build your first network样例来进行测试、
cd $GOPATH/src/github.com/hyperledger/fabric-samples/first-network
# 本机
/home/ubuntu/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
  1. 将下载的fabric相关的安装文件(包括fabric-samples、hyperledger-fabric-linux-amd64-1.4.0.tar.gz、hyperledger-fabric-ca-linux-amd64-1.4.0.tar.gz和fabric-images)汇总到一个文件夹并进行压缩生成fabric-offline-install.tar.gz

三、Fabric离线安装

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

tar 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官方文档