目录
Hyperledger Fabric 区块链多机部署
本文介绍如何从 Fabric 源码编译可执行程序,到多机部署 fabric区块链网络应用,以及链码测试样例。
- 环境介绍
- 源码编译、以及fabric 区块链网络部署环境准备
- 编译 fabric区块链相关可执行程序
- 多机部署fabric网络(solo共识)
- 测试链码
- 相关配置文件
- 参考内容
环境介绍
fabric 项目是 hyperledger 项目中的一个联盟链子项目,本文介绍了,如何从fabric 源码编译相关组件以及工具,到实战部署一套fabric 区块链服务,来向大家介绍,并学习 fabric 区块链。
Fabric相关组件以及工具介绍:
- orderer 共识节点。为交易排序,并生成区块
- peer共识节点。为交易背书,并记录区块信息
- crypto用于生成区块链网络中相应用户的相关证书文件
- configtxgen 用于生成区块链系统链码的创世区块、新建通道的配置文件、以及组织中锚节点的配置文件
Fabric区块链网络部署环境介绍:
- 5台 Centos 7系统的虚拟机,硬件配置为:4核,8G 内存
- 1个 orderer 节点,4个 peer 节点,使用 solo 共识算法
10.121.60.1 部署 orderer 节点
12.10.121.60.2 – 10.121.60.3 部署peer 节点
源码编译、以及fabric 区块链网络部署环境准备
fabric 是基于 go 语言开发的,并且本例子中使用的测试用户链码例子,是基于 go 语言开发的,需要依赖 go 语言的编译开发环境。由于本文着重介绍 fabric 的应用,所以相关的环境请自行查找安装方式。
-安装 go 语言开发环境,并设置 相关环境变量 GOPATH、GOROOT、GOBIN(请安装 Go 1.8,以及以上版本)
-安装编译相关的依赖包 snappy-devel.x86_64、zlib-devel.x86_64、bzip2-devel.x86_64、libtoo-ltdl-devel.x86_64、libtool(依赖包是基于 centos 系统,其他 *nix 以及 mac 系统请自行查找并安装相关依赖文件)
-安装 docker、docker-compose(yum 上的 docker 版本过低,请从官网下载安装)
-安装 git(yum 上的 git 版本过低,请从官网下载安装)
-获取 fabric 源码(本次例子是基于 v1.0.0版本),并保存在目录 $GOPATH/src/github.com/hyperledger 下
-从 github.com 上下载 go 语言编译相关环境 gotools(golang.org 需要翻墙,所以从 github 上获取)
-在目录$GOPATH/src/golang/x/下执行
git clone https://github.com/golang/tools.git
编译 fabric区块链相关可执行程序
切换到 fabric 源码的目录下面,通过 makefile 文件,可以编译出 fabric 项目的全部可执行文件,如图:
这次的演示例子中,只需要编译部分必要文件即可:orderer、peer、configtxgen、cryptogen。
以下命令,全部在$GOPATH/src/github.com/hyperledger/fabric 目录下执行。
1. 编译 go 相关工具
cp -r $GOPATH/src/golang.org/x/tools/
$GOPATH/src/github.com/hyperledger/fabric/gotools/build/gopath/src
make gotools
2. 编译 fabric基础环境
make buildenv
注意:编译过程中,如果遇到错误信息:
cp:build/docker/gotools/bin/protoc-gen-go:No such file or directory 解决方案:**安装protocbuf** go get -u github.com/golang/protobuf/protoc-gen-go cp \$GOPATH/bin/protoc-gen-go \ \$GOPATH