跳转到主要内容
这个RPC方法提供了有关当前纪元或指定槽范围内区块生产的信息。可用于检索所有验证者或特定验证者身份的数据。这对于监控验证者性能和了解网络上区块生产模式非常有价值。

常见用例

  • 监控验证者性能: 跟踪特定验证者生产的区块数量和领导槽。
  • 分析纪元性能: 获取当前或过去纪元中所有验证者的区块生产概况。
  • 识别错过的槽: 查看验证者是否错过了分配的领导槽。
  • 网络健康检查: 收集整体区块生产效率的数据。

请求参数

该方法接受一个可选的配置对象,包含以下参数:
  1. (string,可选):指定查询使用的承诺级别。如果省略,将使用节点的默认承诺。
  2. (object,可选):定义要查询的槽范围。
    • (u64):要获取区块生产信息的第一个槽(包含)。
    • (u64,可选):要获取区块生产信息的最后一个槽(包含)。如果省略,将返回当前纪元的区块生产信息直到当前槽。
  3. (string,可选):验证者身份的base58编码公钥。如果提供,响应将仅包括该特定验证者的区块生产信息。如果省略,将返回指定范围(或当前纪元)内所有验证者的信息。
注意: 至少必须提供其中之一。如果未提供,参数是需要的。

响应结构

JSON-RPC响应的字段将是一个包含以下内容的对象:
  • (object):
    • (u64):获取信息的槽。
  • (object):
    • (object):一个对象,其中键是验证者身份字符串(base58编码的公钥),值是包含以下内容的对象:
      • (u64):在查询的范围/纪元内分配给该验证者的领导槽数量。
      • (u64):在查询的范围/纪元内该验证者生产的区块数量。
    • (object):
      • (u64):查询范围的第一个槽。
      • (u64):查询范围的最后一个槽。

开发者提示

  • 理解纪元边界:当通过identity查询而没有range时,返回的数据是当前纪元直到节点处理的最新插槽。如果需要某个特定验证器的完整过去纪元的数据,你需要确定该纪元的firstSlotlastSlot
  • 节点数据可用性:历史块生产数据的范围可能因RPC节点而异。非常旧的插槽范围可能在所有节点上都不可用。
  • 性能监控getBlockProduction是构建相对于验证器正常运行时间和区块生产成功率的仪表板或警报的关键。
  • getLeaderSchedule结合使用:为了进行更深入的分析,你可以将getBlockProduction数据与getLeaderSchedule的输出相关联,以查看哪些具体的领导插槽被制作或错过。
  • 身份与所有验证器:在没有identity的情况下查询会返回大量数据,尤其是在没有range或指定了广泛的range时。注意响应大小和处理要求。

示例

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": "getBlockProduction"
  }'

2. 获取当前纪元中特定验证者的区块生产

此示例获取当前纪元中特定验证者身份的区块生产。
# Replace YOUR_VALIDATOR_IDENTITY_PUBKEY with the actual validator's base58 public key.
curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \\
  '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBlockProduction",
    "params": [
      {
        "identity": "YOUR_VALIDATOR_IDENTITY_PUBKEY"
      }
    ]
  }'

3. 获取特定插槽范围和验证者的区块生产

此示例获取在定义的插槽范围内特定验证者的区块生产数据。
# Replace YOUR_VALIDATOR_IDENTITY_PUBKEY, START_SLOT, and END_SLOT.
curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \\
  '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBlockProduction",
    "params": [
      {
        "identity": "YOUR_VALIDATOR_IDENTITY_PUBKEY",
        "range": {
          "firstSlot": START_SLOT, # e.g., 200000000
          "lastSlot": END_SLOT    # e.g., 200010000
        }
      }
    ]
  }'
本指南应能让你充分理解如何使用getBlockProduction RPC方法来分析Solana上的区块生产。

相关方法