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

Solana getLeaderSchedule RPC方法传递epoch参数时异常问题

Solana JSON RPC getLeaderSchedule 获取历史Epoch领导者日程问题

我尝试使用Solana JSON RPC API的getLeaderSchedule方法,获取指定Epoch(如713)和验证节点的领导者日程,使用的代码片段如下:

async function getLeaderSchedule() {
  const url = 'https://api.mainnet-beta.solana.com';
  let epoch = 713; 
  const data = {
    jsonrpc: "2.0",
    id: 1,
    method: "getLeaderSchedule",
    params: [
      epoch, 
      {
        identity: "BNtHBLo1L2vAG7PBQ6mJvWz7GqVPxBnioXsY2Gjtubrg" // Validator identity
      }
    ]
  };

  const response = await fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
  });

  const result = await response.json();
  console.log(result);
}

但传递epoch参数时,返回结果为{ jsonrpc: '2.0', result: null, id: 1 };省略该参数(设为null)时,可正常返回当前Epoch的领导者日程。请问该方法是否仅支持当前Epoch,还是应支持历史Epoch?获取历史Epoch的领导者日程是否有特定条件或限制?


解答

  • getLeaderSchedule方法支持历史Epoch查询,但公共RPC节点(比如api.mainnet-beta.solana.com)默认不会保留所有历史Epoch的领导者日程数据——存储全量历史数据会占用极大资源,公共节点通常仅保留最近几个Epoch的相关数据。
  • 要查询较旧的历史Epoch(如713),可选择以下两种方式:
    1. 自行部署Solana全节点:全节点会保留完整的链上历史数据,通过自身节点的RPC接口可查询任意历史Epoch的领导者日程。
    2. 使用第三方付费RPC服务:部分第三方节点服务商提供长期历史数据存储服务,可支持查询更早的Epoch数据,但可能存在请求频次或付费限制。
  • 额外注意:即使是自行部署的全节点,若未配置完整的历史归档,也可能无法查询到过于久远的Epoch数据,需确保节点开启了全历史存储配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 10:12:07