Corda:交易生成器是否会在 Corda 4.0 中自动添加引用状态?

Corda: Does transaction builder automatically add reference states in Corda 4.0?

关于 C4 中引用状态的问题:如果一个状态有两个 LinearPointer 类型的字段,那么 corda 会自动解析这 2 个指针并将它们添加到 tx.reference 状态 即使没有添加到流码?如果是,那么 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。参考状态。

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

如果您不希望状态自动添加为参考状态,则只需在状态中添加线性 ID 而不是线性指针。所以让贷方成为一个线性指针,让借款人成为一个 linearId。那应该可以解决问题![​​=10=]

自动添加 ref 状态的原因是为了给您额外的保证,即它们 1) 最新且 2) 具有经过验证的来源链。 另外,这样,他们可以很容易地通过 counter-parties.

解决