Corda 公证人签名后,启动器无法将状态提交到vault\u线性\u状态

Corda 公证人签名后,启动器无法将状态提交到vault\u线性\u状态,corda,Corda,我有一个关于基于UUID检索未使用状态的查询 val uuid = linearId.toUUID() val queryCriteria = QueryCriteria.LinearStateQueryCriteria( linearId = listOf(uuid)) return services.vaultQueryBy<ContractState>(queryCriteria).states 关于借款人数据库

我有一个关于基于UUID检索未使用状态的查询

val uuid = linearId.toUUID()
        val queryCriteria = QueryCriteria.LinearStateQueryCriteria(
                linearId = listOf(uuid))
        return services.vaultQueryBy<ContractState>(queryCriteria).states
关于借款人数据库:多个未使用状态 美国

缺少事务C,并且有两个TXE的时间戳为空,所以这可能就是返回2条记录的原因

╔════════════════╤═════════════════════╗
║ transaction_id │ consumed_timsestamp ║
╠════════════════╪═════════════════════╣
║ Transaction A  │ T                   ║
╟────────────────┼─────────────────────╢
║ Transaction B  │ null                ║
╟────────────────┼─────────────────────╢
║ Transaction D  │ null                ║
╚════════════════╧═════════════════════╝
vault_线性_状态

缺少事务C

╒════════════════╤══════╕
│ transaction_id │ uuid │
╞════════════════╪══════╡
│ Transaction A  │ XYZ  │
├────────────────┼──────┤
│ Transaction B  │ XYZ  │
├────────────────┼──────┤
│ Transaction D  │ XYZ  │
╘════════════════╧══════╛
╔════════════════╤══════════╤═══════════╗
║ transaction_id │ linearId │ lifecycle ║
╠════════════════╪══════════╪═══════════╣
║ Transaction A  │ XYZ      │ foo       ║
╟────────────────┼──────────┼───────────╢
║ Transaction B  │ XYZ      │ bar       ║
╟────────────────┼──────────┼───────────╢
║ Transaction D  │ XYZ      │ baz       ║
╚════════════════╧══════════╧═══════════╝
状态模式表

缺少事务C

╒════════════════╤══════╕
│ transaction_id │ uuid │
╞════════════════╪══════╡
│ Transaction A  │ XYZ  │
├────────────────┼──────┤
│ Transaction B  │ XYZ  │
├────────────────┼──────┤
│ Transaction D  │ XYZ  │
╘════════════════╧══════╛
╔════════════════╤══════════╤═══════════╗
║ transaction_id │ linearId │ lifecycle ║
╠════════════════╪══════════╪═══════════╣
║ Transaction A  │ XYZ      │ foo       ║
╟────────────────┼──────────┼───────────╢
║ Transaction B  │ XYZ      │ bar       ║
╟────────────────┼──────────┼───────────╢
║ Transaction D  │ XYZ      │ baz       ║
╚════════════════╧══════════╧═══════════╝
在贷方数据库上:未找到未使用的状态 美国

vault_线性_状态

缺少事务D,这就是为什么即使在vault_州有tx D,也找不到记录的原因

╒════════════════╤══════╕
│ transaction_id │ uuid │
╞════════════════╪══════╡
│ Transaction A  │ XYZ  │
├────────────────┼──────┤
│ Transaction B  │ XYZ  │
├────────────────┼──────┤
│ Transaction C  │ XYZ  │
╘════════════════╧══════╛
状态模式表

缺少事务D

╔════════════════╤══════════╤═══════════╗
║ transaction_id │ linearId │ lifecycle ║
╠════════════════╪══════════╪═══════════╣
║ Transaction A  │ XYZ      │ foo       ║
╟────────────────┼──────────┼───────────╢
║ Transaction B  │ XYZ      │ bar       ║
╟────────────────┼──────────┼───────────╢
║ Transaction C  │ XYZ      │ baz       ║
╚════════════════╧══════════╧═══════════╝
在公证人响应后提交期间,日志显示一些异常。 rx.exceptions.OnErrorNotImplementedException:访问索引信息时出错:public.vault\u linear\u状态


Corda 3.x中的Postgres支持是社区提供的一项实验性功能,我想知道您是否遇到了它的bug或与Postgres版本相关的问题。日志中的这一行很有启发性:

[ERROR] 2018-06-20T04:45:20,608Z [Node thread-1] spi.SqlExceptionHelper.logExceptions - ERROR: function information_schema._pg_expandarray(int2vector) does not exist
  Hint: No function matches the given name and argument types. You might need to add explicit type casts.
  Position: 930 {}
功能不存在?版本问题

然后是关于索引的错误:听起来数据没有被正确地持久化


如果您使用H2,您的应用程序是否工作?

它在6个月前的H2中工作。然后通过Azure上的Postgres迁移到Corda 3.0。工作了一段时间很好,然后这种情况间歇性地发生。仍在试图弄清楚发生了什么。在这种情况下,现实世界场景中的解决方案是什么,因为它不是区块链,所以节点是否必须以某种方式从另一个节点请求数据?
[ERROR] 2018-06-20T04:45:20,608Z [Node thread-1] spi.SqlExceptionHelper.logExceptions - ERROR: function information_schema._pg_expandarray(int2vector) does not exist
  Hint: No function matches the given name and argument types. You might need to add explicit type casts.
  Position: 930 {}