Corda:事务生成器是否在Corda 4.0中自动添加参考状态?

时间:2019-06-17 15:49:04

标签: corda

关于C4中参考状态的问题:如果一个状态具有两个类型为LinearPointer的字段,那么Corda会自动解析这2个指针并将其添加到tx。参考状态,即使未将其添加到流代码中?如果是,那么corda这样做的原因是什么?我指的是以下功能: https://github.com/corda/corda/blob/6769b00ed5249e2eb798428a35e54ab740cf3bee/core/src/main/kotlin/net/corda/core/transactions/TransactionBuilder.kt#L540

每次调用addInput,addOutput等时都会调用它。

例如:

data class IOUState(val value: Int,
                    val lenderParty: Party,
                    val borrowerParty: Party,
                    val lender: LinearPointer<IDState>,
                    val borrower: LinearPointer<IDState>,
                    override val linearId: UniqueIdentifier = UniqueIdentifier()):

我只希望将贷方添加到参考状态,但是我注意到Corda在内部向TX添加了借方。参考状态。

1 个答案:

答案 0 :(得分:1)

是的!它确实会自动添加。

如果您不希望将状态自动添加为ref状态,则只需在状态中添加线性ID,而不要添加线性指针。因此,使贷方为线性指针,借方为linearId。那应该可以解决问题!

自动添加ref状态的原因是为了给您额外的保证,即它们是1)当前的和2)已验证的来源链。 而且,通过这种方式,对方可以轻松解决这些问题。