测试版发布:请注意,
getProgramAccountsV2
可供早期使用。如遇到任何问题,请联系支持。概述
getProgramAccountsV2
是标准 getProgramAccounts
方法的增强版本,专为需要高效查询由特定 Solana 程序拥有的大量账户的应用程序设计。此方法引入了基于游标的分页和增量更新功能。
V2 中的新功能:
- 基于游标的分页:每个请求可配置从 1 到 10,000 个账户的限制
- 增量更新:使用
changedSinceSlot
仅获取最近修改的账户 - 更好的性能:防止超时并减少大数据集的内存使用
- 向后兼容:支持所有现有的
getProgramAccounts
参数
主要优势
可扩展查询
通过高效分页处理拥有数百万账户的程序
实时同步
使用
changedSinceSlot
进行增量更新和实时数据同步防止超时
以前超时的大型查询现在通过分页可靠地工作
内存高效
分块处理数据,而不是一次性加载所有数据到内存中
分页最佳实践
重要的分页行为:分页结束仅在没有返回账户时指示。由于过滤,API 可能返回少于限制的账户 - 始终继续分页,直到
paginationKey
是 null
。基本分页模式
增量更新
性能提示
最佳限制大小:对于大多数用例,每个请求限制在 1,000-5,000 个账户之间提供了性能和可靠性的最佳平衡。
- 从较小的限制开始 (1000),并根据您的网络性能增加
- 使用适当的编码:
jsonParsed
方便,base64
性能 - 应用过滤器 以在分页前减少数据集大小
- 存储
paginationKey
以便在查询中断时恢复 - 监控响应时间 并相应调整限制
从 getProgramAccounts 迁移
从原始方法迁移很简单 - 只需替换方法名称并添加分页参数:相关方法
Body
application/json
JSON-RPC 协议版本。
Available options:
2.0
Example:
"2.0"
请求的唯一标识符。
Example:
"1"
要调用的 RPC 方法名称。
Available options:
getProgramAccountsV2
Example:
"getProgramAccountsV2"
增强分页方法的参数。