corda - 观察员将现金结果重新发布为错误“java.util.NoSuchElementException:集合不包含与谓词匹配的元素。”
问题描述
我已经设置了如下的corda网络:
2个银行节点
1 个中央银行节点(观察者)
1 公证人
我已从 CentralBank 向每个 Bank 节点发放现金。用于发行现金使用“CashIssueAndPaymentFlow”。我也可以多次向同一个节点发放现金。
然后尝试从一个 Bank 节点到 CentralBank 是观察者的另一个银行节点执行交易。
交易完成后,当我尝试向任何银行节点发放现金时,出现以下错误:
java.util.NoSuchElementException: Collection contains no element matching the predicate.
at net.corda.node.services.keys.PersistentKeyManagementService.getSigningKeyPair(PersistentKeyManagementService.kt:110) ~[corda-node-3.3-corda.jar:?]
at net.corda.node.services.keys.PersistentKeyManagementService.sign(PersistentKeyManagementService.kt:101) ~[corda-node-3.3-corda.jar:?]
at net.corda.core.transactions.TransactionBuilder.toSignedTransaction(TransactionBuilder.kt:224) ~[corda-core-3.3-corda.jar:?]
at net.corda.core.node.ServiceHub$DefaultImpls.signInitialTransaction(ServiceHub.kt:219) ~[corda-core-3.3-corda.jar:?]
at net.corda.core.node.ServiceHub$DefaultImpls.signInitialTransaction(ServiceHub.kt:233) ~[corda-core-3.3-corda.jar:?]
at net.corda.node.services.api.ServiceHubInternal$DefaultImpls.signInitialTransaction(ServiceHubInternal.kt) ~[corda-node-3.3-corda.jar:?]
at net.corda.node.internal.AbstractNode$ServiceHubInternalImpl.signInitialTransaction(AbstractNode.kt:836) ~[corda-node-3.3-corda.jar:?]
at net.corda.core.node.ServiceHub$DefaultImpls.signInitialTransaction(ServiceHub.kt:255) ~[corda-core-3.3-corda.jar:?]
at net.corda.node.services.api.ServiceHubInternal$DefaultImpls.signInitialTransaction(ServiceHubInternal.kt) ~[corda-node-3.3-corda.jar:?]
at net.corda.node.internal.AbstractNode$ServiceHubInternalImpl.signInitialTransaction(AbstractNode.kt:836) ~[corda-node-3.3-corda.jar:?]
at net.corda.finance.flows.CashPaymentFlow.call(CashPaymentFlow.kt:66) ~[corda-finance-3.3-corda.jar:?]
at net.corda.finance.flows.CashPaymentFlow.call(CashPaymentFlow.kt:26) ~[corda-finance-3.3-corda.jar:?]
at net.corda.core.flows.FlowLogic.subFlow(FlowLogic.kt:290) ~[corda-core-3.3-corda.jar:?]
at net.corda.finance.flows.CashIssueAndPaymentFlow.call(CashIssueAndPaymentFlow.kt:41) ~[corda-finance-3.3-corda.jar:?]
at net.corda.finance.flows.CashIssueAndPaymentFlow.call(CashIssueAndPaymentFlow.kt:24) ~[corda-finance-3.3-corda.jar:?]
at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:96) [corda-node-3.3-corda.jar:?]
at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:44) [corda-node-3.3-corda.jar:?]
at co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1092) [quasar-core-0.7.9-jdk8.jar:0.7.9]
at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:788) [quasar-core-0.7.9-jdk8.jar:0.7.9]
简单来说,就是从 CentralBank 发行的 Cash,也让 CentralBank 作为观察者。几次交易后,再次尝试发行现金出现上述错误。
用于上述内容的 Corda 版本是 V3.3。
提供一些相同的指导。
解决方案
问题流在第二次运行时会失败,这似乎很奇怪。你对拍卖cordapp做了很大的修改吗?另外,你能分享一下你用来实现这一点的步骤吗?
你能在最新版本的 Corda 上重现这个吗?
对于任何想知道的人来说,这里提到的代码示例似乎是这个:https ://github.com/corda/samples-java/tree/master/Advanced/auction-cordapp
推荐阅读
- amazon-web-services - 调用具有无效 JSON 错误的 Glue 虚拟视图时,Athena 查询失败
- python - 从 pyplot.imshow 的算法中获取插值数据
- python - ldap3 打印 false 和空列表。为什么列表是空的?
- jquery - 未能从 API 获取数据后未显示错误 div
- c - 如何在c程序中提取数据并返回
- python - 如何销毁使用 for 循环生成的按钮(单击后...)
- csv - Gsuite 是否支持创建可用于在用作搜索字符串时发现信息的自定义字段?
- android - 在 Android 中使用 Firebase 更改密码时应用程序崩溃
- python - 为什么 tensorflow 模块会占用所有 GPU 内存?
- javascript - TypeError:无法读取未定义的scanner.js的属性“扫描”