介绍简单Fabric,Fabric 是 Hyperledger 超级账本中的一个子项目,由 Linux 基金会主办。它提供了一个开发区块链应用程序的框架。它的部署架构有两种模式:Solo模式,即单Orderers架构;Kafka模式,即多Orderers架构。
以下我们部署一个Solo模式的测试环境:
1、基础环境准备
1、主机一台
最低配:2C4G
推荐配置:4C8G
2、安装Docker
# 列出所有的docker版本
yum list docker-ce --showduplicates | sort -r
# 安装指定的docker版本
yum install docker-ce-<VERSION_STRING>
3、安装Docker-compose
curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
4、安装Python3
# 下载python3
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
# 解压、编译即可
5、安装Go
# 下载Go
wget https://studygolang.com/dl/golang/go1.10.1.linux-amd64.tar.gz
# 解压、设置环境变量
export GOROOT=/root/go
export GOPATH=/root/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
6、安装nodejs、npm
# 下载nodejs
wget https://npm.taobao.org/mirrors/node/v8.0.0/node-v8.0.0-linux-x64.tar.xz
# 解压、配置软链接
ln -s /root/node-v8.0.0-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v8.0.0-linux-x64/bin/npm /usr/local/bin/npm
2、安装Fabric网络
1、Fabric源码下载
git clone https://github.com/hyperledger/fabric-samples
2、下载需要的二进制执行文件
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
# 解压、配置PATH
export PATH=$PATH:/root/fabric-samples/bin
3、生成网络工件
# 进入到First-Network目录,执行如下目录
./byfn.sh generate
输出结果如下:
Generating certs and genesis block for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds
Continue? [Y/n] Y
proceeding ...
/root/fabric-samples/bin/cryptogen
##########################################################
##### Generate certificates using cryptogen tool #########
##########################################################
+ cryptogen generate --config=./crypto-config.yaml
org1.example.com
org2.example.com
+ res=0
+ set +x
/root/fabric-samples/bin/configtxgen
##########################################################
######### Generating Orderer Genesis block ##############
##########################################################
CONSENSUS_TYPE=solo
+ '[' solo == solo ']'
+ configtxgen -profile TwoOrgsOrdererGenesis -channelID byfn-sys-channel -outputBlock ./channel-artifacts/genesis.block
2019-04-23 08:45:23.484 UTC [common.tools.configtxgen] main -> INFO 001 Loading configuration
2019-04-23 08:45:23.599 UTC [common.tools.configtxgen.localconfig] completeInitialization -> INFO 002 orderer type: solo
2019-04-23 08:45:23.600 UTC [common.tools.configtxgen.localconfig] Load -> INFO 003 Loaded configuration: /root/fabric-samples/first-network/configtx.yaml
2019-04-23 08:45:23.743 UTC [common.tools.configtxgen.localconfig] completeInitialization -> INFO 004 orderer type: solo
2019-04-23 08:45:23.744 UTC [common.tools.configtxgen.localconfig] LoadTopLevel -> INFO 005 Loaded configuration: /root/fabric-samples/first-network/configtx.yaml
2019-04-23 08:45:23.754 UTC [common.tools.configtxgen] doOutputBlock -> INFO 006 Generating genesis block
2019-04-23 08:45:23.755 UTC [common.tools.configtxgen] doOutputBlock -> INFO 007 Writing genesis block
+ res=0
+ set +x
#################################################################
### Generating channel configuration transaction 'channel.tx' ###
#################################################################
+ configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel
2019-04-23 08:45:23.830 UTC [common.tools.configtxgen] main -> INFO 001 Loading configuration
2019-04-23 08:45:23.968 UTC [common.tools.configtxgen.localconfig]<