跳转到主要内容

安装

构建客户端

最简配置:
URL 回退读取环境变量 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,并接受任意由类字符串值构成的迭代器。

读取流

关闭、多流、重连与 ping/pong 行为与 gRPC 客户端 完全一致。

完整示例

监听 Raydium AMM swap 并打印每条交易的签名与指令数量:
配合以下 jetstream.yml:

Jetstream v2

Jetstream v2(orbitflare_sdk::jetstream::v2)运行在与 v1 相同的端点与身份验证之上,且完全向后叠加:v1 保持原样继续工作。v2 新增内容:
  • 运行时管理的过滤器 — 无需重连即可在活动流上添加与移除过滤器。
  • 逐条消息的序列号 — 每条响应都携带单调递增的 sequence,因此你可以检测丢失的消息。
  • 可选的富化 — 按交易请求手续费付款方、程序 id、计算单元价格、计算上限、解析后的地址表地址等。
  • 槽位生命周期事件 — 一条独立的服务端流,推送槽位的 alive/complete/dead 事件。
v2 客户端位于 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() 是一元调用,具有与流相同的故障转移。
完整的 protobuf 规范、消息结构、富化字段与槽位状态,请参见 Jetstream 协议参考。