Corda 4尽职调查应用共享审计结果时出现附件冲突异常
解决Corda Due Diligence Cordapp中OverlappingAttachmentsException异常问题
问题重现
执行以下Flow命令后控制台卡在Starting,NodeA日志抛出net.corda.core.contracts.TransactionVerificationException$OverlappingAttachmentsException:
flow start ShareAuditingResultInitiator AuditingResultID: , sendTo: BankB, trustedAuditorAttachment: "8DF3275D80B26B9A45AB022F2FDA4A2ED996449B425F8F2245FA5BCF7D1AC587"
异常核心提示:多个附件定义了whitelistedcorporateauditors.txt文件
根本原因
Corda禁止同一交易中存在包含相同文件名的多个附件,该问题通常由以下情况导致:
- 节点本地已加载含
whitelistedcorporateauditors.txt的附件,Flow命令中又指定了另一个包含相同文件名的附件ID - 构建节点时,附件被重复打包进CorDapp的JAR包或节点的附件目录
解决步骤
1. 清理节点重复附件
- 进入NodeA的节点目录,找到
attachments文件夹(通常路径为build/nodes/NodeA/attachments) - 找出所有包含
whitelistedcorporateauditors.txt的附件文件,仅保留一个最新版本,删除其余重复项 - 重启NodeA节点
2. 修正Flow参数中的附件ID
- 执行
run listAttachments命令,查看节点已加载的所有附件列表 - 找到唯一包含
whitelistedcorporateauditors.txt的附件ID,替换Flow命令中trustedAuditorAttachment的参数值 - 确保使用的附件ID是当前节点唯一有效的对应附件
3. 重建CorDapp时避免重复打包
- 检查CorDapp的构建配置(Gradle/Maven),确认
whitelistedcorporateauditors.txt仅被打包一次 - 执行彻底清理并重新构建部署节点:
./gradlew clean build deployNodes - 不要手动向节点
attachments目录添加重复的附件文件
4. 验证修复效果
重新执行Flow命令,观察控制台输出是否正常完成,同时检查NodeA和NodeB的日志,确认异常不再出现
内容的提问来源于stack exchange,提问作者Ashwani Kumar
相关产品推荐
相关产品推荐

