如何在Corda中的流中更改流的启动器?

如何在Corda中的流中更改流的启动器?,corda,Corda,我有两个节点,分别是甲方和乙方。我使用一些数据通过甲方的节点点击一个API,然后我需要处理(在流内部)这些数据并创建一个状态,比如状态A(甲方将是参与者),然后我需要使用处理后的数据(从第一个流本身)启动另一个流,并将乙方作为发起方。那我该怎么做呢。基本上,我需要做的是在一个API调用中启动两个不同启动器的流。我认为您可以使用send和receive。在将由第二方启动的响应者类中,可以使用将由第一方启动的主类启动者发送的数据 class MainClass { @Init

我有两个节点,分别是甲方和乙方。我使用一些数据通过甲方的节点点击一个API,然后我需要处理(在流内部)这些数据并创建一个状态,比如状态A(甲方将是参与者),然后我需要使用处理后的数据(从第一个流本身)启动另一个流,并将乙方作为发起方。那我该怎么做呢。基本上,我需要做的是在一个API调用中启动两个不同启动器的流。

我认为您可以使用
send和receive
。在将由第二方启动的
响应者
类中,可以使用将由第一方启动的
主类启动者
发送的数据

    class MainClass {
        @InitiatingFlow
        @StartableByRPC
        open class MainClassInitiator(val ParameterFromApi: DataType,
                                      val NodeB: Party) : FlowLogic<SignedTransaction>() {
            @Suspendable
            override fun call(): SignedTransaction {

                val notary = serviceHub.networkMapCache.notaryIdentities[0]

                val initiator = NodeB

                val session = initiateFlow(initiator)
                val initiatorValue = session.sendAndReceive<SignedTransaction>(ParameterFromApi).unwrap { it }
            }
        }

        @InitiatedBy(MainClassInitiator::class)
        class Responder(val session: FlowSession) : FlowLogic<SignedTransaction>() {
            @Suspendable
            override fun call(): SignedTransaction {

                val request = session.receive<DataType>().unwrap { it }

    }
}
}
class类main类{
@启动流
@星表
打开类MainClassInitiator(val参数FromAPI:DataType,
val NodeB:参与方):FlowLogic(){
@暂停
重写趣味调用():SignedTransaction{
val notary=serviceHub.networkMapCache.NotaryIdentity[0]
val启动器=节点B
val会话=initiateFlow(启动器)
val initiatorValue=session.sendandereceive(ParameterFromApi).unwrap{it}
}
}
@发起人(MainClassInitiator::class)
类响应程序(val会话:FlowSession):FlowLogic(){
@暂停
重写趣味调用():SignedTransaction{
val request=session.receive().unwrap{it}
}
}
}

我们可以使用多重应答器类吗?我想我们不能使用。但是你可以打多次电话。