Corda 合同jar附件虽然在开始时被删除,但在从发起方节点启动流之后,它重新出现在接受方节点中

Corda 合同jar附件虽然在开始时被删除,但在从发起方节点启动流之后,它重新出现在接受方节点中,corda,Corda,网络配置 1名公证人, 3个节点-甲方、乙方、丙方 摘要 在下面的“Potential.jar injection”一节中,我注意到合同jar附件虽然在开始时被删除,但在从甲方开始流程后,它重新出现在乙方的node_attachment和node_attachment_contract表中(由于node_附件和node_附件_合同表中缺少合同jar,导致乙方未回复而导致失败)。为什么会发生这种情况?为什么合同jar重新出现在乙方节点上 详细信息 我首先从乙方节点中移除了合同jar(在node_a

网络配置
1名公证人, 3个节点-甲方、乙方、丙方

摘要
在下面的“Potential.jar injection”一节中,我注意到合同jar附件虽然在开始时被删除,但在从甲方开始流程后,它重新出现在乙方的node_attachment和node_attachment_contract表中(由于node_附件和node_附件_合同表中缺少合同jar,导致乙方未回复而导致失败)。为什么会发生这种情况?为什么合同jar重新出现在乙方节点上

详细信息
我首先从乙方节点中移除了合同jar(在node_attachments和node_attachments_contracts表中进行了交叉检查,均为空),然后通过从甲方开始流程

流程启动示例流程$Initiator IOU值:50,另一方:“O=PartyB,L=New York,C=US”

但就在运行流程之后,合同jar附件再次出现在乙方的node_attachments和node_attachments_contracts表中。为什么会发生这种情况?当我检查乙方node_attachments表中的条目时,我发现如下:

收件人ID 文件名 插入日期 上传器 版本 E3C04EE4DB0B65EFC5F299EFF1CC9CB7190021ECECCB1505C2E7FD54F778C1A2 无效的 2021-03-11 20:20:03.409 p2p:O=PartyA,L=London,C=GB 1.
  • 当您从a点到B点运行事务时,通常会将附件从a点下载到B点以验证事务(特别是如果您使用ReceiveTransactionFlow之类的工具)。这就是为什么附件条目也位于另一台计算机上的原因
  • 这很有趣,我以前从未尝试过从不同的corda节点下载附件。如果我不得不猜测,机制的设计者认为没有必要存储文件名,因为他们必须唯一地标识它
  • 我不想对这里发生的事情进行太多推测,但这取决于流实现。可能只是操作顺序与您预期的不同。例如,您可以使用子流发送附件(或者corda可以自动执行此操作),并且该附件可能在导致流失败的错误之前完成共享。在这种情况下,我怀疑流中的错误与附件过程无关。鉴于附件代码经过了很好的测试,这是有意义的
  • 最后我要指出的是,training.corda.net网站不幸已经过时(我相信它是为corda 4.5编写的)。因此,可能需要再次检查您是否拥有正确的教程版本

    关于这方面的一些额外资源:

    • 关于交易附件的Corda docs页面:

    谢谢,我正在运行Corda 4.4,因此我想training.Corda.net应该可以。流程中出现错误(“逆流错误”)第一次出现是因为缺少了contract-jar附件,我在开始时手动删除了该附件,但据我所知,错误不应该再次出现,因为contract-jar附件现在是由于自动重新插入而出现的。