获取 API 密钥
打开 OrbitFlare 控制台,进入 Dashboard > Apex 创建密钥。每个密钥都属于一个等级,该等级决定您的小费下限和速率限制。HTTP 请求头或查询参数
通过 HTTP 时,密钥随每个请求一起发送。传递密钥有两种方式:/send、/send-bin、/send-batch、/send-bundle)。
getTipAccounts、getVersion、health 和 GET /ping 无需密钥。所有提交交易的操作都需要密钥。
密钥缺失或无效时,返回 JSON-RPC 错误 -32001,在普通路由上则返回 HTTP 401。参见错误与速率限制。
QUIC 客户端证书
在 QUIC 上不会对每个请求单独进行身份验证,并且您的 API 密钥永远不会经过网络传输。流程如下:- 您的客户端从 API 密钥派生出一个 ed25519 密钥对。
- 在 QUIC 握手期间,它在 TLS 客户端证书中出示该公钥。
- Apex 端点将该公钥映射到您的账户。此后该连接上的每个流都归属于您。
orbitflare-apex 和 Go 模块 orbitflare-apex-go 会为您完成这一切。对于其他语言,派生方式如下:
solana-tls-utils crate 中的 new_dummy_x509_certificate)。端点只检查证书中的密钥,其他证书字段会被忽略。
测试向量: API 密钥 test-api-key 派生出的公钥为 2ovF9aU8fszHXpZwxaC1S9NF2m5VVDRBUvDUVQvXs4Tv。
如果握手失败,端点会以应用层错误码关闭连接:
检查您派生的密钥
控制台会在每个 API 密钥旁显示对应的客户端公钥。如果您的 QUIC 连接被拒绝,请比较这两者。使用 Rust crate:浏览器
每个 HTTP 响应都带有Access-Control-Allow-Origin: *,并且 OPTIONS 预检请求会得到应答,因此您可以从浏览器代码中调用 Apex 端点。
Apex 端点通过 80 端口上的明文 HTTP 提供服务。通过 HTTPS 加载的页面会受到浏览器混合内容规则的约束,因此请在您计划上线的环境中进行测试。