跳转到主要内容
RPC 方法从集群的创世配置返回epoch调度信息。此数据定义了epoch的结构,包括其长度以及如何相对于epoch的开始确定领导者调度。 理解 epoch 计划对于需要与网络事件对齐、预测 epoch 边界或理解领导者轮换机制的应用程序至关重要。

常见用例

  • 预测 Epoch 边界: 确定一个 epoch 中的插槽数量,以估算当前 epoch 何时结束以及下一个何时开始。
  • 领导者调度计算: 了解 leaderScheduleSlotOffset 以了解为即将到来的 epoch 提前多长时间生成领导者调度。
  • 分析网络初始化: 观察 warmup, firstNormalEpochfirstNormalSlot 以了解集群 epoch 长度的初始增温阶段(如果适用)。
  • 构建网络监控工具: 使用此信息准确显示 epoch 的时序和进展。

请求参数

此方法不接受任何参数。

响应结构

JSON-RPC 响应的 result 字段将是一个包含以下字段的对象:
  • slotsPerEpoch (u64):每个 epoch 中的最大插槽数量(如果有增温期,则在增温期后)。
  • leaderScheduleSlotOffset (u64):生成该 epoch 的领导者调度的 epoch 开始前的插槽数量。
  • warmup (boolean):布尔值,指示集群是否有增温期,其中 epoch 开始时较短并逐渐增加长度。
  • firstNormalEpoch (u64):具有完整 slotsPerEpoch 长度的第一个 epoch 编号。如果 warmup 为真,则此项相关。
  • firstNormalSlot (u64):firstNormalEpoch 中第一个插槽的插槽索引。如果 warmup 为真,则此项相关。

示例

1. 获取集群的 Epoch 计划

此示例获取 epoch 计划。
curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
  '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getEpochSchedule"
  }'

开发者提示

  • 静态信息: epoch 计划由集群的创世配置确定,通常不会改变,除非有重大网络升级或具有不同参数的新集群启动。
  • Mainnet 与 Testnet/Devnet: epoch 计划,特别是 slotsPerEpoch 和 warmup 参数,在 Mainnet Beta、Testnet 和 Devnet 之间可能有很大差异。始终查询您感兴趣的特定集群。
  • 热身期: 如果 warmuptrue,则在 firstNormalEpoch 之前的 epoch 将有比 slotsPerEpoch 更少的插槽。热身 epoch 长度的精确计算是 2^N * MINIMUM_SLOTS_PER_EPOCH ,其中 N 是 epoch 编号(从 0 开始),直到达到 firstNormalEpochMINIMUM_SLOTS_PER_EPOCH 通常是 32。
本指南提供使用 getEpochSchedule RPC 方法所需的信息,以了解 Solana 集群中 epoch 的基本时间和结构。