首页 > 解决方案 > 超级账本交易内存池

问题描述

我试图了解“交易内存池”在 Hyperledger 中是如何工作的。我主要看这里的文档:http: //hyperledger-fabric.readthedocs.io/en/release-1.1/peers/peers.html#peers-and-orderers 我知道比特币是如何工作的,我在用“比特币”的术语来思考(因此是“内存池”这个词)所以据我了解,在超级账本中有 3 方:应用程序、对等方和订购方。各方都有来自 MSP 的许可凭证。提交交易的应用程序首先需要从多个对等方获取足够数量的背书。在将这些背书附加到交易后,它将其发送给一个排序者,该排序者将其放入其“内存池”中。在文档中,它明确指出不会发生分叉,并且如果交易包含在块中,则为最终交易。我的问题是:在应用程序收到背书并将交易发送给订购者后,我们如何确定它没有?t 将其发送给另一个订购者?如果两个不同的排序者在他们的内存中有相同的交易(在发布相关块之前)会发生什么?

标签: hyperledger

解决方案


Hyperledger Fabric 中没有内存池的概念。理想情况下,在生产环境中,所有事务都被写入 Crash Fault Tolerant Kafka 集群,从而为所有排序服务节点提供所有事务的单一视图。订购者从 Kafka 读回以切割交易块,他们不会将其发送给其他订购者。

您可以在我的回答中阅读更多相关信息:Transactions order in an channel with multiple Orderers


推荐阅读