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

如何通过Solana JSON RPC或工具包实现验证器公钥与名称映射?

如何通过Solana获取验证器名称(而非仅公钥)

问题描述

Solana的JSON RPC方法getVoteAccounts仅返回验证器的公钥,无法直接获取验证器名称。例如,如何将公钥beefKGBWeSpHzYBHZXwp5So7wdQGX6mu4ZHCsH3uTar映射到对应的"Coinbase Cloud"?

解决方案

Solana原生RPC没有直接返回验证器名称的接口,但可以通过以下几种方式实现公钥到名称的映射:

  • 使用社区维护的验证器注册表工具包
    社区维护的Solana验证器注册表聚合了公开验证器的元数据(包括名称、运营商信息等)。可以通过@solana/spl-validator-registry npm包查询:

    import { ValidatorRegistry } from '@solana/spl-validator-registry';
    import { Connection, PublicKey } from '@solana/web3.js';
    
    // 初始化连接
    const connection = new Connection('https://api.mainnet-beta.solana.com');
    // 目标验证器投票公钥
    const votePubkey = new PublicKey('beefKGBWeSpHzYBHZXwp5So7wdQGX6mu4ZHCsH3uTar');
    // 加载注册表并查询
    const registry = await ValidatorRegistry.load(connection);
    const validator = registry.getValidatorByVoteAccount(votePubkey);
    console.log(validator?.name); // 输出:Coinbase Cloud
    
  • 查询第三方数据服务
    部分区块浏览器或数据平台提供了验证器信息查询接口,可通过投票公钥获取名称。这类服务通常会聚合链上和公开提交的验证器数据,覆盖范围较广,但可能需要遵守请求限制或使用API密钥。

  • 解析验证器身份账户数据
    若验证器配置了关联的身份账户,可通过RPC方法getAccountInfo查询该账户的链上数据,解析其中存储的元字段(如名称)。不过这种方式依赖验证器主动配置,并非所有验证器都支持。

总结

最通用且可靠的方式是使用社区维护的验证器注册表工具包,它能覆盖大多数公开验证器的信息映射需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:52:33