安装
构建客户端
ORBITFLARE_JETSTREAM_URL 环境变量。所有构建器方法与 gRPC 客户端 完全相同,默认值与行为一致(Retry、Timeout、Keepalive、PingInterval、MaxMissedPongs、ChannelCapacity、Logger)。
构建订阅
JetStream 支持交易过滤器(不支持槽位、区块或承诺级别,那些是 Yellowstone 专有的)。每个TransactionFilter 都提供 AccountInclude、AccountExclude 与 AccountRequired。
读取流
Subscribe 返回一个 *jetstream.Stream。调用 Next(ctx):
完整示例
一个监听 Raydium AMM 兑换并打印每笔交易槽位的流。JetStream v2
JetStream v2(github.com/orbitflare/orbitflare-sdk-go/jetstream/v2)与 v1 运行在相同的端点和身份验证上,且完全向后兼容:v1 保持不变。v2 新增:
- 运行时管理的过滤器 - 无需重连即可在活动流上添加与移除过滤器。
- 逐条消息的序列号 - 每条响应都带有单调递增的
Sequence,便于检测丢失的消息。 - 可选富化 - 可按交易请求手续费支付方、程序 id、计算单元价格、计算上限、解析后的地址表地址等。
- 槽位生命周期事件 - 独立的服务器流,投递槽位 alive/complete/dead 事件。
jetstream/v2 下。构建器与 v1 完全相同(相同方法、默认值、ORBITFLARE_JETSTREAM_URL 环境变量与故障转移):
构建类型化过滤器
每个过滤器都是带有客户端自选 id(通过.WithID())的 TransactionFilter。该 id 会在每笔匹配的交易及过滤器校验确认中回传,便于你关联匹配结果并在之后移除该过滤器。
AccountInclude、AccountExclude 或 AccountRequired 之一;空(匹配一切)的过滤器会被拒绝。IncludeEnrichment 为可选(默认关闭)且作用于整个订阅:只要任一活动过滤器启用了它,你收到的每笔交易都会被富化。
订阅交易
在活动流上管理过滤器
从流中取得一个句柄,无需重连即可添加或移除过滤器。移除时引用你用.WithID() 指定的过滤器 id。
stream.AddFilters(...) 与 stream.RemoveFilters(...) 是同一操作的快捷方式。若流已关闭,两者都会返回错误。
槽位生命周期事件
SubscribeSlots() 是独立的服务器流,不接受过滤器。
健康探测
GetVersion(ctx) 与 Ping(ctx, count) 是一元调用,具备与流相同的故障转移。