У меня есть сеть с двумя узлами:
NodeA
работает Corda Enterprise 3
NodeB
работает Corda (с открытым исходным кодом) 3
Когда NodeA
использует Corda Finance CorDapp для перевода денег на NodeB
, я получаю исключения из формы Serialization scheme not supported.
.
Если финансовый CorDapp был скомпилирован для Corda Enterprise 3.2, я получаю следующую трассировку стека:
java.lang.UnsupportedOperationException: схема сериализации
([636F7264610000], RPCClient) не поддерживается. в
net.corda.serialization.internal.SerializationFactoryImpl $ schemeFor $ 1.Apply (SerializationScheme.kt: 128)
в
net.corda.serialization.internal.SerializationFactoryImpl $ schemeFor $ 1.Apply (SerializationScheme.kt: 103)
в
java.util.concurrent.ConcurrentHashMap.computeIfAbsent (ConcurrentHashMap.java:1660)
в
net.corda.serialization.internal.SerializationFactoryImpl.schemeFor (SerializationScheme.kt: 124)
в
net.corda.serialization.internal.SerializationFactoryImpl.access $ schemeFor (SerializationScheme.kt: 103)
в
net.corda.serialization.internal.SerializationFactoryImpl $ десериализации $ 1 $ 1.invoke (SerializationScheme.kt: 134)
в
net.corda.core.serialization.SerializationFactory.withCurrentContext (SerializationAPI.kt: 71)
в
net.corda.serialization.internal.SerializationFactoryImpl $ десериализации $ 1.invoke (SerializationScheme.kt: 134)
в
net.corda.serialization.internal.SerializationFactoryImpl $ десериализации $ 1.invoke (SerializationScheme.kt: 103)
в
net.corda.core.serialization.SerializationFactory.asCurrent (SerializationAPI.kt: 85)
в
net.corda.serialization.internal.SerializationFactoryImpl.deserialize (SerializationScheme.kt: 134)
в
net.corda.nodeapi.RPCApi $ ServerToClient $ Companion.fromClientMessage (RPCApi.kt: 373)
в
net.corda.client.rpc.internal.RPCClientProxyHandler.artemisMessageHandler (RPCClientProxyHandler.kt: 301)
в
net.corda.client.rpc.internal.RPCClientProxyHandler.access $ artemisMessageHandler (RPCClientProxyHandler.kt: 75)
в
net.corda.client.rpc.internal.RPCClientProxyHandler $ initSessions $ 1.invoke (RPCClientProxyHandler.kt: 509)
в
net.corda.client.rpc.internal.RPCClientProxyHandler $ initSessions $ 1.invoke (RPCClientProxyHandler.kt: 75)
в
net.corda.client.rpc.internal.RPCClientProxyHandlerKt $ сэм $ org_apache_activemq_artemis_api_core_client_MessageHandler $ 0.onMessage (RPCClientProxyHandler.kt)
в
org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.callOnMessage (ClientConsumerImpl.java:1002)
в
org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.access $ 400 (ClientConsumerImpl.java:50)
в
org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl $ Runner.run (ClientConsumerImpl.java:1125)
в
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask (OrderedExecutor.java:42)
в
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask (OrderedExecutor.java:31)
в
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks (ProcessorBase.java:66)
в
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)
в
java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624)
в
org.apache.activemq.artemis.utils.ActiveMQThreadFactory $ 1.run (ActiveMQThreadFactory.java:118)
в nd. И узел PartyB Vault содержит всего 100
GBP (совместимость / ресурсы / возможности / interoperability.feature: 15)
И если финансовое CorDapp было скомпилировано для Corda (с открытым исходным кодом) 3.3, я получаю следующую трассировку стека:
[WARN] 2018-10-02T11: 06: 54,096Z [Тема-1
(ActiveMQ-клиент-глобальные-потоки)]
messaging.RPCServer.clientArtemisMessageHandler - сбой входящего RPC
{actor_id = corda, actor_owningIdentity = O = PartyB, L = Лондон, C = GB,
actor_store_id = NODE_CONFIG,
invocation_id = ae1b8b8d-682a-4181-АКБ-45c061188531,
invocation_timestamp = 2018-10-02T11: 06: 54.094Z,session_id = 85154c4f-CDFA-4f76-b888-51d8f862c3b1,
session_timestamp = 2018-10-02T11: 06: 54.050Z}
java.lang.UnsupportedOperationException: схема сериализации не
поддерживается.
в net.corda.nodeapi.internal.serialization.NotSupportedSerializationScheme.doThrow (SerializationScheme.kt: 19)
~ [Corda-узловой-апи-3,2-corda.jar :?]
в net.corda.nodeapi.internal.serialization.NotSupportedSerializationScheme.deserialize (SerializationScheme.kt: 23)
~ [Corda-узловой-апи-3,2-corda.jar :?]
at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl $ deserialize $ 1 $ 1.invoke (SerializationScheme.kt: 111)
~ [Corda-узловой-апи-3,2-corda.jar :?]
at net.corda.core.serialization.SerializationFactory.withCurrentContext (SerializationAPI.kt: 66)
~ [Corda-ядро-3,2-corda.jar :?]
at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl $ deserialize $ 1.invoke (SerializationScheme.kt: 111)
~ [Corda-узловой-апи-3,2-corda.jar :?]
at net.corda.nodeapi.internal.serialization.SerializationFactoryImpl $ deserialize $ 1.invoke (SerializationScheme.kt: 86)
~ [Corda-узловой-апи-3,2-corda.jar :?]
at net.corda.core.serialization.SerializationFactory.asCurrent (SerializationAPI.kt: 80)
~ [Corda-ядро-3,2-corda.jar :?]
в net.corda.nodeapi.internal.serialization.SerializationFactoryImpl.deserialize (SerializationScheme.kt: 111)
~ [Corda-узловой-апи-3,2-corda.jar :?]
at net.corda.node.services.messaging.RPCServer.clientArtemisMessageHandler (RPCServer.kt: 571)
[Corda-узел-3,2-corda.jar :?]
в net.corda.node.services.messaging.RPCServer.access $ clientArtemisMessageHandler (RPCServer.kt: 79)
[Corda-узел-3,2-corda.jar :?]
at net.corda.node.services.messaging.RPCServer $ createRpcConsumer $ 1.invoke (RPCServer.kt: 196)
[Corda-узел-3,2-corda.jar :?]
at net.corda.node.services.messaging.RPCServer $ createRpcConsumer $ 1.invoke (RPCServer.kt: 79)
[Corda-узел-3,2-corda.jar :?]
at net.corda.node.services.messaging.RPCServerKt $ sam $ MessageHandler $ 5b9bfc45.onMessage (RPCServer.kt)
[Corda-узел-3,2-corda.jar :?]
в org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.callOnMessage (ClientConsumerImpl.java:997)
[Артемида-ядро-клиент-2.2.0.jar: 2.2.0]
в org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.access $ 400 (ClientConsumerImpl.java:49)
[Артемида-ядро-клиент-2.2.0.jar: 2.2.0]
в org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl $ Runner.run (ClientConsumerImpl.java:1120)
[Артемида-ядро-клиент-2.2.0.jar: 2.2.0]
в org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask (OrderedExecutor.java:42)
[Артемида-Обще-2.2.0.jar: 2.2.0]
в org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask (OrderedExecutor.java:31)
[Артемида-Обще-2.2.0.jar: 2.2.0]
в org.apache.activemq.artemis.utils.actors.ProcessorBase $ ExecutorTask.run (ProcessorBase.java:53)
[Артемида-Обще-2.2.0.jar: 2.2.0]
в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)
[: 1.8.0_171]
в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624)
[: 1.8.0_171]
at java.lang.Thread.run (Thread.java:748) [?: 1.8.0_171] [WARN] 2018-10-02T11: 06: 54,162Z [Thread-0 (ActiveMQ-client-global-threads)]
messaging.RPCServer.bindingRemovalArtemisMessageHandler - обнаружен RPC
клиент отключается по адресу rpc.client.corda.4301680594427178011,
планирование для пожинания {}
Как я могу решить эту проблему?