Corda中的产权负担有什么用

时间:2019-03-04 14:14:18

标签: corda

在Corda中,我能够在无障碍状态的情况下将自己的障碍状态花费在独立交易中。这是设计使然还是我缺少什么?

截至目前,我只能通过合同强制执行产权负担。

我已经使用

实现了保留
 transactionBuilder.addOutputState(state =  TesterState(data = 1, participants = listOf(serviceHub.myInfo.legalIdentities.first())),contract =  TesterContract.ID, notary = serviceHub.networkMapCache.notaryIdentities.first(), encumbrance = 1)
    transactionBuilder.addOutputState(state =TimeEncumbranceState(Timestamp =  System.currentTimeMillis(), participants =  listOf(serviceHub.myInfo.legalIdentities.first())),contract =  TimeEncumbranceContract.ID,notary =  serviceHub.networkMapCache.notaryIdentities.first())

如果没有合同中的产权负担检查,我也可以单独使用这些状态。

是否有非合同强制执行产权负担?

1 个答案:

答案 0 :(得分:0)

假定您有State A(处于保留状态)处于State B(处于保留状态)。保留状态(如果存在)会强制对保留状态进行其他控制。没有encumbered state

,您就无法花费encumbrance state

但是,在截至Corda v3.x的当前保留设计中,没有人阻止您自己花费encumbrance state(因此,恶意用户确实可以冻结A,因为A由{{1}引用B })

通过始终需要循环保留链接,可以轻松解决上述问题。国A由国B负担,国B由国A负担。stateRef因此,国B不能自己花费。

Corda 4.x应该添加了针对产权负担的双向检查。请参见here。但是,建议您不要使用负担。