Corda 一个科尔达州能与多个合同合作吗?

Corda 一个科尔达州能与多个合同合作吗?,corda,Corda,CORDAAPI没有显式地链接一个状态和它的契约,允许我在具有相同状态类的不同事务中使用不同的契约 transactionBuilder1 .addOutputState(MyState(), MyStateContract::class.qualifiedName!!) ... transactionBuilder2 .addOutputState(MyState(), SecondContract::class.qualifiedName!!) 在什么情况下我需要这种灵活

CORDAAPI没有显式地链接一个状态和它的契约,允许我在具有相同状态类的不同事务中使用不同的契约

transactionBuilder1
    .addOutputState(MyState(), MyStateContract::class.qualifiedName!!)

...
transactionBuilder2
    .addOutputState(MyState(), SecondContract::class.qualifiedName!!)
在什么情况下我需要这种灵活性?与州一起指定合同名称的缺点是什么

// A hypothetical implementation of Corda API

@CordaSerializable
interface ContractState {
    val participants: List<AbstractParty>
    val contractClassName: String
}    

....
transactionBuilder
    .addOutputState(MyState())
//Corda API的假设实现
@可互换
界面收缩状态{
val参与者:名单
val contractClassName:字符串
}    
....
事务生成器
.addOutputState(MyState())
免责声明:
请注意,这是一个为什么的问题。我只是在寻找一个可能丢失的用例。一切都在为我工作。我不需要解决方法。

是的,在Corda 3.x中,您可以引用给定州的任何合同;这可能是出于对灵活性的考虑

CORDA4.x通过允许您注释合同管辖的州,为您建立州和合同之间的链接。如果状态是契约类的内部类,则此关联是自动的


您可以阅读关于这方面的各种攻击面以及如何处理它们的讨论。

是的,在Corda 3.x中,您可以参考给定状态的任何合同;这可能是出于对灵活性的考虑

CORDA4.x通过允许您注释合同管辖的州,为您建立州和合同之间的链接。如果状态是契约类的内部类,则此关联是自动的

您可以阅读关于这方面的各种攻击面以及如何处理它们的讨论