简单的PBFT问题

时间:2017-09-26 15:27:34

标签: corda bftask

当我使用与simple-validate和3节点RAFT相同的代码时,一切正常。但我改为BFT。报告以下错误。实际上我只使用一个非消耗品作为输入。但不确定为什么报告以下错误。我的代码基于M14版本。

[WARN] 2017-09-26T14:01:38,402Z [节点线程]流程。[9c5ea2df-43ef-4ff8-a954-c6b81ca2740f] .run - 流程因接收异常而告终 net.corda.core.flows.NotaryException:来自公证人的错误响应 - 事务的一个或多个输入状态0EFBAA4B3FAC43D15EB51CD6F7D352C62AC9C5438F56949C50484D1FE38E0A5A已在另一个事务中使用     at net.corda.node.services.statemachine.FlowStateMachineImpl.erroredEnd(FlowStateMachineImpl.kt:373)〜[corda-node-0.14.0.jar:?]     at net.corda.node.services.statemachine.FlowStateMachineImpl.waitForLedgerCommit(FlowStateMachineImpl.kt:212)〜[corda-node-0.14.0.jar:?]     at 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:?]     at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:101)[corda-node-0.14.0.jar:?]     at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:33)[corda-node-0.14.0.jar:?]     at co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1067)[quasar-core-0.7.6-jdk8.jar:0.7.6]     at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:767)[quasar-core-0.7.6-jdk8.jar:0.7.6]     at co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:100)[quasar-core-0.7.6-jdk8.jar:0.7.6]     at co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:91)[quasar-core-0.7.6-jdk8.jar:0.7.6]     at java.util.concurrent.Executors $ RunnableAdapter.call(Unknown Source)[?:1.8.0_144]     at java.util.concurrent.FutureTask.run(Unknown Source)[?:1.8.0_144]     at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201(未知来源)[?:1.8.0_144]     at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(Unknown Source)[?:1.8.0_144]     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)[?:1.8.0_144]     at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)[?:1.8.0_144]     at net.corda.node.utilities.AffinityExecutor $ ServiceAffinityExecutor $ 1 $ thread $ 1.run(AffinityExecutor.kt:69)[corda-node-0.14.0.jar:?]

1 个答案:

答案 0 :(得分:0)

正如Eye在他的最后评论中指出的那样,问题在于流程。您应该始终不停地花费相同的投入多次。

这将触发公证人的自动拒绝,无论您在公证人群体中有什么共识。