查询保管库时,线性ID缺少未使用状态

时间:2018-06-19 12:55:43

标签: corda

我有一个关于基于UUID检索未消耗状态的查询。

val uuid = linearId.toUUID()
        val queryCriteria = QueryCriteria.LinearStateQueryCriteria(
                linearId = listOf(uuid))
        return services.vaultQueryBy<ContractState>(queryCriteria).states

问题陈述:一个ObligationState,由2个参与者的借方和贷方组成,从不同的交易过渡到不同的生命周期。但是在某个时候

  1. 在其保管库中查询该uuid的未使用状态时,它返回了0条记录。

在公证数据库上

node_notary_commit_log

╒════════════════╤══════════════════════════╕
│ transaction_id │ consuming_transaction_id │
╞════════════════╪══════════════════════════╡
│ Transaction A  │ Transaction B            │
├────────────────┼──────────────────────────┤
│ Transaction B  │ Transaction C            │
╘════════════════╧══════════════════════════╛

在借款人/贷方数据库上

vault_states

╒════════════════╤════════════════════╕
│ transaction_id │ consumed_timestamp │
╞════════════════╪════════════════════╡
│ Transaction A  │ T                  │
├────────────────┼────────────────────┤
│ Transaction B  │ T+1                │
├────────────────┼────────────────────┤
│ Transaction C  │ null               │
╘════════════════╧════════════════════╛

vault_linear_states

缺少交易C

╒════════════════╤══════╕
│ transaction_id │ uuid │
╞════════════════╪══════╡
│ Transaction A  │ XYZ  │
├────────────────┼──────┤
│ Transaction B  │ XYZ  │
╘════════════════╧══════╛

obligation_states模式表

╔════════════════╤══════════╤═══════════╗
║ transaction_id │ linearId │ lifecycle ║
╠════════════════╪══════════╪═══════════╣
║ Transaction A  │ XYZ      │ foo       ║
╟────────────────┼──────────┼───────────╢
║ Transaction B  │ XYZ      │ bar       ║
╚════════════════╧══════════╧═══════════╝

P / S这是带有PostgreSQL的Corda 3.0。

0 个答案:

没有答案