hyperledger-fabric - 订购者和提交者花时间将数据放入分类帐
问题描述
我们正面临一个与将数据放入分类帐相关的问题。如果我们尝试将数据插入分类帐,然后立即获取插入的数据,我们将一无所获。如果我们在 3 秒左右后请求,一切似乎都很好。有什么解决方案可以克服这种延迟以获得最佳用户体验?
解决方案
一笔交易的行程是:
- 客户(起点)
- 订购服务
- 卡夫卡集群
- 订购服务
- 提交节点
在哪里:
- 仅当您使用基于 Kafka 的订购服务时,第 3 阶段和第 4 阶段才适用
- 交易在提交到账本之前在第 5 阶段得到验证
只有在所有这些阶段都完成后,您才能看到提交到账本的交易,因此交易不会立即显示是正常的。
至于 3 秒延迟,我怀疑发生这种情况是因为您Orderer.BatchTimeout
的默认设置为 2 秒,而您Orderer.BatchSize.MaxMessageCount
的值设置为大于 1(默认为 10)。
这意味着在满足这两个条件中的任何一个之前,排序服务都不会切割一个块(并将其交付给提交节点) 。您发送的交易少于Orderer.BatchSize.MaxMessageCount
交易,因此排序服务需要等待Orderer.BatchTimeout
几秒钟才能切断区块。
为了减少交易显示在您的分类帐中所需的时间,请设置Orderer.BatchTimeout
为一个较小的值(例如 1 毫秒),然后Orderer.BatchSize.MaxMessageCount
设置为 1。
推荐阅读
- asp.net-core-mvc - 有没有办法我可以接收到我的电子邮件的代码,而不是从 Google Authenticator App 输入它?
- javascript - Leafletjs 自定义坐标
- android - 如何找到可用于通过 USB 与 qcom 调制解调器通信的正确端口?
- vba - 创建标题的脚本
- nuget - 在 Teamcity 源中手动上传 Nuget 包
- chatbot - 多类文本分类无法检测 OutOfBound。(聊天机器人应用的关键问题)
- css - 为什么这个 flex-wrap 孩子会增加父宽度以及如何防止?
- laravel - 如何在“post sayı”列中显示用户的帖子数?
- sed - sed 命令替换文件中的第一个匹配项
- amazon-web-services - 试图将所有流量从 EC2 重定向到容器