跨AWS EC2实例部署Corda节点执行IOU操作异常求助
嗨,针对你在AWS部署Corda节点后执行IOU交易遇到的异常,我整理了几个实战中最常见的排查方向,你可以一步步来验证:
1. 先排查网络连通性(最常见的坑)
- 首先检查AWS安全组规则:Corda节点默认用
10002端口做P2P通信,8080做RPC访问。要确保Party A的实例能访问Party B的10002端口,Notary的端口也能被两个Party实例访问到。 - 可以在Party A的EC2实例上执行命令测试连通性:
nc -zv <Party B的IP> 10002,如果返回“succeeded”说明端口通,否则先去调整安全组规则。 - 再核对
node.conf里的地址配置:确保p2pAddress和rpcSettings.address都用了对应实例的正确IP(公网或内网IP,别混用),千万别留着localhost的配置没改。
2. 验证网络身份与参数一致性
- 确认网络引导生成的
network-parameters文件已经同步到所有节点的cordapps目录下了,少了这个文件节点根本没法加入统一网络。 - 检查每个节点的
nodeInfo-*.json文件,看看里面的地址信息是不是和配置的IP一致,有没有残留localhost。可以用命令快速查看:cat nodeInfo-*.json | grep address。 - 查看节点日志(
logs/node.log)里有没有成功连接Notary的记录,搜关键词Connected to peer或者Notary,如果Notary没连上,交易肯定没法完成。
3. 检查IOU交易的代码逻辑
- 先看IOU合约里的参与者约束:是不是明确把Party A、Party B都设成了参与者?有没有遗漏Notary的配置?
- 再看Flow代码:发起交易时有没有正确触发Party B的签名请求?如果Flow里没处理对方的签名收集,交易大概率会失败。
- 重点看节点日志里的具体异常信息!搜
Exception或者Failed关键词,找到完整的错误栈,比如Peer not reachable(节点连不上)、Signature missing(缺签名)这类提示,能直接帮你定位问题根源。
4. AWS环境的特殊限制
- 如果用公网IP,确认EC2实例已经分配了弹性IP,并且所在子网关联了互联网网关,不然公网访问会被阻断。
- 如果用VPC内网通信,要确保三个实例在同一个VPC(或者通过VPC peering连通),子网的路由表也配置了正确的内网路由规则。
内容的提问来源于stack exchange,提问作者GPC
相关产品推荐
相关产品推荐

