我正在开发一个涉及 3 方(节点)即的cordap。A、B、C。
有2个流程:
流程 1: A 到 B 发行流程
状态对象中参与者字段的值:listOf(A, B)
结果:最新状态在节点 A 和节点 B 中可见
流程 2: B 到 C 传输流程
状态对象中参与者字段的值:listOf(B, C)
结果 :
我的问题是,即使 A 方没有参与流程 2,分类帐更新是如何在节点 A 上发生的,为什么它的状态不可见?
注意: 为了获取状态,我在每个节点上运行以下命令:
run vaultQuery contractStateType: com.example.Mystate
Run Code Online (Sandbox Code Playgroud)
小智 5
如果他/她不再是参与者,节点 A 应该不再具有状态。
the vault will store the state if it is one of the participants
Run Code Online (Sandbox Code Playgroud)
https://docs.corda.net/api-states.html#the-vault
节点 A 上的分类帐将状态标记为已消耗,并将节点 A 从参与者列表中删除。只有参与者列表中的身份才能在其分类帐/数据库中具有未使用状态。
状态和交易是不同的。节点 A 应该仍然拥有 Flow 1 中完整的历史交易。但是由于 Flow 2 改变了参与者,它应该不能再消费/查看最新的未消费状态。
| 归档时间: |
|
| 查看次数: |
432 次 |
| 最近记录: |