我有一个用例,我需要将数据发送给多个对方,但各方需要彼此保持匿名。在从对方收回背书后,我需要提交整个交易。需要保持整个交易的原子性。
使用Flow实现此目标的最佳方法是什么。
答案 0 :(得分:1)
为此,您需要使用机密身份。机密身份由AnonymousParty
类在州内表示:
class MyState(val party: AnonymousParty): ContractState {
override val participants = listOf<AnonymousParty>(party)
}
Party
和AnonymousParty
之间的区别在于AnonymousParty
仅通过公钥识别参与者。只要每个交易参与者为交易生成新的公钥,他们的身份以及他们在该州的参与将是秘密的。
要创建涉及机密身份的交易,您必须执行以下操作:
SwapIdentitiesFlow
以自动为所有参与者创建机密身份每一方最终都会在他们的保险库中进行交易,但每一方只能通过匿名公钥识别,因此每一方的参与都会被同行保密。
您可以在此处找到有关此API的文档:https://docs.corda.net/api-identity.html。您可以在此处找到机密身份的示例用法:https://github.com/joeldudleyr3/whistleblower。