如何在使用dfuse流API时有效地保持同步



我正在使用dfuse流API构建一个基于EOS的应用程序。我想保持智能合约中所有数据的同步视图。

我想确保我永远保持同步,这样我就不会错过任何一个区块。使用dfuse流API,我如何实现这一点?

使用Websocket API的with_progress功能,在处理每个块后,您将收到一条progress消息。

对于给定的流(对应于请求和关联的req_id(,当您收到块的progress时,保证您已经看到了查询中包含的所有内容(get_action_traces的操作或get_table_rows的行(。

如果你跟踪block_num和/或block_id,在断开连接/重新连接时,你可以在请求中提供它,并保证永远不会错过任何节拍,即使这意味着你正在重新处理1M块。

截至2018年11月22日,get_table_rows请求将流式传输包括"undo"/"redo"steptable_delta消息。这允许您的应用程序导航分叉,并确保应用程序与最长链的状态绝对同步。

查看文档https://docs.dfuse.io/并搜索CCD_ 14以获得更多细节。

最新更新