在Corda中,运行验证公证人时出现NotSerializableException

时间:2018-07-26 17:27:22

标签: corda

在Corda 3.1中,我正在运行带有验证公证人的网络。当公证人将交易作为FinalityFlow的一部分进行验证时,将引发以下异常。是什么导致此异常?

java.lang.UnsupportedOperationException: Serialization scheme not supported.
    at net.corda.nodeapi.internal.serialization.NotSupportedSerializationScheme.doThrow(SerializationScheme.kt:19) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.nodeapi.internal.serialization.NotSupportedSerializationScheme.deserialize(SerializationScheme.kt:23) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1$1.invoke(SerializationScheme.kt:111) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.core.serialization.SerializationFactory.withCurrentContext(SerializationAPI.kt:66) ~[corda-core-3.1-corda.jar:?]
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:111) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:86) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.core.serialization.SerializationFactory.asCurrent(SerializationAPI.kt:80) ~[corda-core-3.1-corda.jar:?]
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl.deserialize(SerializationScheme.kt:111) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.node.services.messaging.RPCServer.clientArtemisMessageHandler(RPCServer.kt:570) [corda-node-3.1-corda.jar:?]
    at net.corda.node.services.messaging.RPCServer.access$clientArtemisMessageHandler(RPCServer.kt:79) [corda-node-3.1-corda.jar:?]
    at net.corda.node.services.messaging.RPCServer$createRpcConsumer$1.invoke(RPCServer.kt:196) [corda-node-3.1-corda.jar:?]
    at net.corda.node.services.messaging.RPCServer$createRpcConsumer$1.invoke(RPCServer.kt:79) [corda-node-3.1-corda.jar:?]
    at net.corda.node.services.messaging.RPCServerKt$sam$MessageHandler$5b9bfc45.onMessage(RPCServer.kt) [corda-node-3.1-corda.jar:?]
    at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:997) [artemis-core-client-2.2.0.jar:2.2.0]
    at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.access$400(ClientConsumerImpl.java:49) [artemis-core-client-2.2.0.jar:2.2.0]
    at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:1120) [artemis-core-client-2.2.0.jar:2.2.0]
    at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) [artemis-commons-2.2.0.jar:2.2.0]
    at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) [artemis-commons-2.2.0.jar:2.2.0]
    at org.apache.activemq.artemis.utils.actors.ProcessorBase$ExecutorTask.run(ProcessorBase.java:53) [artemis-commons-2.2.0.jar:2.2.0]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_162]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_162]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_162]
