Corda公证ClassNotFoundException:格式错误的事务,索引0处的OUTPUTS_GROUP无法反序列化

时间:2018-03-09 12:45:12

标签: kotlin classloader corda

在两个节点之间运行InitiatingFlow / InitiatedBy时,我的公证节点发出错误:java.lang.Exception: Malformed transaction, OUTPUTS_GROUP at index 0 cannot be deserialised 在跟踪中更进一步:Caused by: java.lang.ClassNotFoundException: xxx.xxx.xxx.shared.states.OrderItemState

在我的公证人中包含“共享”CordApp的地方修复了这个问题,但是我不明白为什么这是必要的?

我能够在节点之间来回发送其他状态,而不包括CordApp 唯一不同的是,OrderItemStateLinearState,其他FungibleAsset,我是否在那里寻找答案?

1 个答案:

答案 0 :(得分:2)

我假设您正在使用验证公证人。验证公证是检查交易是否有效,以及检查它是否包含双重花费的尝试。这在隐私方面有成本。请参阅https://docs.corda.net/key-concepts-notaries.html#validation

如果查看将事务发送到NotaryFlow.Client中的公证人的代码,您可以看到验证公证人被发送到整个事务,因此需要CorDapp在其{{1}中定义所涉及的状态文件夹:

cordapps