Corda数据篡改尝试

时间:2018-08-13 13:57:13

标签: corda

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

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

Thnx

1 个答案:

答案 0 :(得分:2)

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

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

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

在示例CorDapp中:

结果,您的更改没有反映在前端。