我一直在调查交易者演示过程,使用调试并查看数据库(买方和卖方)。在运行runSeller演示结束时,我注意到在完成运行TwoPartyTradeFlow时跟在数据库中。请帮助理解。
问题:
为什么上次交易的商业票据输出不会传播到两个数据库(卖方和买方)?卖方只看到保险库表中的现金产出,买方看到商业票据输出和现金输出未支出现金。
为什么卖家的CP_STATES表不会看到最终输出?这两个数据库不应该包含相同的条目吗?
答案 0 :(得分:0)
节点库的目的是允许它轻松识别它可以使用的状态。它只会在Vault中存储它可能稍后可能以某种方式消耗的状态。
在现金的情况下,只有所有者能够使用它,因此只有现金的所有者才会将该州存储在其保险库中。在代码中,这是通过使Cash.State
成为OwnableState
的子类来实现的。
两个节点仍应在其事务存储中看到该事务。