Skip to main content

安装

构建客户端

最简配置:
URL 回退读取环境变量 ORBITFLARE_JETSTREAM_URL。所有构建器方法与 gRPC 客户端 相同 — 默认与行为一致。

编写 YAML 配置

JetStream 支持交易与账户过滤器。不包含槽位、区块或承诺 — 这些为 Yellowstone 专有。

YAML 过滤器参考

transactions — 命名过滤器。account_include 匹配涉及这些地址的交易。account_exclude 排除匹配。account_required 表示所列地址必须全部出现。 accounts — 使用 account 监视特定地址,或使用 owner 监视某程序拥有的全部账户。 支持 ${ENV_VAR} 展开。

订阅与读取事件

自 YAML

编程方式

使用类型化构建器

SubscribeRequestBuilderTransactionFilter 可在无需手写 proto 的情况下构建相同的请求。每个 TransactionFilter 都暴露 account_includeaccount_excludeaccount_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_includeaccount_excludeaccount_required 之一;空的(匹配一切)过滤器会被拒绝。include_enrichment 为可选(默认关闭),且作用于整个订阅:只要任一活动过滤器启用了它,你收到的每条交易都会被富化。

订阅交易

在活动流上管理过滤器

从流中取得一个句柄,即可在无需重连的情况下添加或移除过滤器。移除时引用你通过 .with_id() 指定的过滤器 id。

槽位生命周期事件

subscribe_slots() 是一条独立的服务端流,不接受过滤器。

健康探测

get_version()ping() 是一元调用,具有与流相同的故障转移。
完整的 protobuf 规范、消息结构、富化字段与槽位状态,请参见 JetStream v2 协议参考