getBlocksWithLimit RPC 方法允许您检索已确认的区块槽编号列表,从指定的槽开始并返回到给定的限制。这在您需要从分类账的某个点开始的特定数量的后续已确认区块时非常有用。
避免批处理以提高性能批处理归档方法会显著增加延迟。不允许超过10个请求的批处理。
常见用例
- 获取固定数量的后续区块: 获取在特定起始槽位之后确认的定义数量的区块槽位。
- 分页区块探索: 在分析区块链的某个片段时,分块检索区块。
- 最近区块监控: 从已知的最近槽位获取最后的N个区块。
请求参数
getBlocksWithLimit 方法接受以下参数:
start_slot (u64, 必需): 要考虑的第一个槽位(包括在内)。
limit (u64, 必需): 要返回的最大区块槽位数。查询的槽位总数(从 start_slot 到其后的 limit 区块)不得超过500,000个槽位。
commitment (string, 可选): 指定查询的承诺级别。如果省略,则使用节点的默认承诺。这作为配置对象中的唯一字段传递,作为最后一个参数。
响应结构
JSON-RPC响应的 result 字段将是一个u64整数数组。数组中的每个整数表示一个确认的区块槽位号,从 start_slot 开始到指定的 limit。
- 例子:如果
start_slot 是5,limit 是3,可能的结果是 [5, 6, 7]。
1. 从起始槽位获取有限数量的区块
此示例从槽位 280000000 开始获取最多5个确认的区块槽位列表。
curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
'{
"jsonrpc": "2.0",
"id": 1,
"method": "getBlocksWithLimit",
"params": [
280000000,
5
]
}'
2. 获取具有限制和特定承诺级别的区块
此示例从插槽290000000开始获取最多3个区块,使用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": "getBlocksWithLimit",
"params": [
290000000,
3,
{ "commitment": "confirmed" }
]
}'
开发者提示
- 范围说明:
limit参数决定返回的最大区块插槽数量。500,000插槽限制适用于扫描的概念范围(即从start_slot到start_slot + limit - 1)。确保此概念范围不超过500,000插槽,即使在该范围内找到并返回的实际区块较少。
- 节点数据可用性: 节点可能不会保留所有历史插槽的信息。一个非常旧的
start_slot可能返回的区块少于指定的limit,或返回空数组,这取决于节点的账本保留情况。
- 区块确认: 此方法返回已确认的区块。具体的区块集合可能会根据所选的
commitment级别和查询的节点而略有不同,尤其是对于非常近期的插槽。
- 用例特定性: 当您知道起始点并需要固定数量的后续区块时,
getBlocksWithLimit是理想的选择。如果您需要已知插槽范围内的所有区块,getBlocks可能更合适。
本指南清晰概述了如何使用getBlocksWithLimit RPC方法在Solana网络上列出特定数量的已确认区块插槽。