Kafka模式简介
Hyperledger Fabric采用kafka方式实现排序(orderer)服务的集群,kafka模块被认为是半中心化结构。顺便提一下,去中心化的BFT(拜占庭容错)排序(orderer)服务集群方式目前还在开发,还没有规定发布时间,将在1.x周期内发布,可以关注跟踪FAB-33的更新。
Kafka模式由排序(orderer)服务、kafka集群和zookeeper集群组成。每个排序(orderer)服务相互之间不通信,只与kafka集群通信,kafka集群与zookeeper相互连接。 Fabric网络中的各节点(Peer)收到客户端发送的交易请求时,把交易信息发送给与其连接的排序(orderer)服务,交由排序(orderer)服务集群进行排序处理。
配置
orderer1.example.com,kafka1,zookeeper1 | 192.168.3.98 |
---|---|
orderer1.example.com,kafka1,zookeeper1 | 192.168.3.97 |
orderer1.example.com,kafka1,zookeeper1 | 192.168.3.94 |
peer0.org1.example.com | 192.168.10.174 |
peer1.org1.example.com | 192.168.10.173 |
peer0.org2.example.com | 192.168.3.93 |
安装
在六台机器上安装依赖工具docker、go、fabric源码
docker就不多说了,17,03以上就可以,go可以yum安装
1 | 安装fabric源码: |
部署
创建创世快
1 | # cd $GOPATH/src/github.com/hyperledger/fabric |
1 | bin目录从fabric源码里面拷过来,这样方便生成块 |
完事之后,把kafka目录,拷到所有机器上
部署kafka、zk
1 | zk的yaml文件: |
1 | kafka的yaml文件: |
部署orderer
1 | 因为咱们的fabric证书,没生成tls,所以下面的配置文件需要把tls去掉,zk,kafka都各自按照上述步骤配置在三台不同机器上,orderer也一样 |
部署peer
1 | # cat docker-compose-peer.yaml |
启动
1 | docker-compose -f docker-compose-zookeeper.yaml up -d |
创建channel
1 | 进入cli: |
之后切换变量,批量加就可以了