常见用例
- 监控验证者性能: 跟踪特定验证者生产的区块数量和领导槽。
- 分析纪元性能: 获取当前或过去纪元中所有验证者的区块生产概况。
- 识别错过的槽: 查看验证者是否错过了分配的领导槽。
- 网络健康检查: 收集整体区块生产效率的数据。
请求参数
该方法接受一个可选的配置对象,包含以下参数:- (string,可选):指定查询使用的承诺级别。如果省略,将使用节点的默认承诺。
- (object,可选):定义要查询的槽范围。
- (u64):要获取区块生产信息的第一个槽(包含)。
- (u64,可选):要获取区块生产信息的最后一个槽(包含)。如果省略,将返回当前纪元的区块生产信息直到当前槽。
- (string,可选):验证者身份的base58编码公钥。如果提供,响应将仅包括该特定验证者的区块生产信息。如果省略,将返回指定范围(或当前纪元)内所有验证者的信息。
响应结构
JSON-RPC响应的字段将是一个包含以下内容的对象:- (object):
- (u64):获取信息的槽。
- (object):
- (object):一个对象,其中键是验证者身份字符串(base58编码的公钥),值是包含以下内容的对象:
- (u64):在查询的范围/纪元内分配给该验证者的领导槽数量。
- (u64):在查询的范围/纪元内该验证者生产的区块数量。
- (object):
- (u64):查询范围的第一个槽。
- (u64):查询范围的最后一个槽。
- (object):一个对象,其中键是验证者身份字符串(base58编码的公钥),值是包含以下内容的对象:
开发者提示
- 理解纪元边界:当通过
identity查询而没有range时,返回的数据是当前纪元直到节点处理的最新插槽。如果需要某个特定验证器的完整过去纪元的数据,你需要确定该纪元的firstSlot和lastSlot。 - 节点数据可用性:历史块生产数据的范围可能因RPC节点而异。非常旧的插槽范围可能在所有节点上都不可用。
- 性能监控:
getBlockProduction是构建相对于验证器正常运行时间和区块生产成功率的仪表板或警报的关键。 - 与
getLeaderSchedule结合使用:为了进行更深入的分析,你可以将getBlockProduction数据与getLeaderSchedule的输出相关联,以查看哪些具体的领导插槽被制作或错过。 - 身份与所有验证器:在没有
identity的情况下查询会返回大量数据,尤其是在没有range或指定了广泛的range时。注意响应大小和处理要求。
示例
1. 获取当前纪元的区块生产(所有验证者)
此示例获取当前纪元中所有验证者的区块生产数据。2. 获取当前纪元中特定验证者的区块生产
此示例获取当前纪元中特定验证者身份的区块生产。3. 获取特定插槽范围和验证者的区块生产
此示例获取在定义的插槽范围内特定验证者的区块生产数据。getBlockProduction RPC方法来分析Solana上的区块生产。