Skip to main content

访问权限

请在 OrbitFlare 控制台的 Dashboard > Apex 下创建 API 密钥。
不是。Apex 端点只接受发送类请求:sendTransaction、sendBundle 和普通 HTTP 发送路由,另外还有 getTipAccounts、getInflightBundleStatuses、getVersion 和 health。获取 blockhash、读取账户、模拟和确认,请继续使用您常规的 OrbitFlare RPC。
Apex 服务于 Solana 主网。
从您的发送方出发往返时间最短的那个。请使用 GET /ping 测量。每个 Apex 端点都会自行路由到即将出块的领导者,因此您的选择只影响您自己的这一跳。参见端点与区域。

小费与费用

您在每笔交易内部支付小费,并且只在该交易上链时支付。标准等级的下限为 0.001 SOL(1,000,000 lamports)。被拒绝、已过期或被丢弃的交易不产生任何费用。
不需要。一笔 Apex 小费覆盖全部三条路径。当 Jito 路径胜出时,Apex 会在与您的交易相同的捆绑包中,将您的小费减去 5,000 lamports 基础费用后的金额作为出价支付给 Jito。
需要。Apex 把您的交易送达领导者,而领导者仍然按优先费排序。请在每笔交易上设置计算单元上限和价格。参见小费。
小费必须是一条顶层的 SystemProgram 转账,转给 getTipAccounts 返回的账户之一。由您的程序通过 CPI 进行的转账不算数,转给任何其他地址的转账也不算数。还请检查小费账户是否位于静态账户密钥中,而不是通过地址查找表加载,以及出资方是否签名。参见小费错误。
请在启动时通过 getTipAccounts 获取它们,并不时刷新,而不要硬编码。每笔交易随机选择一个。
执行期间失败的交易会整体回滚,包括小费转账。您只需支付网络费用。

发送

从 JSON-RPC sendTransaction 开始,因为它可以直接接入现有代码。若要降低 HTTP 上的开销,可改用 POST /send-bin;若要最快的路径,可通过 Rust 客户端或 Go 客户端使用 QUIC。所有传输方式的路由和优先级都相同。参见发送交易。
不一定。签名表示 Apex 端点已接受交易并正在竞速发送。请在 Solana RPC 上使用 getSignatureStatuses 确认。参见确认每一次发送。
不会。在您和领导者之间,没有任何环节会进行模拟或预检。如果您需要模拟,请先在您的常规 RPC 上调用 simulateTransaction。
直到交易上链或其 blockhash 过期。之后,请使用新的 blockhash 重新构建,并发送新交易。使用 durable nonce 的交易会一直重试,直到上链或其 nonce 被使用,最长 90 秒。如果交易的 blockhash 在主网上从未出现(例如基于 devnet 构建的交易),Apex 会在 20 秒后放弃。
支持,且处理方式没有任何区别:它们会走所有路径,并像其他交易一样被重试。nonce 交易在其 nonce 被使用之前一直有效。如果您针对同一个 nonce 将同一操作签名多次,并通过不同的服务商分别发送,只有最先上链的副本会成功,其余副本将永久失效。Apex 会检测到 nonce 已被使用,停止发送其副本,并将其报告为 nonce_used。为了让 Apex 公平竞争,请向每个服务商发送同一笔已签名的交易,而不是各自单独签名的副本。
可以。网络对同一个签名只执行一次,因此通过多个服务竞速发送同一笔已签名交易是安全的。无论由哪个服务送达,只有交易上链时才会支付您的 Apex 小费。
每个 HTTP 响应都启用了 CORS,因此浏览器代码可以直接调用这些路由。请注意,随公开页面下发的密钥对访问者是可见的,并且 Apex 端点通过明文 HTTP 提供服务,因此通过 HTTPS 加载的页面会受到混合内容规则的约束。参见身份验证。
这是 QUIC 的延迟确认,与网络和发送本身无关。除非客户端另行要求,QUIC 对单独到达的数据包最多延迟 25 毫秒才确认,因此计时到流被确认为止,读数就是 25 毫秒加上真实的往返时间。您的交易在到达的瞬间即被转发。Rust 客户端从 0.1.2 版本起会请求立即确认。如果使用自己的客户端,请参见在其他语言中使用 QUIC。
通过 HTTP 时会,以 x-api-key 请求头或 api-key 查询参数的形式传输。通过 QUIC 时不会:客户端出示由密钥派生的证书,密钥本身永远不会离开您的机器。无论哪种方式,密钥都无法动用资金,因为每笔交易都由您自己的密钥对签名。

捆绑包与交易 v1

仅当您需要多笔交易按顺序执行,且要么全部成功、要么全部不执行时。捆绑包只走 Jito 区块引擎路径,因此只能在启用了 Jito 的领导者上链。单笔交易以普通发送方式上链更快,因为它会使用全部三条路径。参见捆绑包。
捆绑包中恰好一笔交易携带 Apex 小费,且不低于您所在等级的下限。
可以,使用交易 v1 (SIMD-0385),在 sendTransaction、/send、/send-bin、/send-batch、QUIC 上以及作为捆绑包成员时,最大可达 4096 字节。Legacy 和 v0 交易仍为 1232 字节。

限制与支持

速率限制按 API 密钥计算,并由密钥的等级决定。超出限制会返回 JSON-RPC -32029、HTTP 429 或 QUIC 准入码 2。参见错误与速率限制。
官方客户端是 Rust crate orbitflare-apex 和 Go 模块 orbitflare-apex-go。其他任何语言都可以在完全不依赖库的情况下使用 JSON-RPC 和普通 HTTP 路由,并且 QUIC 协议已有文档说明,供任何想要自行实现的人参考。参见在其他语言中使用 QUIC。
通过 Discord、Telegram 联系团队,或发送电子邮件至 support@orbitflare.com。