[INFO ] 2018-07-25T12:30:02,397Z [RxIoScheduler-2] network.PersistentNetworkMapCache.addNode - Adding node with info: NodeInfo(addresses=[localhost:10005], legalIdentitiesAndCerts=[O=Supplier 1, L=London, C=GB], platformVersion=3, serial=1532521795487) {}
[INFO ] 2018-07-25T12:30:02,402Z [RxIoScheduler-2] network.PersistentNetworkMapCache.addNode - No previous node found {}
[INFO ] 2018-07-25T12:30:02,427Z [RxIoScheduler-2] messaging.P2PMessagingClient.updateBridgesOnNetworkChange - Updating bridges on network map change: NodeInfo(addresses=[localhost:10005], legalIdentitiesAndCerts=[O=Supplier 1, L=London, C=GB], platformVersion=3, serial=1532521795487) {}
[INFO ] 2018-07-25T12:30:02,435Z [RxIoScheduler-2] network.PersistentNetworkMapCache.addNode - Done adding node with info: NodeInfo(addresses=[localhost:10005], legalIdentitiesAndCerts=[O=Supplier 1, L=London, C=GB], platformVersion=3, serial=1532521795487) {}
[INFO ] 2018-07-25T12:30:37,396Z [RxIoScheduler-2] network.PersistentNetworkMapCache.addNode - Adding node with info: NodeInfo(addresses=[localhost:10010], legalIdentitiesAndCerts=[O=Funder 1, L=Madrid, C=ES], platformVersion=3, serial=1532521829041) {}
[INFO ] 2018-07-25T12:30:37,399Z [RxIoScheduler-2] network.PersistentNetworkMapCache.addNode - No previous node found {}
[INFO ] 2018-07-25T12:30:37,417Z [RxIoScheduler-2] messaging.P2PMessagingClient.updateBridgesOnNetworkChange - Updating bridges on network map change: NodeInfo(addresses=[localhost:10010], legalIdentitiesAndCerts=[O=Funder 1, L=Madrid, C=ES], platformVersion=3, serial=1532521829041) {}
[INFO ] 2018-07-25T12:30:37,421Z [RxIoScheduler-2] network.PersistentNetworkMapCache.addNode - Done adding node with info: NodeInfo(addresses=[localhost:10010], legalIdentitiesAndCerts=[O=Funder 1, L=Madrid, C=ES], platformVersion=3, serial=1532521829041) {}
[INFO ] 2018-07-25T12:32:33,851Z [Thread-1 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DLJ1wn6wyDPwutwsgyFuzXB1eHeZPktJjXjKCXZ5iqBH18 user: O=Supplier 1, L=London, C=GB topic: platform.session uuid: 5d037b33-24c6-431c-a7fe-9bf4665ae0b8 {}
[INFO ] 2018-07-25T12:32:33,982Z [Node thread-1] statemachine.StateMachineManagerImpl.onSessionInit - Accepting flow session from party O=Supplier 1, L=London, C=GB. Session id for tracing purposes is SessionId(toLong=6280874872350228602). {invocation_id=8d562631-3496-453d-afb0-fde01531e52f, invocation_timestamp=2018-07-25T12:32:33.911Z, session_id=8d562631-3496-453d-afb0-fde01531e52f, session_timestamp=2018-07-25T12:32:33.911Z}
[INFO ] 2018-07-25T12:32:34,114Z [Messaging DLJ1wn6wyDPwutwsgyFuzXB1eHeZPktJjXjKCXZ5iqBH18] messaging.P2PMessagingClient.createQueueIfAbsent - Create fresh queue internal.peers.DL8t5iYS2ZyyKQspicpu4SgMW51KgdBuM6XdLdryqoE6v6 bound on same address {}
[INFO ] 2018-07-25T12:32:34,158Z [Thread-2 (ActiveMQ-client-global-threads)] bridging.BridgeControlListener.processControlMessage - Received bridge control message Create(nodeIdentity=DLJ1wn6wyDPwutwsgyFuzXB1eHeZPktJjXjKCXZ5iqBH18, bridgeInfo=BridgeEntry(queueName=internal.peers.DL8t5iYS2ZyyKQspicpu4SgMW51KgdBuM6XdLdryqoE6v6, targets=[localhost:10005], legalNames=[O=Supplier 1, L=London, C=GB])) {}
[INFO ] 2018-07-25T12:32:34,179Z [Thread-2 (ActiveMQ-client-global-threads)] peers.DL8t5iYS2ZyyKQspicpu4SgMW51KgdBuM6XdLdryqoE6v6 -> localhost:10005:O=Supplier 1, L=London, C=GB.start - Create new AMQP bridge {}
[INFO ] 2018-07-25T12:32:34,180Z [Thread-2 (ActiveMQ-client-global-threads)] netty.AMQPClient.start - connect to: localhost:10005 {}
[INFO ] 2018-07-25T12:32:34,203Z [nioEventLoopGroup-2-1] netty.AMQPClient.operationComplete - Connected to localhost:10005 {}
[INFO ] 2018-07-25T12:32:34,218Z [nioEventLoopGroup-2-1] O=Supplier 1, L=London, C=GB.channelActive - New client connection 675dbd87 from localhost/127.0.0.1:10005 to /127.0.0.1:56923 {}
[INFO ] 2018-07-25T12:32:34,243Z [nioEventLoopGroup-2-1] O=Supplier 1, L=London, C=GB.userEventTriggered - handshake completed subject: O=Supplier 1, L=London, C=GB {}
[INFO ] 2018-07-25T12:32:34,265Z [nioEventLoopGroup-2-1] peers.DL8t5iYS2ZyyKQspicpu4SgMW51KgdBuM6XdLdryqoE6v6 -> localhost:10005:O=Supplier 1, L=London, C=GB.onSocketConnected - Bridge Connected {}
[INFO ] 2018-07-25T12:32:34,274Z [nioEventLoopGroup-2-1] O=Notary, L=Rome, C=IT.onConnectionLocalOpen - Connection local open org.apache.qpid.proton.engine.impl.ConnectionImpl@63abd93e {}
[WARN ] 2018-07-25T12:32:34,736Z [Node thread-1] flow.[8006fb65-d6d7-4786-b49a-35eaf76af47d].run - Terminated by unexpected exception {}
java.io.NotSerializableException: Unexpected throwable: net.corda.core.transactions.WireTransaction -> net.corda.core.transactions.WireTransaction -> null java.lang.reflect.InvocationTargetException: net.corda.core.transactions.WireTransaction -> net.corda.core.transactions.WireTransaction -> null
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at net.corda.nodeapi.internal.serialization.amqp.ObjectSerializer.construct(ObjectSerializer.kt:138)
    at net.corda.nodeapi.internal.serialization.amqp.ObjectSerializer.readObjectBuildViaConstructor(ObjectSerializer.kt:97)
    at net.corda.nodeapi.internal.serialization.amqp.ObjectSerializer.readObject(ObjectSerializer.kt:82)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.readObject$node_api(DeserializationInput.kt:135)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.readObjectOrNull$node_api(DeserializationInput.kt:109)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.readObjectOrNull$node_api$default(DeserializationInput.kt:108)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput$deserialize$1.invoke(DeserializationInput.kt:98)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.des(DeserializationInput.kt:80)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.deserialize(DeserializationInput.kt:96)
    at net.corda.nodeapi.internal.serialization.amqp.AbstractAMQPSerializationScheme.deserialize(AMQPSerializationScheme.kt:123)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1$1.invoke(SerializationScheme.kt:111)
    at net.corda.core.serialization.SerializationFactory.withCurrentContext(SerializationAPI.kt:66)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:111)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:86)
    at net.corda.core.serialization.SerializationFactory.asCurrent(SerializationAPI.kt:80)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl.deserialize(SerializationScheme.kt:111)
    at net.corda.core.transactions.SignedTransaction.getCoreTransaction(SignedTransaction.kt:272)
    at net.corda.core.transactions.SignedTransaction.getInputs(SignedTransaction.kt:71)
    at net.corda.node.services.transactions.ValidatingNotaryFlow.receiveTransaction(ValidatingNotaryFlow.kt:50)
    at net.corda.node.services.transactions.ValidatingNotaryFlow.receiveAndVerifyTx(ValidatingNotaryFlow.kt:30)
    at net.corda.core.flows.NotaryFlow$Service.call(NotaryFlow.kt:142)
    at net.corda.core.flows.NotaryFlow$Service.call(NotaryFlow.kt:133)
    at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:96)
    at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:44)
    at co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1092)
    at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:788)
    at co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:100)
    at co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:91)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at net.corda.node.utilities.AffinityExecutor$ServiceAffinityExecutor$1$thread$1.run(AffinityExecutor.kt:62)
