超级账本交易内存池

时间:2018-07-03 21:28:41

标签: hyperledger

我试图了解Hyperledger中的“事务内存池”的工作方式。我主要在这里查看文档:{​​{3}} 我知道比特币是如何工作的,我在用“比特币”来思考(因此,“ mempool”一词) 因此,据我了解,在超级账本中有3个方面:应用程序,对等方和订购者。各方都有来自MSP的权限凭证。提交交易的应用程序首先需要从许多同伴那里获得足够数量的认可。在将这些背书附加到交易之后,它将其发送给订购者,将其放入其“内存池”。 在文档中,它明确指出不可能发生分叉,并且如果某个事务包含在块中,则该事务是最终的。 我的问题是:应用程序收到认可并将交易发送给订购者后,我们如何确定它不会将其发送给另一个订购者?如果两个不同的订购者的内存中有相同的交易(在发布相关块之前),将会发生什么?

1 个答案:

答案 0 :(得分:1)

Hyperledger Fabric中没有内存池的概念。理想情况下,在生产环境中,所有事务都将写入到一个容错崩溃的Kafka集群中,该集群可为所有订购服务节点提供所有事务的单一视图。订购者会从Kafka中读取内容以削减交易量,但不会将其发送给其他订购者。

您可以在这里的答案中进一步了解它:Transactions order in a channel with multiple Orderers