如何将参与者添加到现有Corda状态,并确保他们收到更新?
下面是一个示例场景: 甲方在乙方拥有Corda节点和身份之前从乙方接收数据。甲方使用乙方的临时字符串标识符临时管理其共享状态。当乙方启动节点时,甲方需要使用乙方的标识更新共享状态(将状态中的临时标识替换为参与方引用)如何将参与者添加到现有Corda状态,并确保他们收到更新?,corda,state-management,Corda,State Management,下面是一个示例场景: 甲方在乙方拥有Corda节点和身份之前从乙方接收数据。甲方使用乙方的临时字符串标识符临时管理其共享状态。当乙方启动节点时,甲方需要使用乙方的标识更新共享状态(将状态中的临时标识替换为参与方引用) 在这一点上,B应该意识到这个状态,如果有任何更改,B应该接收更新。确保这最后一部分的正确方法是什么?您将创建一个事务: 获取共享状态的输入,其中B使用临时字符串标识 作为输出具有相同的共享状态,但使用参与方对象识别并添加到参与者中的B 作为参与者,B将作为FinalityFlo
在这一点上,B应该意识到这个状态,如果有任何更改,B应该接收更新。确保这最后一部分的正确方法是什么?您将创建一个事务:
- 获取共享状态的输入,其中B使用临时字符串标识
- 作为输出具有相同的共享状态,但使用
对象识别并添加到参与者中的B参与方
FinalityFlow
的一部分接收交易
您需要考虑如何处理这样一个事实,即状态中的字段可以是标识符字符串或参与方
对象。一些选择:
- 有两个全局状态的子类,它们因此字段而不同
- 在同一个字段中有可为空的字段
- 定义包装标识符或
对象的某种类型参与方
FinalityHandler
流来接收作为FinalityFlow
的一部分广播的事务。因此,您不需要接受程序流。