Corda状态持续存在于数据库中的确切位置(IOU示例)

时间:2018-08-14 15:07:27

标签: corda

Corda将数据保存到Vault中。保管箱不过是数据库。默认情况下,它支持H2数据库。 Corda将状态存储为BLOB到H2表中。我已经对表NODE_TRANSACTION,VAULT_LINEAR_STATES和VAULT_STATES执行了扫描。我运行IOU示例并执行了几笔交易。我截断了NODE_TRANSACTION和VAULT_LINEAR_STATES并在UI上进行了测试,但UI仍在显示State的数据。 VAULT_STATES正在显示数据,但是如何显示仍然是一个问题。在VAULT_STATES中没有找到BLOB,我的问题是它确切地在db中引用状态

1 个答案:

答案 0 :(得分:2)

  • NODE_TRANSACTIONS表将每个交易ID映射到交易的Blob。此Blob包含交易的输出状态以及交易的其他组成部分
  • VAULT_STATES表通过创建状态的事务ID以及在该事务的输出中的索引来引用每个状态。然后,使用该对(ID,输出IDX)对从NODE_TRANSACTIONS表中的相应Blob中检索状态对象