Hyperledger fabric 订购方和提交方花时间将数据放入分类账

Hyperledger fabric 订购方和提交方花时间将数据放入分类账,hyperledger-fabric,Hyperledger Fabric,我们面临一个与将数据放入分类账相关的问题。如果我们试图将数据插入分类账,然后立即获取插入的数据,我们将一无所获。如果我们在大约3秒钟后提出要求,一切似乎都很好。为了获得最佳的用户体验,有什么解决方案可以克服这种延迟?事务的行程是: 客户机(起点) 订购服务 卡夫卡簇 订购服务 提交同伴 其中: 仅当您使用基于卡夫卡的订购服务时,阶段3和4才适用 交易在提交到分类账之前在第5阶段得到验证 只有在所有这些阶段都完成后,您才能看到提交到分类账的交易,因此交易不会立即显示是正常的 至于3秒延迟,我怀

我们面临一个与将数据放入分类账相关的问题。如果我们试图将数据插入分类账,然后立即获取插入的数据,我们将一无所获。如果我们在大约3秒钟后提出要求,一切似乎都很好。为了获得最佳的用户体验,有什么解决方案可以克服这种延迟?

事务的行程是:

  • 客户机(起点)
  • 订购服务
  • 卡夫卡簇
  • 订购服务
  • 提交同伴
  • 其中:

    • 仅当您使用基于卡夫卡的订购服务时,阶段3和4才适用
    • 交易在提交到分类账之前在第5阶段得到验证
    只有在所有这些阶段都完成后,您才能看到提交到分类账的交易,因此交易不会立即显示是正常的

    至于3秒延迟,我怀疑这是因为您的
    order.BatchTimeout
    设置为默认值2秒,而您的
    order.BatchSize.MaxMessageCount
    设置为大于1的值(默认值为10)

    这意味着在满足这两个条件之前,订购服务不会剪切块(并将其交付给提交的对等方)。您发送的事务少于
    order.BatchSize.MaxMessageCount
    事务,因此订购服务需要等待
    order.BatchTimeout
    秒,然后才能切断数据块


    为了减少交易显示在分类账中所需的时间,请将
    order.BatchTimeout
    设置为一个较小的值(例如,1毫秒),和
    order.BatchSize.MaxMessageCount
    到1.

    非常感谢@kostas我能做的一件事是,在将数据移交给order和提交人插入分类账后。我可以从couchdb获取数据。因为couchdb会立即将数据插入他的文档中。这一概念是否存在任何风险或缺陷@Kostas任何最终进入区块链的数据都必须经过我上面描述的路径。这也适用于CouchDB分类账。您正在处理的系统是异步的,您不应该对它有同步的期望。使用事件中心在事务进入分类账时收到通知,并从那里开始工作。