确定谁运行 Corda 调度状态

Determine who runs a Corda schedule state

我正在实现一个 LinearState,它也是 Cordapp 中的一个 SchedulableState。当状态对象被创建并存储在他们的每个保险库中时,状态对象在 3 方之间共享和同意。但是,当预定的 activity 出现时,存储它的所有 3 个节点似乎都触发了下一个流程。

我如何 select 这些节点之一到 运行 流?

我在日程安排页面上看不到任何相关信息:https://docs.corda.net/event-scheduling.html

它更像是一种变通方法而不是解决方案:一种方法是检查您的 schedulableFlow,如果 Node 应该 运行 流程。您可以对应该 运行 节点的派对进行硬编码,比较它是否是同一方 运行 流,如果不是 return null。或者将信息放在 oracle 中并查询 oracle 以查看该节点是否具有 运行 所需流程的权限。

看看FixingRoleDecider的定义。

当计划的 activity 发生时,FixingRoleDecider 流程开始。 FixingRoleDecider 然后使用 if 条件仅在正确的节点上启动流。