跳转到主要内容

RPC 身份验证

所有 OrbitFlare RPC 请求通过在端点 URL 上附加许可证密钥作为查询参数来进行身份验证。
curl -X POST "https://mainnet.rpc.orbitflare.com?api_key=YOUR_LICENSE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBlockHeight"
  }'
你的 RPC 许可证密钥随 OrbitFlare 服务订阅一同提供。你可以在 OrbitFlare 控制面板许可证部分找到它。

Customer API 身份验证

Customer API 使用不同的身份验证方式。通过 X-ORBIT-KEY HTTP 头传递你的 API key:
curl -X GET https://api.orbitflare.com/customer/v2/licenses \
  -H "X-ORBIT-KEY: YOUR_API_KEY"
Customer API v2 还支持通过设备流程或钱包签名认证获得的 Bearer token 身份验证。详情请参阅 Customer API 文档

RPC 端点

OrbitFlare 提供地理分布式 RPC 端点,你可以将请求路由到离你的用户或基础设施最近的区域。URL 格式为:
https://{region}.rpc.orbitflare.com?api_key=YOUR_API_KEY
{region} 替换为下列区域代码之一。

可用区域

城市区域代码端点
阿什本ashhttps://ash.rpc.orbitflare.com?api_key=YOUR_API_KEY
纽约nyhttps://ny.rpc.orbitflare.com?api_key=YOUR_API_KEY
洛杉矶lahttps://la.rpc.orbitflare.com?api_key=YOUR_API_KEY
盐湖城slchttps://slc.rpc.orbitflare.com?api_key=YOUR_API_KEY

主网端点(自动路由)

如果你不需要将请求固定到特定区域,请使用主网端点。OrbitFlare 会自动将每个请求定向到最近的可用区域。
https://mainnet.rpc.orbitflare.com?api_key=YOUR_API_KEY
建议大多数场景使用主网端点。它提供最低延迟,无需你手动管理区域选择。

WebSocket 端点

WebSocket 连接使用相同的区域代码,采用 wss:// 协议:
wss://{region}.rpc.orbitflare.com?api_key=YOUR_API_KEY
自动路由的 WebSocket 连接:
wss://mainnet.rpc.orbitflare.com?api_key=YOUR_API_KEY
身份验证通过相同的 api_key 查询参数处理。

Devnet

OrbitFlare 提供专用的 Devnet 端点,用于开发和测试:
https://devnet.rpc.orbitflare.com?api_key=YOUR_API_KEY
Devnet 端点连接到 Solana Devnet。请勿将其用于生产工作负载。Devnet 代币没有货币价值。

各方案速率限制

每个方案定义了最大每秒请求数 (RPS)每秒交易数 (TPS)
方案每秒请求数 (RPS)每秒交易数 (TPS)
Free101
Developer5010
Growth20075
Scale400150
Pro600200
Dedicated无限制无限制
超过方案 RPS 或 TPS 限制的请求将收到 HTTP 429 Too Many Requests 响应。请在你的客户端中实现指数退避策略来优雅地处理这种情况。
没有。OrbitFlare 不设置月度额度限制或请求上限。只要在你方案的每秒速率限制内,你可以发送无限总请求。
OrbitFlare 方案没有额度限制——只要在方案的每秒速率层级内,你可以发送无限请求。不会产生意外的超额费用。

数据流连接限制

连接限制与你的 RPC 速率限制层级无关,按 IP 地址在所有流式传输接口上独立执行。

gRPC(Jetstream / Yellowstone)

限制数值
每个 IP 的并发连接数50
每个连接的订阅数无限制
空闲连接超时10 分钟(使用 ping 保持连接)
50 个连接上限在来自同一 IP 地址的所有 gRPC 端点(Jetstream 和 Yellowstone)之间共享。无论你连接到哪个区域,此限制均适用。
专用 gRPC 节点不受共享连接限制的约束。如果你需要超过 50 个并发 gRPC 连接,请联系团队了解专用 gRPC 节点。
保持连接活跃 云负载均衡器和代理(包括 Cloudflare)可能会在约 10 分钟后关闭空闲的 gRPC 流。每 30 秒发送一次 ping 以防止断开连接:
const pingRequest: SubscribeRequest = {
  ping: { id: 1 },
  accounts: {},
  accountsDataSlice: [],
  transactions: {},
  transactionsStatus: {},
  blocks: {},
  blocksMeta: {},
  slots: {},
  entry: {},
};

setInterval(() => {
  stream.write(pingRequest, (err) => {
    if (err) console.error("Ping 失败:", err);
  });
}, 30_000);
超过限制时会发生什么 当你的 IP 已有 50 个活跃的 gRPC 连接并尝试打开新连接时,服务器将返回 gRPC RESOURCE_EXHAUSTED 状态:
StatusCode: RESOURCE_EXHAUSTED
Message: connection limit exceeded
在打开新流之前请关闭未使用的流。在 RESOURCE_EXHAUSTED 错误后重新连接时,请实现指数退避策略。

WebSocket

限制数值
每个 IP 的并发连接数50
每个连接的订阅数因方案而异
空闲连接超时无消息交换 60 秒后
WebSocket 连接使用相同的每 IP 50 个并发连接限制。没有任何消息交换超过 60 秒的空闲连接将被服务器关闭。 超过限制时会发生什么 超出限制后尝试的新 WebSocket 连接将被以 1008 Policy Violation 关闭代码拒绝:
WebSocket closed: 1008 Policy Violation - connection limit exceeded
50 个连接限制适用于所有共享方案。如果你的工作负载需要更多并发流连接,专用 gRPC 节点专用 RPC 节点将完全消除共享限制。请在 Discord 上联系团队讨论选项。
限制按 IP 地址在所有区域全局执行。单个 IP 在法兰克福有 30 个连接、在纽约有 20 个连接,则已达到 50 个连接上限。
在连接错误后重新连接时,使用指数退避策略。从 1 秒延迟开始,每次失败尝试后加倍,最大为 30 秒。在重新连接之前,务必干净地关闭流,以避免耗尽你的连接配额。