安装
构建客户端
ORBITFLARE_JETSTREAM_URL。所有构建器方法与 gRPC 客户端 相同 — 默认与行为一致。这也包括 .api_key():对于处于 API Key Only 模式的许可证,它会将你的许可证密钥作为 x-token 发送。
编写 YAML 配置
Jetstream 仅支持交易过滤器,按交易涉及的账户进行匹配(account_include、account_exclude、account_required)。不提供账户更新、槽位、区块或承诺 — 如需账户更新,请使用 Yellowstone gRPC。
YAML 过滤器参考
transactions — 命名过滤器。account_include 匹配涉及这些地址的交易。account_exclude 排除匹配。account_required 表示所列地址必须全部出现。
支持 ${ENV_VAR} 展开。
订阅与读取事件
自 YAML
编程方式
使用类型化构建器
SubscribeRequestBuilder 与 TransactionFilter 可在无需手写 proto 的情况下构建相同的请求。每个 TransactionFilter 都暴露 account_include、account_exclude 与 account_required,并接受任意由类字符串值构成的迭代器。
读取流
完整示例
监听 Raydium AMM swap 并打印每条交易的签名与指令数量:jetstream.yml:
Jetstream v2
Jetstream v2(orbitflare_sdk::jetstream::v2)运行在与 v1 相同的端点与身份验证之上,且完全向后叠加:v1 保持原样继续工作。v2 新增内容:
- 运行时管理的过滤器 — 无需重连即可在活动流上添加与移除过滤器。
- 逐条消息的序列号 — 每条响应都携带单调递增的
sequence,因此你可以检测丢失的消息。 - 可选的富化 — 按交易请求手续费付款方、程序 id、计算单元价格、计算上限、解析后的地址表地址等。
- 槽位生命周期事件 — 一条独立的服务端流,推送槽位的 alive/complete/dead 事件。
jetstream::v2 之下。构建器与 v1 完全一致(相同的方法、默认值、ORBITFLARE_JETSTREAM_URL 环境变量与故障转移):
构建类型化过滤器
每个过滤器都是一个带有客户端选定 id(通过.with_id())的 TransactionFilter。该 id 会在每条匹配交易以及过滤器校验确认中回传,因此你可以关联匹配项并在之后移除该过滤器。
account_include、account_exclude 或 account_required 之一;空的(匹配一切)过滤器会被拒绝。include_enrichment 为可选(默认关闭),且作用于整个订阅:只要任一活动过滤器启用了它,你收到的每条交易都会被富化。
订阅交易
在活动流上管理过滤器
从流中取得一个句柄,即可在无需重连的情况下添加或移除过滤器。移除时引用你通过.with_id() 指定的过滤器 id。
槽位生命周期事件
subscribe_slots() 是一条独立的服务端流,不接受过滤器。
健康探测
get_version() 与 ping() 是一元调用,具有与流相同的故障转移。