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

能否通过Network Map Service查询Corda节点在线/离线状态?

Corda节点在线/离线状态查询方案解答

首先直接给你明确结论:Network Map Service(NMS)并不支持查询节点的实时在线/离线状态。它的核心职责是维护网络里节点的静态注册元数据(比如身份信息、服务端点),不会主动追踪节点的实时连通性,也没有暴露这类查询接口——这就是你查文档找不到相关方法的原因。

下面给你几个Corda原生的实现方案,替代操作系统工具的方式:

  • RPC API 连通性测试
    这是最常用的原生方案。你可以通过节点的RPC连接,先获取网络内的节点列表,再调用ping()方法测试目标节点的连通性。举个简单的Kotlin代码示例:

    // 建立RPC连接
    val rpcConnection = CordaRPCClient(HostAndPort("node-host", 10006)).start("user", "password")
    val proxy = rpcConnection.proxy
    
    // 获取已注册的所有节点信息
    val allNodes = proxy.networkMapSnapshot()
    // 定位要检查的目标节点
    val targetNode = allNodes.first { 
        it.legalIdentities.first().name.organisation == "YourTargetOrg" 
    }
    // 测试连通性,返回布尔值表示是否在线
    val isNodeOnline = proxy.ping(targetNode.nodeInfo.addresses.first())
    

    ping()方法会尝试和目标节点建立连接,通过结果就能判断节点是否在线。

  • 节点健康检查端点
    如果你的节点配置了HTTP健康检查(需要在节点配置文件中开启相关参数),可以直接访问节点的健康端点:http://<node-ip>:<port>/health,返回的JSON会包含节点的运行状态,比如是否正常启动、组件是否健康。不过这个只能查询单个节点自身的状态,没法批量查网络内的节点。

  • 自定义心跳Flow
    要是你需要更灵活的状态验证(比如结合业务逻辑),可以写一个简单的心跳Flow:发起方向目标节点发送心跳请求,目标节点收到后返回响应。如果能成功收到响应,就说明节点在线。这种方式可以根据需求扩展,比如加上状态上报的额外信息。

如果是生产环境,建议把Corda原生方案和操作系统工具结合起来用,这样监控会更全面可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:18:24