首页 > 解决方案 > Corda 数据篡改尝试

问题描述

我已经运行了 Corda IOU 示例,在扫描 H2 数据库后,我在 h2 数据库中找到了表 IOU_STATES。我将值从 50 更改为 70。然后刷新 Ui 但在 UI 上它仍然显示值 50...我需要知道 corda 在 H2 或任何本地存储中实际存储数据的位置... VaultQueryBy 如何从本地或 H2 检索它?那么如何在 UI 上显示未篡改的值呢?

编辑:通过 SQL 语句更改状态值后,它不会反映在 UI 上。UI 默认调用 API 调用 VaultQueryBy ...我的问题是,即使我更改了 DB 中的值,它仍然如何在同一节点上显示未篡改的值...?

谢谢

标签: corda

解决方案


实际状态本身存储在 中NODE_TRANSACTIONS,作为将其创建为输出的事务的 blob 的一部分。

有关状态的数据也被存储:

  • VAULT_STATES中,作为一个 blob
  • VAULT_FUNGIBLE_STATES中,如果它实现了FungibleAsset接口,则作为 blob
  • VAULT_LINEAR_STATES中,如果它实现了LinearState接口,则作为 blob
  • 如果状态实现接口,则在一个或多个用户定义的自定义表中QueryableState,作为一组人类可读字段

在示例 CorDapp 中:

因此,您的更改不会反映在前端。


推荐阅读