如何将参与者添加到现有的 Corda 状态,并确保他们收到更新?

how to add a participant to an existing Corda State, and ensure they receive updates?

这是一个示例场景:

甲方在乙方拥有Corda节点和身份之前收到乙方的数据。 A 方使用 B 方的临时字符串标识符临时管理其共享状态。当 B 方启动节点时,A 方需要使用 B 的身份更新共享状态(将 State 中的临时 ID 替换为 Party 引用)。

在这一点上,B 应该知道这个状态,如果有任何变化就会收到更新。确保这最后一部分的正确方法是什么?

您将创建一个交易:

  • 输入使用临时字符串标识 B 的共享状态
  • 输出相同的共享状态,但 B 使用 Party 对象标识并添加到参与者

作为参与者,B 将收到作为 FinalityFlow 的一部分的交易。

您需要考虑如何处理状态中的字段可以是标识符字符串或 Party 对象这一事实。部分选项:

  • 有两个总体状态的子类,因该字段不同
  • 在同一个文件中有可为空的字段
  • 定义一些包装标识符或 Party 对象的类型