Corda:Trader-demo - 数据库观察

时间:2017-09-13 14:46:14

标签: corda

我一直在调查交易者演示过程,使用调试并查看数据库(买方和卖方)。在运行runSeller演示结束时,我注意到在完成运行TwoPartyTradeFlow时跟在数据库中。请帮助理解。

https://discourse-cdn-sjc1.com/standard2/uploads/corda/original/1X/4249978e55f7e37dca53163546374a25644d5f64.png

问题:

为什么上次交易的商业票据输出不会传播到两个数据库(卖方和买方)?卖方只看到保险库表中的现金产出,买方看到商业票据输出和现金输出未支出现金。

为什么卖家的CP_STATES表不会看到最终输出?这两个数据库不应该包含相同的条目吗?

1 个答案:

答案 0 :(得分:0)

节点库的目的是允许它轻松识别它可以使用的状态。它只会在Vault中存储它可能稍后可能以某种方式消耗的状态。

在现金的情况下,只有所有者能够使用它,因此只有现金的所有者才会将该州存储在其保险库中。在代码中,这是通过使Cash.State成为OwnableState的子类来实现的。

两个节点仍应在其事务存储中看到该事务。