0
votes

When I use same code with simple-validate and 3 nodes RAFT that are all ok. but I change to BFT. report below error. Actually I only use one un-consume make as input. but not sure why report below error. My code based on M14 version.

[WARN ] 2017-09-26T14:01:38,402Z [Node thread] flow.[9c5ea2df-43ef-4ff8-a954-c6b81ca2740f].run - Flow ended due to receiving exception net.corda.core.flows.NotaryException: Error response from Notary - One or more input states for transaction 0EFBAA4B3FAC43D15EB51CD6F7D352C62AC9C5438F56949C50484D1FE38E0A5A have been used in another transaction 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:?] at com.legalcontract.flow.LegalContractFlow$Initiator.call(LegalContractFlow.kt:266) ~[kotlin-source-0.1.jar:?] at 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(Unknown Source) [?: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
BTW, also involved existed document with Attachment. - eye
What do you mean by I only use one un-consume make as input? - Joel
actually I only use a index make it as input. I also involved a used attachment. - eye
From the error message, it looks like you're trying to consume the same input state twice. Is that possible? Try deleting the nodes and re-deploying them, then making sure you only do a single transaction. Does the error occur the very first time? - Joel
Hi Joel, If I make a single transaction with a input and attachment to party, it's ok. after that I send back report this issue from party report this error.Seem it because attachment be consumed twice in BFT. I will use release 1.0.0 to test. With RAFT it's ok - eye

1 Answers

0
votes

As Eye points out in his last comment, the issue was on the flows. You should always your flows for spending the same input more than once.

That will trigger an auto rejection from the notary, no matter what consensus you have in your notary cluster.