Corda 4.3企业问题-可用0行

问题描述 投票:0回答:1

从节点获取此错误:

有人可以说明问题和解决方法吗?

谢谢!

2020-06-09 15:21:41,660 INFO n.c.n.s.s.StaffedFlowHospital [flow-worker] Flow error allowed to propagate
net.corda.core.node.services.StatesNotAvailableException: Attempted to reserve [CDDA501510A70B04133BAB2977891F74DDF377422C2F61F30DAD61EBDBD01B19(0), 2D64BB53971CC0DDCA307A23EF2E86A6211FFFEC8A8D443CBAB6755FB1508B6B(0), CB4AD5262750CD6DC7E33B057E73A3CAB61EBCF83E7232A803025A64F0C66F16(0), 9AA0489DFCEACC6B5E10603EA8FC0C93891395B9658B1E7A7E0CD793BF4BD01E(0), E8A5427BA1161885797F616319E278B88041FB3E25C68DF53EC4AA8FA665FE7E(0)] for afa31821-c37a-4f13-8fed-1a214f945ffc but only 0 rows available
       at net.corda.node.services.vault.NodeVaultService.softLockReserve(NodeVaultService.kt:535) ~[corda-node-4.3.jar:?]
        at cm.token.helpers.StateQueryUtility.searchForTokens(StateQueryUtility.kt:179) ~[?:?]
        at cm.token.flows.subFlows.ConsumeTokenFlow.call(ConsumeTokenFlow.kt:21) ~[?:?]
        at cm.token.flows.subFlows.ConsumeTokenFlow.call(ConsumeTokenFlow.kt:16) ~[?:?]
        at net.corda.node.services.statemachine.FlowStateMachineImpl.subFlow(FlowStateMachineImpl.kt:334) ~[corda-node-4.3.jar:?]
        at net.corda.core.flows.FlowLogic.subFlow(FlowLogic.kt:326) ~[corda-core-4.3.jar:?]
        at cm.token.flows.TransferFlow.call(TransferFlow.kt:65) ~[?:?]
        at cm.token.flows.TransferFlow.call(TransferFlow.kt:26) ~[?:?]
        at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:274) ~[corda-node-4.3.jar:?]
        at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:46) ~[corda-node-4.3.jar:?]
        at co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1092) ~[quasar-core-0.7.11_r3-jdk8.jar:0.7.11_r3]
        at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:788) ~[quasar-core-0.7.11_r3-jdk8.jar:0.7.11_r3]
        at co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:100) ~[quasar-core-0.7.11_r3-jdk8.jar:0.7.11_r3]
        at co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:91) ~[quasar-core-0.7.11_r3-jdk8.jar:0.7.11_r3]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_242]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_242]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.29.Final.jar:4.1.29.Final]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
2020-06-09 15:21:41,661 DEBUG c.z.h.p.ProxyConnection [flow-worker] HikariPool-1 - Executed rollback on connection org.postgresql.jdbc.PgConnection@372f7bc due to dirty commit state on close().
2020-06-09 15:21:41,661 INFO n.c.n.s.s.StaffedFlowHospital [flow-worker] Flow [3cc9d3ac-857b-4556-b1b3-2dac96e03ece] admitted to hospital in state StateMachineState(checkpoint=Checkpoint(invocationContext=InvocationContext(origin=RPC(actor=Actor(id=Id(value=user1), serviceId=AuthServiceId(value=NODE_CONFIG), owningLegalIdentity=CN=Custodian1, OU=Custodian1, O=Cl
corda
1个回答
0
投票

似乎遇到了一个软锁定错误,该错误发生在“构建事务的节点尝试同时使用相同的输入”时。 https://docs.corda.net/docs/corda-os/4.4/soft-locking.html

正如文档所述,这很重要,因为只有包含相同输入状态的两个事务之一才能完成。公证人将拒绝第二笔交易,因为这是两次重复尝试。

如果需要更深入的信息,可以检查Corda开源代码以获取错误消息,并在事务组装期间看到这种情况:https://github.com/corda/corda/blob/release/os/4.4/node/src/main/kotlin/net/corda/node/services/vault/NodeVaultService.kt#L500

© www.soinside.com 2019 - 2024. All rights reserved.