【发布时间】:2018-03-07 21:54:27
【问题描述】:
当我使用带有简单验证和 3 个节点 RAFT 的相同代码时,一切正常。但我改为 BFT。报告以下错误。实际上,我只使用一个不消费的 make 作为输入。但不确定为什么报告以下错误。我的代码基于 M14 版本。
[WARN] 2017-09-26T14:01:38,402Z [Node thread] flow.[9c5ea2df-43ef-4ff8-a954-c6b81ca2740f].run - 由于接收异常,流程结束 net.corda.core.flows.NotaryException:来自 Notary 的错误响应 - 事务 0EFBAA4B3FAC43D15EB51CD6F7D352C62AC9C5438F56949C50484D1FE38E0A5A 的一个或多个输入状态已用于另一事务 在 net.corda.node.services.statemachine.FlowStateMachineImpl.erroredEnd(FlowStateMachineImpl.kt:373) ~[corda-node-0.14.0.jar:?] 在 net.corda.node.services.statemachine.FlowStateMachineImpl.waitForLedgerCommit(FlowStateMachineImpl.kt:212) ~[corda-node-0.14.0.jar:?] 在 net.corda.core.flows.FlowLogic.waitForLedgerCommit(FlowLogic.kt:232) ~[corda-core-0.14.0.jar:?] 在 com.legalcontract.flow.LegalContractFlow$Initiator.call(LegalContractFlow.kt:266) ~[kotlin-source-0.1.jar:?] 在 com.legalcontract.flow.LegalContractFlow$Initiator.call(LegalContractFlow.kt:44) ~[kotlin-source-0.1.jar:?] 在 net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:101) [corda-node-0.14.0.jar:?] 在 net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:33) [corda-node-0.14.0.jar:?] 在 co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1067) [quasar-core-0.7.6-jdk8.jar:0.7.6] 在 co.paralleluniverse.fibers.Fiber.exec(Fiber.java:767) [quasar-core-0.7.6-jdk8.jar:0.7.6] 在 co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:100) [quasar-core-0.7.6-jdk8.jar:0.7.6] 在 co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:91) [quasar-core-0.7.6-jdk8.jar:0.7.6] 在 java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_144] 在 java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_144] 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(未知来源)[?:1.8.0_144] 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:1.8.0_144] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_144] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_144] 在 net.corda.node.utilities.AffinityExecutor$ServiceAffinityExecutor$1$thread$1.run(AffinityExecutor.kt:69) [corda-node-0.14.0.jar:?]
【问题讨论】:
-
顺便说一句,还涉及带有附件的现有文档。
-
I only use one un-consume make as input是什么意思? -
实际上我只使用索引作为输入。我还涉及一个用过的附件。
-
从错误消息来看,您似乎正在尝试使用相同的输入状态两次。那可能吗?尝试删除节点并重新部署它们,然后确保您只执行单个事务。错误是第一次出现吗?
-
嗨,乔尔,如果我进行单笔交易,并附上派对的输入和附件,那就没问题了。之后我发回报告此问题的一方报告此错误。似乎是因为附件在 BFT 中被消耗了两次。我将使用 1.0.0 版进行测试。有了 RAFT 就可以了