You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure部署Corda网络中Cordapps节点列表返回自身节点信息问题

解决Corda Yo! CorDapp peers接口仅返回单个节点的问题

我来帮你排查下这个问题,大概率是节点网络连通性、发现机制或者配置的问题,你可以按下面的步骤逐一验证:

1. 检查Azure VM的网络安全组(NSG)配置

Corda节点之间依赖P2P端口(默认是10002)进行通信,首先要确保所有节点的这个端口在NSG中是互相开放的:

  • 登录Azure门户,找到每个VM对应的NSG,添加入站/出站规则,允许来自其他节点IP的10002端口访问。
  • 在每个节点上执行nc -zv <其他节点IP> 10002或者telnet <其他节点IP> 10002测试连通性,如果不通,先把NSG的规则配置正确。

2. 验证节点的网络映射服务注册状态

所有节点需要在同一个网络映射服务(Network Map Service)上注册才能互相发现:

  • 登录到任意节点的Shell,执行run networkMapSnapshot命令,查看返回的节点列表是否包含你创建的3个节点。如果缺少节点,检查对应节点的启动日志,看是否有注册失败的报错(比如网络不通、身份配置错误)。
  • 确认每个节点的node.conf文件中,networkMapService的配置指向正确的网络映射节点地址,myLegalName的格式也符合规范(比如O=Org1,L=London,C=GB)。

3. 手动触发节点的网络发现

有时候节点刚启动,网络缓存还没同步全量节点信息,你可以手动刷新:

  • 在Web应用连接的那个节点的Shell中,执行run refreshNetworkMapCache命令,强制节点从网络映射服务拉取最新的节点列表。
  • 等待1-2分钟后,再调用http://ipaddress:10004/api/yo/peers接口,看看是否返回所有节点。

4. 确认Yo! CorDapp在所有节点上的安装状态

CorDapp必须在所有节点上安装并生效才能正常交互:

  • 在每个节点的Shell中执行run cordapps命令,查看已安装的CorDapp列表,确保yo-4.jar对应的CorDapp存在。
  • 如果某个节点没安装,把jar包放到该节点的cordapps目录下,然后重启节点。

5. 检查Web应用的节点连接配置

Web应用是通过RPC连接到某个特定节点的,如果这个节点本身没发现其他节点,接口返回的结果就会不全:

  • 确认Web应用配置文件中指向的节点RPC地址、端口(默认10003)和认证信息是否正确,并且该节点已经完成了全网络的节点发现。

按照上面的步骤排查下来,应该能解决节点列表不全的问题。

内容的提问来源于stack exchange,提问作者geekybot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:41:16