【问题标题】:Corda ownable state participant propertyCorda 可拥有的状态参与者财产
【发布时间】:2023-04-07 22:44:01
【问题描述】:

我已阅读enter link description here

根据这篇文章,OwnableState 参与者的节点将保存事务副本,但不保存状态副本。

根据 Corda 文档,OwnableState 是一个可以有一个所有者的合同状态。 OwnableState 具有参与者属性。我已将买方和卖方添加为 OwnableState 的参与者,但状态仅存储在 Owners 保险库中,而不是参与者。然而,在 LinearState 状态下,两个参与者的保险库都保持不变。

我需要了解 Corda 中 LinearState 参与者和 OwnableState 参与者之间的差异。

【问题讨论】:

    标签: corda


    【解决方案1】:

    这是一个节点的保险库用来决定节点是否应该存储状态的逻辑:

    internal fun isRelevant(state: ContractState, myKeys: Set<PublicKey>): Boolean {
        val keysToCheck = when (state) {
            is OwnableState -> listOf(state.owner.owningKey)
            else -> state.participants.map { it.owningKey }
        }
        return keysToCheck.any { it in myKeys }
    }
    

    言辞:

    • 对于OwnableState,如果OwnableState.owner 对应于节点的键之一,则节点将存储状态
    • 对于ContractState 和任何其他ContractState 子类,如果ContractState.participants 包含节点的键之一,则节点将存储状态

    【讨论】:

      猜你喜欢
      • 2013-12-09
      • 2018-11-01
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 2019-05-08
      相关资源
      最近更新 更多