hyperledger - 超级账本交易内存池
问题描述
我试图了解“交易内存池”在 Hyperledger 中是如何工作的。我主要看这里的文档:http: //hyperledger-fabric.readthedocs.io/en/release-1.1/peers/peers.html#peers-and-orderers 我知道比特币是如何工作的,我在用“比特币”的术语来思考(因此是“内存池”这个词)所以据我了解,在超级账本中有 3 方:应用程序、对等方和订购方。各方都有来自 MSP 的许可凭证。提交交易的应用程序首先需要从多个对等方获取足够数量的背书。在将这些背书附加到交易后,它将其发送给一个排序者,该排序者将其放入其“内存池”中。在文档中,它明确指出不会发生分叉,并且如果交易包含在块中,则为最终交易。我的问题是:在应用程序收到背书并将交易发送给订购者后,我们如何确定它没有?t 将其发送给另一个订购者?如果两个不同的排序者在他们的内存中有相同的交易(在发布相关块之前)会发生什么?
解决方案
Hyperledger Fabric 中没有内存池的概念。理想情况下,在生产环境中,所有事务都被写入 Crash Fault Tolerant Kafka 集群,从而为所有排序服务节点提供所有事务的单一视图。订购者从 Kafka 读回以切割交易块,他们不会将其发送给其他订购者。
您可以在我的回答中阅读更多相关信息:Transactions order in an channel with multiple Orderers
推荐阅读
- c# - 是否可以在源代码之外的 xaml 中拥有皮肤?(更改 xaml 无需重新编译)
- php - 在前端为 wordpress post meta 添加中继器字段
- php - 如何在 MAC M1 中为 php 版本 8.x 启用 intl 扩展?
- flutter - 空值检查运算符用于颤振中的空值
- c++ - QMetaEnum 不从枚举中读取键
- python - series.shape 和 series.ndim 等如何在复杂(困难)数组上工作
- javascript - 无法通过 npm 安装模块。没有使用代理
- python - 在 matplotlib 中更改条形图第二部分的值
- powershell - 我正在尝试使用 powershell 自动更新 vmware vsan hcl 数据库
- excel - 如何使用 VBA 从共享工作簿中删除所有其他用户的访问权限?