
在Fabric中,有以下3中典型共识机制。
Solo共识
solo共识机制只能用于单节点模式,即只能有一个Orderer节点,因此,其共识过程很简单,每接收到一个交易信息,就在共识模块的控制下产生区块并广播给节点存储到账本中。

Solo 模式下的共识只适用于一个Orderer节点,所以可以在实验、或者测试环境中使用。不建议用于生产环境。
Kafka共识
在Kafka共识模式中,Orderer与Orderer之间不会互相直接建立连接,而是与Kafka连接。
这种共识模式中,依赖于外部的Kafka集群系统和zookeeper集群系统。每个Orderer会把自己的交易发送给Kafka集群,交易在Kafka对应的topic中排序后, Kafka把排序后的交易推送给Orderer节点。Orderer节点收到交易后对交易打包,然后发给peer。

使用Kafka共识的Fabric网络,是一个伪的去中心化的网络,整个网络的“中心”- Kafka集群,需要一个专门的组织去运行。
Kafka并不是Fabric原生支持的,需要复杂的步骤去部署。
Raft共识
在Raft共识模式中,Orderer与Orderer之间直接建立连接,不依赖外部系统。
在Orderer节点中,会创建Raft的协程来处理与其他Orderer的通信,具体如下图:

在Raft模式中,每个组织都可以贡献排序节点共同组成排序服务,更好的去中心化。
每个通道都会运行Raft协议的单独实例。有N个通道的网络,就有N个Raft集群,每个Raft集群都有自己的主导排序节点。

672

被折叠的 条评论
为什么被折叠?



