我使用 QueryableState 在 corda 中创建了自定义表。例如IOU 状态表。
我可以看到存储在这种表中的自定义信息。
但我观察到,如果甲方和乙方正在进行交易,那么这
自定义信息存储在这两个地方,例如欠条状态
表在节点 A 的分类账以及节点 B 的分类账中创建。
自定义信息存储在甲方和乙方的账本中。
我的问题是:-
如果某个交易正在从 PartyA 的节点处理,那么
我想存储部分交易数据,即自定义数据仅在 partyA 的 Ledger 中。*等级 。即仅限 A 部分的账外。
不应与当事人共享。
在简单的情况下,如何存储仅节点特定的账本自定义数据?
等待一些答复...
Thanks.
有多种方法可以实现这一目标:
- 根本不要使用 Corda!如果数据确实不在账本内,那么为什么还要使用 Corda?相反,请将其存储在单独的数据库中。当然,如果需要,您可以将其与账本数据“JOIN”,因为账本数据存储在 SQL 数据库中。
- 与第一点类似,除了您可以使用
jdbcSession()
的功能ServiceHub
在节点的数据库中创建自定义表。可以从您的流程中轻松访问该表。
- 创建一个
ContractState
只有一个参与者的对象:想要存储数据的节点。我称其为“单边”状态,即只有一方存储的状态。
最重要的是,如果您不想与对方共享某些数据,那么永远不应该在另一方可能看到的 corda 状态对象或附件中披露这些数据。反而:
- 在流程内部,您可以使用共享状态对象(例如 IOU)中封装的数据来派生私有数据
- 或者,如果在流程开始时提供数据,则使用上述方法之一在本地存储私有数据
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)