我有一个带有全局ID的州。我想在发布状态之前检查其他节点是否已经发布了状态。
有没有一种方法可以检查整个链上的状态,或者必须通知所有节点有关发布新状态的信息?
答案 0 :(得分:1)
Corda的隐私模型意味着没有中央“链”可以检查具有相同ID的现有状态。
如果您只需要一个唯一的ID,请使用UniqueIdentifier
之类的东西,最好通过实现LinearState
接口(https://docs.corda.net/api-states.html#linearstate)。 UniqueIdentifier
包含一个128位的唯一标识符。尽管没有集中分配的ID的存储库,它的大小足以避免网络上所有LinearState
之间发生冲突。
如果这还不够好,并且必须根据某种方案而不是随机分配ID,那么您将需要创建一些集中的oracle节点来跟踪已发布的ID,并且仅在未分配ID的交易中签名曾经使用过。