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中引用状态
答案 0 :(得分:2)
NODE_TRANSACTIONS
表将每个交易ID映射到交易的Blob。此Blob包含交易的输出状态以及交易的其他组成部分VAULT_STATES
表通过创建状态的事务ID以及在该事务的输出中的索引来引用每个状态。然后,使用该对(ID,输出IDX)对从NODE_TRANSACTIONS
表中的相应Blob中检索状态对象