Corda的3名参与者之间的交易

时间:2018-05-17 12:01:07

标签: corda

您是否有任何示例如何在参与者A,B,C之间执行多个交易。我可以在2个参与方A和B之间轻松完成。在没有结果的情况下在Corda官方论坛上进行相同的讨论Intent 'actions.intent.CALL' is using the reserved namespace. Please choose a name that does not start with 'actions'. 可能吗?你有什么例子吗?

2 个答案:

答案 0 :(得分:1)

如果您要发布新州,您只需更改此州的参与者即可确保所有各方都获得新州。这是我用KYC数据创建的一个例子。这个示例是更新状态(不发布新状态),但同样的原则适用 - 只需更改参与者列表即可控制谁将看到该状态。 KYC州如下:

@CordaSerializable
data class State(val firstName: String, val lastName: String, val accountNum: String, val owner: AbstractParty,
                 override val linearId: UniqueIdentifier = UniqueIdentifier(), val banksInvolved: List<AbstractParty> = emptyList()) : QueryableState, ContractState, LinearState {

    //Each time a TD is issued with this KYC data, the bank it is issued to is added to this banks involved list, meaning the data is now stored in that banks vault
    override val participants: List<AbstractParty> get() = banksInvolved.plus(owner)

此参与者变量是将此状态存储在其保管库中的所有节点的列表(即将通知状态创建,更新等)。您可以在此处添加新节点,以便能够查看其保管库中的状态。

然后在流程中,要通知新银行他们已收到KYC数据,我们只需将状态添加为输出,并将新银行添加到banksInvolved列表中。这将使这家新银行成为这个州的参与者:

 builder.addOutputState(KYCData.first().state.copy(data = KYCData.first().state.data.copy(
                banksInvolved = KYCData.first().state.data.banksInvolved.plus(issuingInstitue)))) //Same state but with a new bank involved - i.e able to view this KYC data

答案 1 :(得分:0)

检查你的州,你可以在那里提到交易的参与者名单。