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