getClusterNodes
RPC 方法返回当前参与 Solana 集群的所有已知节点的列表。此信息对于网络分析、发现替代 RPC 端点或从查询节点的角度理解当前网络拓扑非常有用。
常见用例
- 网络拓扑分析: 获取集群中已知节点的快照,包括它们的公钥和网络地址(gossip、TPU、RPC)。
- 发现 RPC 端点: 识别集群中其他潜在的 RPC 服务器(尽管可用性和速率限制可能会有所不同)。
- 监控节点版本: 观察集群中不同节点运行的软件版本。
请求参数
此方法不需要任何参数。响应结构
JSON-RPC 响应的result
字段将是一个对象数组。每个对象代表一个节点,并包含以下字段:
pubkey
(string): 节点的公钥(身份),base58 编码。gossip
(string | null): 节点 gossip 服务的 IP 地址和端口。如果不可用,可以是null
。tpu
(string | null): 节点事务处理单元 (TPU) 的 IP 地址和端口。用于直接提交交易。如果不可用,可以是null
。rpc
(string | null): 节点 JSON-RPC 服务的 IP 地址和端口。如果此节点未启用或未公布 RPC 服务,可以是null
。version
(string | null): 节点的软件版本。如果版本信息不可用,可以是null
。featureSet
(u32 | null): 节点功能集的唯一标识符。如果不可用,可以是null
。shredVersion
(u16 | null): 此节点用于存储和传输区块(shreds)的数据结构版本。如果不可用,可以是null
。
示例
1. 获取所有已知的集群节点
此示例获取查询的 RPC 端点已知的所有节点列表。开发者提示
- 节点的视角: 返回的列表反映了您正在查询的特定 RPC 节点已知的节点。不同的 RPC 节点可能对集群有略微不同的视图,尤其是在网络变化期间。
- RPC 可用性: 列出的所有节点不一定都开放或公开可访问其 RPC 端口。
rpc
字段非空表示一个已公布的 RPC 端点,但这不保证可访问性或性能。 - 动态列表: 集群拓扑是动态的。节点可以加入和离开,因此列表可能会随时间变化。
- 大响应: 在像 Mainnet Beta 这样的大型网络中,响应可能相当广泛,列出许多节点。
getClusterNodes
RPC 方法来发现和理解 Solana 集群中的节点所需的信息。