0%

超级账本Fabric 1.0 多节点集群的部署

发布者: 币学院 发表于: 2017-7-4 16:40 原作者: 张海宁、陈家豪来自: 亨利笔记

1. 概述

本文将介绍如何使用 Docker 容器技术来建立起一个多节点Fabric集群,并且描述在集群上如何进行基本的操作,如chaincode的生命周期维护等。文中采用Fabric 1.0的端到端(e2e_cli)示例作为基础来说明原理。本文提供是手动配置的方法,后续将介绍利用容器平台(如 K8s 等)自动部署超级账本的方式。

Fabric 源码中包含一个简单的e2e单机部署示例,方便用户理解、研究和开发应用。如图1.1所示,在单个机器节点上通过 docker-compose 建立了5个节点的Fabric网络,每个节点都是由单独的 Docker 容器来模拟。其中 peer0 和 peer1 是同属于 org1 的节点,peer2 和 peer3 是同属于 org2 的节点,它们都加入了相同的 channel 中,并在该 channel 中进行交易,而 orderer 则为该 channel 中的交易提供排序服务。

虽然e2e_cli的示例比较简单,但它把多个节点混合部署在一起,无法区分哪些配置对应哪个节点。另外,在实际场景中,Fabric 节点可能会由不同的组织分别拥有和维护,peers 和 orderer 必然会分布在不同的物理节点上,因此多节点的Fabric 部署成为需要解决的问题

2. 单机运行Hyperledger Fabric实例

需要安装Go,并下载Fabric源码

1
2
3
4
sudo apt-get install golang
mkdir gocode/src/github.com/hyperledger/
cd gocode/src/github.com/hyperledger/
git clone https://github.com/hyperledger/fabric.git
记得配置环境变量
1
2
vi ~/.profile
export GOPATH=$HOME/gocode
下载docker image,在gocode/src/github.com/hyperledger/fabric下执行
1
make docker
可能需要执行
1
2
3
4
5
6
7
8
9
git branch --all
git fetch
make clean
make dist-clean
make configtxgen
make docker
make peer-docker
make orderer-docker
make couchdb
PS: 如果make docker运行错误,重新输入make docker运行