知识卡片
Kafka共识组件借用分区严格有序作为排序真理来源
内容
Fabric的Kafka共识组件没有自己实现一套排序共识算法,而是把每个通道映射成Kafka的一个主题、固定用分区0,让每个Orderer节点同时充当该分区的生产者和消费者:所有Orderer把收到的交易转发进同一个Kafka分区,再各自从这同一个分区按偏移量顺序读回来。因为Kafka保证单分区内消息严格按FIFO持久化,所有Orderer节点读到的交易顺序天然完全一致,共识问题就被整体转移给了Kafka集群本身。这也是为什么Kafka共识组件只能获得CFT(崩溃容错)而非BFT能力——它继承的是Kafka多副本机制的容错边界,而不是一个真正的拜占庭共识算法。
参考来源
《Hyperledger Fabric技术内幕:架构设计与实现原理》第2章《Orderer排序节点》