R3 Corda IOUs异常:调用指定API返回空响应且出现连接错误
解决你的Corda节点IOU接口空数组及远程IP连接失败问题
嘿,我来帮你搞定这两个关联的问题——IOU接口返回空数组,还有那个莫名其妙的远程IP连接失败错误。咱们一步步来排查:
1. 先搞定奇怪的IP连接错误
那个20.198.218.65绝对不是Corda示例节点的默认本地地址,大概率是你某个节点的配置文件写错了对等节点地址。你需要这么做:
- 找到每个节点文件夹下的
node.conf文件(比如build/nodes/PartyA/node.conf) - 搜索
p2pAddress、networkMapAddress还有rpcSettings里的address配置项,把所有指向20.198.218.65的地址改成localhost或者你的本地IP(比如127.0.0.1) - 举个例子,如果原来的配置是:
要改成对应节点的正确本地端口,比如PartyA的p2p默认端口是10002,所以改成:p2pAddress="20.198.218.65:10011"
(注意PartyB的p2p端口是10004,Notary是10000,别搞混了)p2pAddress="localhost:10002" - 改完所有节点的配置后,重启所有节点,启动后检查日志,应该不会再出现那个连接失败的错误了。
2. 解决IOU接口返回空数组的问题
空数组的情况通常和节点连接异常或者还没创建交易有关,按下面的步骤来:
- 节点重启正常后,先确认节点已经成功连接到Notary和其他对等节点(可以看节点日志里的连接成功提示)
- 然后创建一个IOU交易:你可以用示例提供的CLI工具,或者直接发POST请求到你的REST接口,请求体大概是这样的:
(注意根据你实际的节点身份信息调整lender和borrower的字段值){ "value": 100, "lender": "O=PartyB,L=New York,C=US", "borrower": "O=PartyA,L=London,C=GB" } - 交易创建成功后,再访问
http://localhost:10013/api/example/ious,应该就能看到你刚创建的IOU数据了。
额外排查点
如果做完上面的步骤还是返回空数组,你可以:
- 查看PartyA节点的日志文件(
build/nodes/PartyA/logs/node.log),看看有没有交易处理失败的报错信息 - 确认REST服务的端口配置:在
node.conf里找到webServer下的port项,确保它就是你访问的10013
内容的提问来源于stack exchange,提问作者Kalyan Konda
相关产品推荐
相关产品推荐

