Hyperledger Fabric 目前支持两种共识机制,上篇讲到了 Solo 共识的部署,适用于开发环境。这篇讲一下 Kafka 共识。
Kafka 共识原理
准备工作
在部署之前清除上篇所有的数据。
1 | python3 transform/delete.py |
配置文件
crypto-config.yaml
修改 OrdererType Solo 为 kafka
1 | Profiles: |
部署
Kafka 和 Zookeeper 集群
为了可用性,至少需要 4 个 Kafka 和大于 3 个奇数 Zookeeper 实例。具体可以看官方文档。
部署之前需要修改 0pv.yaml 中的 nfs 地址。
1 | cd kafka |
等待 kafka Running。后边的步骤和上篇部署章节完全一致。
清除集群
先按上篇方法清除 Fabric 集群,然后:
1 | cd kafka |
遗留问题
这里使用默认的 LevelDB。使用 CouchDB 的话,在 Kafka 共识中链码操作会有问题,但安装和实例化都正常,在 peer 日志中会看到相关写入报错,但原因未知。在 Solo 模式下,CouchDB 写入正常。