交易在具有多个Orderers的渠道中排序

时间:2018-02-23 21:02:45

标签: hyperledger-fabric

希望我对Hyperledger Fabric的理解是正确的,有人可以解释一下,如果有来自不同组织的同行,每个人都有他们自己的独立订购者,以正确的顺序进行交易,那怎么可能呢?

举一个例子,客户A将交易T1和T2发送给第一个组织的订货人,客户B将交易T3和T4发送给第二个组织的订货人。所有这四笔交易都应以正确的顺序结束在分类账中。

1 个答案:

答案 0 :(得分:2)

假设您有每个组织正在使用的多个订购服务节点(OSN)。多个订购服务节点将依赖的主要组件(在生产环境中)是容错(仅停止,而不是拜占庭)Kafka集群(更准确地说是Kafka ZooKeeper集合)。

Kafka中的消息(记录)被写入主题分区。 Kafka群集可以有多个主题,每个主题可以有多个分区。每个分区都是一个有序的,不可变的记录序列,不断附加到。

然后假设对于每个链我们都有一个单独的分区。一旦OSN执行了客户端身份验证和事务过滤,他们就可以将属于某个链的传入客户端事务中继到链的相应分区。然后,他们可以使用该分区并返回所有订购服务节点中通用的有序事务列表。 Kafka为所有OSN提供有关事务顺序的统一且单一来源的真实视图。 一旦消息按照它所写的顺序被回读,就会根据一些预定义的标准切断块(带有一个或多个事务),然后将它写入orrrer分类器,然后中继到提交对等体进行事务验证和提交。 / p>

enter image description here

此处有更多详情:https://docs.google.com/document/d/1vNMaM7XhOlu9tB_10dKnlrhy5d7b1u8lSY8a-kVjCO4

Kafka如何容错的详细信息: https://kafka.apache.org/documentation/