Caused by: java.lang.Exception: Malformed transaction, OUTPUTS_GROUP at index 0 cannot be deserialised
    at net.corda.core.transactions.TraversableTransaction.deserialiseComponentGroup(MerkleTransaction.kt:70)
    at net.corda.core.transactions.TraversableTransaction.<init>(MerkleTransaction.kt:25)
    at net.corda.core.transactions.WireTransaction.<init>(WireTransaction.kt:43)
    ... 39 more
Caused by: java.io.NotSerializableException: Unexpected throwable: Interface net.corda.core.contracts.LinearState requires a field named participants but that isn't found in the schema or any superclass schemas net.corda.nodeapi.internal.serialization.carpenter.InterfaceMismatchException: Interface net.corda.core.contracts.LinearState requires a field named participants but that isn't found in the schema or any superclass schemas
    at net.corda.nodeapi.internal.serialization.carpenter.ClassCarpenter.validateSchema(ClassCarpenter.kt:434)
    at net.corda.nodeapi.internal.serialization.carpenter.ClassCarpenter.build(ClassCarpenter.kt:106)
    at net.corda.nodeapi.internal.serialization.carpenter.MetaCarpenterBase.step(MetaCarpenter.kt:69)
    at net.corda.nodeapi.internal.serialization.carpenter.MetaCarpenter.build(MetaCarpenter.kt:98)
    at net.corda.nodeapi.internal.serialization.amqp.SerializerFactory.processSchema(SerializerFactory.kt:235)
    at net.corda.nodeapi.internal.serialization.amqp.SerializerFactory.processSchema$default(SerializerFactory.kt:216)
    at net.corda.nodeapi.internal.serialization.amqp.SerializerFactory$get$1.invoke(SerializerFactory.kt:185)
    at net.corda.nodeapi.internal.serialization.amqp.SerializerFactory$get$1.invoke(SerializerFactory.kt:40)
    at net.corda.nodeapi.internal.serialization.amqp.SerializerFactory.get(SerializerFactory.kt:184)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.readObject$node_api(DeserializationInput.kt:131)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.readObjectOrNull$node_api(DeserializationInput.kt:109)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.readObjectOrNull$node_api$default(DeserializationInput.kt:108)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput$deserialize$1.invoke(DeserializationInput.kt:98)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.des(DeserializationInput.kt:80)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.deserialize(DeserializationInput.kt:96)
    at net.corda.nodeapi.internal.serialization.amqp.AbstractAMQPSerializationScheme.deserialize(AMQPSerializationScheme.kt:123)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1$1.invoke(SerializationScheme.kt:111)
    at net.corda.core.serialization.SerializationFactory.withCurrentContext(SerializationAPI.kt:66)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:111)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:86)
    at net.corda.core.serialization.SerializationFactory.asCurrent(SerializationAPI.kt:80)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl.deserialize(SerializationScheme.kt:111)
    at net.corda.core.transactions.TraversableTransaction$outputs$1.invoke(MerkleTransaction.kt:356)
    at net.corda.core.transactions.TraversableTransaction$outputs$1.invoke(MerkleTransaction.kt:18)
    at net.corda.core.transactions.TraversableTransaction.deserialiseComponentGroup(MerkleTransaction.kt:66)
    at net.corda.core.transactions.TraversableTransaction.<init>(MerkleTransaction.kt:25)
    at net.corda.core.transactions.WireTransaction.<init>(WireTransaction.kt:43)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at net.corda.nodeapi.internal.serialization.amqp.ObjectSerializer.construct(ObjectSerializer.kt:138)
    at net.corda.nodeapi.internal.serialization.amqp.ObjectSerializer.readObjectBuildViaConstructor(ObjectSerializer.kt:97)
    at net.corda.nodeapi.internal.serialization.amqp.ObjectSerializer.readObject(ObjectSerializer.kt:82)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.readObject$node_api(DeserializationInput.kt:135)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.readObjectOrNull$node_api(DeserializationInput.kt:109)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.readObjectOrNull$node_api$default(DeserializationInput.kt:108)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput$deserialize$1.invoke(DeserializationInput.kt:98)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.des(DeserializationInput.kt:80)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.deserialize(DeserializationInput.kt:96)
    at net.corda.nodeapi.internal.serialization.amqp.AbstractAMQPSerializationScheme.deserialize(AMQPSerializationScheme.kt:123)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1$1.invoke(SerializationScheme.kt:111)
    at net.corda.core.serialization.SerializationFactory.withCurrentContext(SerializationAPI.kt:66)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:111)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:86)
    at net.corda.core.serialization.SerializationFactory.asCurrent(SerializationAPI.kt:80)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl.deserialize(SerializationScheme.kt:111)
    at net.corda.core.transactions.SignedTransaction.getCoreTransaction(SignedTransaction.kt:272)
    at net.corda.core.transactions.SignedTransaction.getInputs(SignedTransaction.kt:71)
    at net.corda.node.services.transactions.ValidatingNotaryFlow.receiveTransaction(ValidatingNotaryFlow.kt:50)
    at net.corda.node.services.transactions.ValidatingNotaryFlow.receiveAndVerifyTx(ValidatingNotaryFlow.kt:30)
    at net.corda.core.flows.NotaryFlow$Service.call(NotaryFlow.kt:142)
    at net.corda.core.flows.NotaryFlow$Service.call(NotaryFlow.kt:133)
    at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:96)
    at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:44)
    at co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1092)
    at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:788)
    at co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:100)
    at co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:91)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at net.corda.node.utilities.AffinityExecutor$ServiceAffinityExecutor$1$thread$1.run(AffinityExecutor.kt:62)

    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.des(DeserializationInput.kt:84)
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.deserialize(DeserializationInput.kt:96)
    at net.corda.nodeapi.internal.serialization.amqp.AbstractAMQPSerializationScheme.deserialize(AMQPSerializationScheme.kt:123)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1$1.invoke(SerializationScheme.kt:111)
    at net.corda.core.serialization.SerializationFactory.withCurrentContext(SerializationAPI.kt:66)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:111)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:86)
    at net.corda.core.serialization.SerializationFactory.asCurrent(SerializationAPI.kt:80)
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl.deserialize(SerializationScheme.kt:111)
    at net.corda.core.transactions.TraversableTransaction$outputs$1.invoke(MerkleTransaction.kt:356)
    at net.corda.core.transactions.TraversableTransaction$outputs$1.invoke(MerkleTransaction.kt:18)
    at net.corda.core.transactions.TraversableTransaction.deserialiseComponentGroup(MerkleTransaction.kt:66)
    ... 41 more

    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.des(DeserializationInput.kt:84) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.nodeapi.internal.serialization.amqp.DeserializationInput.deserialize(DeserializationInput.kt:96) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.nodeapi.internal.serialization.amqp.AbstractAMQPSerializationScheme.deserialize(AMQPSerializationScheme.kt:123) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1$1.invoke(SerializationScheme.kt:111) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.core.serialization.SerializationFactory.withCurrentContext(SerializationAPI.kt:66) ~[corda-core-3.1-corda.jar:?]
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:111) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:86) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.core.serialization.SerializationFactory.asCurrent(SerializationAPI.kt:80) ~[corda-core-3.1-corda.jar:?]
    at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl.deserialize(SerializationScheme.kt:111) ~[corda-node-api-3.1-corda.jar:?]
    at net.corda.core.transactions.SignedTransaction.getCoreTransaction(SignedTransaction.kt:272) ~[corda-core-3.1-corda.jar:?]
    at net.corda.core.transactions.SignedTransaction.getInputs(SignedTransaction.kt:71) ~[corda-core-3.1-corda.jar:?]
    at net.corda.node.services.transactions.ValidatingNotaryFlow.receiveTransaction(ValidatingNotaryFlow.kt:50) ~[corda-node-3.1-corda.jar:?]
    at net.corda.node.services.transactions.ValidatingNotaryFlow.receiveAndVerifyTx(ValidatingNotaryFlow.kt:30) ~[corda-node-3.1-corda.jar:?]
    at net.corda.core.flows.NotaryFlow$Service.call(NotaryFlow.kt:142) ~[corda-core-3.1-corda.jar:?]
    at net.corda.core.flows.NotaryFlow$Service.call(NotaryFlow.kt:133) ~[corda-core-3.1-corda.jar:?]
    at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:96) [corda-node-3.1-corda.jar:?]
    at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:44) [corda-node-3.1-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]
    at co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:100) [quasar-core-0.7.9-jdk8.jar:0.7.9]
    at co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:91) [quasar-core-0.7.9-jdk8.jar:0.7.9]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_162]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_162]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_162]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_162]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_162]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_162]
    at net.corda.node.utilities.AffinityExecutor$ServiceAffinityExecutor$1$thread$1.run(AffinityExecutor.kt:62) [corda-node-3.1-corda.jar:?]

1 个答案:

答案 0 :(得分:1)

这是由于以下事实:验证公证人尚未安装要验证的事务中涉及的所有CorDapp。

由于缺少一种CorDapp,因此它没有完全反序列化事务内容所需的类定义。结果将抛出NotSerializableException