免 Endpoint 调用
Accelerator 是 Gateway 在访问 Endpoint 前查询的共享 JSON-RPC 缓存。对于严格匹配缓存策略的只读请求,即使你的 Gateway 没有配置 Endpoint,也可能直接获得缓存结果。
这是一项缓存命中型能力,不是公共 Endpoint。缓存未命中、已过期,或方法与参数不符合下表时,Gateway 不会替你向公共节点回源。
请求如何执行
- Gateway 验证 App API Key、Host、链和网络。
- Accelerator 判断方法与参数是否符合共享缓存策略。
- 缓存命中时,Gateway 直接返回结果。
- 缓存未命中时,配置了 Endpoint 的 Gateway 继续执行 route;没有 Endpoint 时返回
-32004 No available Endpoint。
鉴权、限流和 Usage 统计在两条路径上都生效。
支持的方法和参数
参数必须严格符合表中的形式。其他读取方法、写方法和参数变体都需要 Endpoint。
| 协议 | 方法 | 支持的 params |
|---|---|---|
| EVM | eth_blockNumber | 省略或 [] |
| EVM | eth_getBlockByNumber | ["<明确的十六进制区块高度>", false] |
| EVM | debug_traceBlockByNumber | ["<明确的十六进制区块高度>", {"tracer":"callTracer"}] |
| Solana | getSlot | 省略、[] 或 [{"commitment":"finalized"}] |
| Solana | getLatestBlockhash | 省略、[] 或 [{"commitment":"finalized"}] |
| Solana | getBlock | [<slot>, {"encoding":"json","commitment":"finalized","rewards":false,"maxSupportedTransactionVersion":0}] |
| Bitcoin / Litecoin | getblockchaininfo | 省略或 [] |
| Bitcoin / Litecoin | getblockhash | [<非负区块高度>] |
| Bitcoin / Litecoin | getblock | ["<block_hash>", 3] |
| TRON JSON-RPC | eth_blockNumber | 省略或 [] |
EVM 范围适用于 Ethereum、Polygon、BNB Smart Chain、Arbitrum、Optimism 和 Base。eth_getBlockByNumber 与 debug_traceBlockByNumber 不接受 latest、safe、finalized 或 pending 等区块标签。
Solana getBlock 的 encoding 可以是 json 或 jsonParsed;commitment 必须是 finalized,rewards 必须是 false,支持的最大交易版本为 0。
示例
下面的 Ethereum Mainnet 请求无需为 Gateway 配置 Endpoint,但只有 Accelerator 已有该网络的最新高度时才会成功:
curl '<ethereum_access_point>' \
-H 'Authorization: Bearer <app_api_key>' \
-H 'Content-Type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'请求一个明确高度的区块:
curl '<ethereum_access_point>' \
-H 'Authorization: Bearer <app_api_key>' \
-H 'Content-Type: application/json' \
--data '{"jsonrpc":"2.0","id":2,"method":"eth_getBlockByNumber","params":["0x13a4f20",false]}'注意事项
- 缓存不保证每个区块高度、Slot 或区块 Hash 都已存在;同一个合法请求也可能因缓存过期而未命中。
- 缓存结果可能有短暂延迟。不要用它判断 pending 状态、mempool、刚提交的交易或需要不可逆确认的业务。
- 免 Endpoint 请求不会在未命中时自行填充共享缓存。需要稳定覆盖或更多方法时,请配置自己的 Endpoint。
- JSON-RPC notification 没有响应正文,无法判断是否命中;不要用于免 Endpoint 调用。
- JSON-RPC batch、WebSocket、公开 gRPC 和 TRON HTTP API 不使用这项能力。
- 控制台展示的完整 RPC Method Catalog 用于配置 route,不代表这些方法都支持免 Endpoint 调用。
遇到 -32004 时先核对方法和参数,再决定是否配置 Endpoint。完整错误处理见错误与排查。
Last updated on