如何可靠地观察Corda节点中的状态更新?

问题描述 投票:1回答:1

Corda中可用的ReconnectingCordaRPCOps.kt class具有以下注释:

* Note: There is no guarantee that observations will not be lost.
  1. 观察值可能丢失的条件是什么。
  2. 从Corda节点连续​​提取所有状态更新的可靠方法是什么?
blockchain corda
1个回答
0
投票

观察值可能丢失的条件是什么。

在重新连接期间,先前的观察者会自动从可观察对象中退订,并在再次建立连接后被重新订购。结果,如果在断开连接和重新连接之间的此窗口期间发生了任何事件,则不会将它们发送给可观察对象。

从Corda节点连续​​提取所有状态更新的可靠方法是什么?

当前,用于正常重新连接的A​​PI提供了两个附加的钩子onDisconnectonReconnect(请参阅文档here),可用于执行一些协调以发现这些未发出的更新。这可以通过使用时间窗口[disconnection_event_time - safety_offset, reconnection_event_time + safety_offset]查询节点的保管库,然后丢弃/重复删除已通过可观察对象看到的事件来实现。 safety_offset越大,在不丢失事件的情况下此方法越可靠。

© www.soinside.com 2019 - 2024. All rights reserved.