getEpochInfo RPC 方法返回有关当前 epoch 的信息。这对于了解网络的当前状态、网络在当前 epoch 中的进展程度以及下一个 epoch 可能何时开始非常有用。要更好地理解 epochs、slots 和 blocks 在 Solana 上如何协同工作,请参阅我们的详细文章。

常见用例

  • 监控 Epoch 进度: 跟踪 epoch 中的当前 slot 索引和 epoch 中的总 slots 以估算剩余时间。
  • 网络状态分析: 获取当前 epoch 编号、区块高度以及当前 epoch 中处理的交易数量。
  • 同步检查: 通过比较节点的 epoch 信息来验证其是否与网络合理同步。

请求参数

getEpochInfo 方法可以选择性地接受一个包含以下参数的配置对象:
  • commitment (字符串,可选):指定查询账本时使用的承诺级别
    • finalized:节点将查询由集群的绝大多数确认已达到最大锁定的最新区块。
    • confirmed:节点将查询由集群的绝大多数投票的最新区块。
    • processed:节点将查询其最新的区块。请注意,该区块可能不完整。
    • 如果未提供,默认承诺为 finalized
  • minContextSlot (数字,可选):请求可以评估的最小 slot。这可以用于确保响应来自足够新的状态。

响应结构

JSON-RPC 响应的 result 字段将是一个包含以下字段的对象:
  • absoluteSlot (u64): 当前的绝对槽号。
  • blockHeight (u64): 当前区块高度。
  • epoch (u64): 当前纪元号。
  • slotIndex (u64): 当前槽相对于当前纪元开始的相对位置。
  • slotsInEpoch (u64): 当前纪元中的总槽数。
  • transactionCount (u64 | null): 当前纪元中处理的交易总数。如果数据不可用,可以是 null

示例

1. 获取当前纪元信息(无参数)

此示例使用默认承诺获取有关当前纪元的信息。
curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
  '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getEpochInfo"
  }'

2. 使用“confirmed”承诺获取当前纪元信息

此示例使用 confirmed 承诺获取纪元信息。
curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
  '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getEpochInfo",
    "params": [
      {
        "commitment": "confirmed"
      }
    ]
  }'

开发者提示

  • 承诺级别: 选择 commitment 会影响数据的及时性和最终性。processed 是最快但最不安全的,而 finalized 是最安全但可能稍有延迟。了解更多关于 承诺级别 的详细信息。
  • transactionCount 可用性: 如果节点没有此信息或未针对特定承诺级别进行跟踪,transactionCount 字段可能是 null
  • 纪元长度: slotsInEpoch 的数量可能会有所不同。您可以使用 getEpochSchedule 获取有关纪元计划的更多详细信息。
本指南提供了使用 getEpochInfo RPC 方法在 Solana 网络上检索当前纪元详细信息的必要信息。