Corda - 具有不同参与者集的多州交易

时间:2018-05-31 10:33:18

标签: corda

我有一个场景,我想向网络发布几个状态,但状态有不同的参与者

示例

val state1 = ExampleState(ALICE, BOB)
val state2 = ExampleState(BOB, CHARLIE)

val command = Command(ExampleCommand.Issue(), ...participants?)

val transaction = TransactionBuilder(NOTARY)
    .addOutputState(state1, EXAMPLE_CONTRACT_ID)
    .addOutputState(state2, EXAMPLE_CONTRACT_ID)
    .addCommand(command)

观察 第一个州需要由ALICE和BOB签署,但第二个州需要由BOB和CHARLIE签署

是否可以执行此类交易;即具有多个州的单一交易,其中每个州可能有不同的参与者?

1 个答案:

答案 0 :(得分:1)

是的,你不需要做任何特别的事情。

  • 命令指定需要签名的PublicKeys。
  • 州参与者指定州的分发列表。

命令中列出的PublicKeys通常是事务中状态的参与者列表中PublicKeys的子集。

请记住,交易的分发列表将是每个州的所有参与者组合。