Corda Flow参与者如何添加&;去除

Corda Flow参与者如何添加&;去除,corda,Corda,如果原始交易没有参与者,我们是否可以在后续交易中添加/删除参与者 我有一个甲方,它创建了一个交易并添加了一个参与者乙方。在交易中创建的状态与乙方共享。有状态属性,如FirstName、LastName和Status。 乙方将状态更改为绿色,然后交易完成并记录到乙方和甲方的保险库中 甲方和丙方遵循相同的流程。 甲方和丁方遵循相同的流程。 ------乙方 / 甲方/----丙方 \ ------丁方 我有一个用例,其中乙方、丙方、丁方可以将状态更改为绿色。一旦所有状态变为绿色,我想在甲方启动流程

如果原始交易没有参与者,我们是否可以在后续交易中添加/删除参与者

  • 我有一个甲方,它创建了一个交易并添加了一个参与者乙方。在交易中创建的状态与乙方共享。有状态属性,如FirstName、LastName和Status。 乙方将状态更改为绿色,然后交易完成并记录到乙方和甲方的保险库中

  • 甲方和丙方遵循相同的流程。 甲方和丁方遵循相同的流程。 ------乙方 / 甲方/----丙方 \ ------丁方

    我有一个用例,其中乙方、丙方、丁方可以将状态更改为绿色。一旦所有状态变为绿色,我想在甲方启动流程

    在Corda中实现这一点的最佳方法是什么?

    1)一种方法是让您的州属性有一个参与方列表。 在state类中重写的getParticipants()方法中,返回此列表。 现在,在创建状态时,您可以添加任意数量的参与方。 一旦状态被持久化。您可以立即更新此状态,并在“参与方”字段中添加任意数量的参与者

    2) 在这里不确定,但如果你是政党不可知论者,你可以在你的州有一个状态枚举,从松、梨、青、绿(绿色顺序)开始,让每个政党相应地更新状态。一旦变绿,你就可以开始流动了。让你的状态可以安排,并检查它是否是绿色的,你可以启动流程来做任何你想做的事情

    PS:这是一个我可以从头顶上想到的解决方法,我不确定这是否是在corda中合适的方法

    1)是的,您可以通过将参与者放在参与者列表中来添加或删除参与者。您可以在开始时将其初始化为null,只需记住将
    flowSession
    发送给参与状态/事务的所有人。但是,通过执行此操作,请务必注意,交易链(走链)仍将适用,因此新添加的参与者将能够查看该州的历史记录,因此,如果需要向特定方提供敏感信息,则该州的所有参与者都将获得该州的敏感信息

    2) 是的,您也可以这样做,流程有两个部分:
    @InitiatingFlow
    @InitiatedBy
    (响应者)流程。您可以在此处放置逻辑,以查询vault中的相关交易并执行逻辑操作