corda - 如何检查 Corda 中是否存在全局状态?
问题描述
我有一个具有全局 ID 的州。我想在发布状态之前检查状态是否已经由其他节点发布。
有没有办法可以检查整个链上的状态,或者我必须通知所有节点发布新状态?
解决方案
Corda 的隐私模型意味着没有可以检查具有相同 ID 的现有状态的中央“链”。
如果您只需要一个唯一的状态 ID,请使用类似的东西UniqueIdentifier
,最好通过实现LinearState
接口 ( https://docs.corda.net/api-states.html#linearstate )。UniqueIdentifier
包含一个 128 位的唯一标识符。这足以避免LinearState
网络上所有 s 之间的冲突,尽管没有分配 ID 的集中存储库。
如果这还不够好,并且必须根据某种方案而不是随机分配 ID,您将需要创建一些集中的 oracle 节点来跟踪已发布的 ID,并且只签署之前未使用过分配的 ID 的交易.
推荐阅读
- c++ - 递归函数中的运行时错误:在抛出“std::bad_alloc”what() 的实例后调用终止:std::bad_alloc
- asp.net-core - 以编程方式为 ApplicationsInsights 设置不同的 InstrumentationKey
- java - 当我将领域数据库本地存储在文件夹中时,我的应用程序在 android 11 上崩溃?
- flutter - 在 SingleChildScrollView 小部件中将小部件扩展尺寸设为最小高度
- pandas - 分组排序内的 Pandas 多索引系列
- python - 为我的项目创建了注册页面并使用了用户模型,但登录后数据未保存在管理员中
- javascript - 如何指定特定区域的不透明度
- sql - 检测间隙并创建缺失的时间段行
- hangouts-chat - 环聊互动卡片:如何添加文本字段?
- javascript - 为什么这个承诺不继续等待?