Skip to main content
预确认在交易被分解之前流式传输——Helius在领导者执行交易时立即进行预确认,并附带它们的执行状态。本指南构建了一个监听器,用于监视目标账户,解码每笔交易,并使用Sender Max进行响应。
Preconfirmations 适用于所有付费套餐,每条成功传递的消息收取 10 个积分。未传递任何消息的 slot 不收取积分。当一个 slot 至少传递一条消息时,每个订阅最低收取 300 个积分。请参阅定价。

在连接之前范围化流

未经过滤的 preconfSubscribe 会传递每笔交易,每笔收取 10 个积分。请在服务器端进行过滤,将费用限制在你实际交易的那些交易上。当每个订阅在符合条件且覆盖范围内的 slot 中收到至少一条消息时,会分别计费。因此,在可行的情况下,请将账户过滤器整合到一个订阅中。使用 regionInclude 将计费范围限制在你需要的区域;不需要 BAM 时,请设置 includeSource: ["helius"];并在 Helius Dashboard 中监控积分。
三种过滤器覆盖了大多数交易监听器:
  • failed: false会丢弃已知已回滚的交易,您没有理由去跟进。
  • regionInclude将流锁定到离您基础设施最近的地区,以防跨地区跳转消耗领先优势。
  • accountInclude匹配任何引用您目标的交易:钱包、AMM池、程序等。Helius会在服务器端解决地址查找表,因此即使账户通过ALT加载,过滤器仍能匹配。

连接、订阅和解码

preconfSubscribe从Gatekeeper端点提供(wss://beta.helius-rpc.com),通知以二进制帧形式而非JSON到达。 每个帧是一个固定的18字节前缀,后随bincode序列化的交易:
listener.js
首先检查版本字节。如果Helius更新了载荷格式,版本就会递增,依版本分支可保持解码器工作。反序列化的交易会提供指令、账户和签名。

使用Sender Max进行操作

只有当您的响应首先到达时,预确认才会带来收益。 通过Sender Max发送您的响应:0.001 SOL的小费进入优先小费缓冲区,并通过每条高速路径路由:
保持此处理程序简短。做出决定并发送,将日志、会计和对账移出接收路径。完整发送循环包括连接预热和费用估算,请参见通过Sender确认交易。

确认着陆并期望有间隙

预确认是一种提前查看。交易还未落地,仍可能失败或被丢弃,因此须遵循两条规则:
  • 在将观测到的交易或您的反应视为最终之前,通过标准承诺检查(getSignatureStatuses, 或processed-承诺流)进行确认。
  • 期望有间隙。覆盖比例与转发给Helius的股份份额成比例,因此某些槽位不会产生消息。这是预期行为,而不是连接中断,保活ping可以区分二者。关闭时重新订阅。

相关指南

preconfSubscribe API参考

完整的过滤语义、地区代码和二进制载荷布局

在预处理交易上进行交易

以每条消息0.1积分的预执行覆盖,适用于所有付费计划