首页 > 解决方案 > 如何将状态发送到corda中的多个帐户?

问题描述

1.)我正在使用帐户库在 Corda 中创建一个项目,我需要在单个事务中将状态发送到不同节点上的两个帐户。这在 Corda 中是否可行,如果可以,那怎么办?流代码示例将非常有帮助。

2.) 如何为 Corda 流程中的参与者列表创建流程会话或如何为多个参与者启动流程?

3.) 如何收集流程中多方的签名?

标签: blockchaincorda

解决方案


1 - 是的,你可以。如此处所述您可以使用:

  • sendAll(payload: Any, sessions: Set<FlowSession>):它将有效负载对象发送到所有提供的 FlowSession。它会与receiveAll(receiveType: Class<R>, sessions: List<FlowSession>): List<UntrustworthyData<R>>
  • sendAllMap(payloadsPerSession: Map<FlowSession, Any>):它向每个 FlowSession 发送一个可能不同的有效负载,由提供的 payloadsPerSession 指定。它会与receiveAllMap(sessions: Map<FlowSession, Class<out Any>>): Map<FlowSession, UntrustworthyData<Any>>

2 - 必须为每一方创建流程:

FlowSession session1 = initiateFlow(counterparty1);
FlowSession session2 = initiateFlow(counterparty2);

但是你可以将它们全部传递给同一个

sendAll(payload, listOf(session1, session2))

3 - 您必须使用CollectSignaturesFlow(initiallySignedTx, listOf(sessions)),它在输入中接收会话列表。您可以在这里查看它的实现和它的单元测试,或者在这里查看使用示例。


推荐阅读