Corda - 具有不同参与者集的多状态交易
Corda - multi-state transactions with different participant sets
我有一个场景,我想向网络发布多个状态,但这些状态有不同的参与者
例子
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签名
是否可以进行这种交易;即单笔交易有多个状态,每个状态可能有不同的参与者?
是的,您不需要做任何特别的事情。
- 命令指定谁需要签名的公钥。
- 各州参与者指定各州的分发列表。
Commands中列出的PublicKeys通常是交易状态参与者列表中PublicKeys的子集。
请记住,交易的分发列表将是每个州所有参与者的集合。
我有一个场景,我想向网络发布多个状态,但这些状态有不同的参与者
例子
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签名
是否可以进行这种交易;即单笔交易有多个状态,每个状态可能有不同的参与者?
是的,您不需要做任何特别的事情。
- 命令指定谁需要签名的公钥。
- 各州参与者指定各州的分发列表。
Commands中列出的PublicKeys通常是交易状态参与者列表中PublicKeys的子集。
请记住,交易的分发列表将是每个州所有参与者的集合。