【问题标题】:How hyperledger fabric kafka consensus works超级账本结构 kafka 共识如何工作 【发布时间】:2019-03-07 10:09:15 【问题描述】: kafka 共识如何在超级账本结构中发挥作用? 如果我有三个订购者,哪一个会创建块。? 如何将消息传递给所有对等方。?它们是从 kafka 获取的,还是订购者负责交付它们? 【问题讨论】: 标签: hyperledger-fabric 【解决方案1】: 区块链中的共识涉及节点同意相同的交易顺序。 排序节点以相同的顺序向 Kafka 发送事务并从 Kafka 接收事务,因为 Kafka 呈现了共享队列的抽象。 所有排序者在从 kafka 读取足够的消息或足够的数据时创建块。此外 - 如果发送了事务但没有创建块,并且经过了足够的时间(超时) - 排序节点将向 Kafka 发送一条特殊消息,通知所有排序节点切块。这可确保所有排序者都根据超时时间切割区块,同时也确保它们切割相同的区块。 每个领导节点连接到一个随机排序节点,然后发送一个请求,说明它希望从哪个区块索引接收区块。然后 - 排序者从其文件系统中读取块并将它们发送给对等方。当对等点收到块时,它还会通过对等点内部的 gossip 组件将它们发送给其他对等点,以确保对等点保持同步。 【讨论】: 所以据我了解,如果我要消除 SPOF,我们应该使用最少的两个具有 KAFKA 共识的订购者。然而,迁移到 KAFKA 需要最少(4 个 Kafka 实例和 3 个 Zookeeper 实例)。开销是不是太大了? 等待 Raft orderer 准备好,那么你至少需要 3 个 orderer 节点。 什么时候可以期待 Raft Orderer? 希望明年年初