概述
预处理交易是预执行 Solana 交易,在它们达到processed 承诺级别之前交付。Helius 汇聚了多个预执行来源——主要是直接在到达验证器时解码的碎片,补充以计划交易(preconfirmation)信号,并以单个去重流的形式提供,无需接收原始碎片包或在您这方操作去碎片化基础设施。
从预确认信号获取的交易比专门的 Preconfirmations 产品流中到达得晚,后者仍然是最早的访问方式。
消费预处理交易的主要方式是 preprocessedSubscribe WebSocket 方法(公开测试版)——在 所有付费计划 中可用,每条消息 计费 0.1 点数。较早的 gRPC 交付 将弃用。
preprocessedSubscribe (WSS)
推荐流式处理预处理交易的方法:账户过滤、紧凑二进制负载、所有付费计划。
gRPC (legacy)
早期基于 LaserStream 的交付。将弃用——新的集成应使用 WebSocket 方法。
预处理交易在生命周期中的位置
在 Solana 的架构中,交易在成为完全处理之前会经历几个阶段:- 碎片接收 → 验证器接收交易碎片(数据片段)。← 原始碎片(UDP) 在此交付。
- 碎片解码 → 碎片解码成原始交易。← 预处理交易主要在此交付。
- 交易执行 → 运行时执行交易。
- 元数据生成 → 计算预/后余额、日志和错误信息。
- 承诺 → 交易达到已处理/确认/最终状态。← LaserStream gRPC 和 LaserStream WebSocket 在此交付。
可用数据是什么?
预处理交易包含完整的签名交易,但缺乏执行元数据:可用数据
- ✅ 交易签名 - 唯一的交易标识符
- ✅ 账户密钥 - 交易引用的所有账户
- ✅ 指令 - 完整的指令数据和程序调用
- ✅ 最新块哈希 - 交易到期参考
- ✅ 签名 - 所有交易签名
- ✅ 插槽编号 - 观察到交易的插槽
缺失数据
- ❌ 交易元数据 - 代币余额变化、预/后余额、交易状态
- ❌ 交易错误 - 无法确定交易是否失败
- ❌ 内部指令 - 不包含跨程序调用 (CPI)
- ❌ 日志消息 - 程序日志在执行期间生成
- ❌ 消耗的计算单元 - 无法获得执行指标
交付保证
交付是尽力而为,无法保证,并且没有历史重播。流式交易是预执行信号,不是承诺级别——可能失败、被丢弃或着陆在不同的分支上。通过签名去重,并在执行结果重要时与处理或确认流对账。 对于需要保证交付和完整数据的关键应用,使用 LaserStream gRPC。何时使用预处理交易
需要解码、预执行交易而不需操作碎片解码器的低延迟应用:- propAMMs
- 狙击手
- 复制交易者
- 清算机器人
- 套利
定价
preprocessedSubscribe 在 所有付费计划 中可用,每条消息 计费 0.1 点数——每次交付的交易为一条消息。传统的 gRPC 交付 对专业计划用户开放,未压缩的流数据每 0.1 MB 计费 2 点数。详情参见 Credits。
常见问题
可以实时更新预处理订阅过滤器吗?
可以实时更新预处理订阅过滤器吗?
不,过滤器由初始
preprocessedSubscribe 确定。为了避免间隙,建议开启第二个连接新过滤器,等待其订阅确认,然后切换服务至新过滤器。预处理订阅的并发订阅限制是每个 API 密钥还是账号?
预处理订阅的并发订阅限制是每个 API 密钥还是账号?
每个 Helius 项目会被强制执行 10 个并发连接限制。为同一项目创建第二个 API 密钥将共享同样的 10 个连接限制。
下一步
通过 preprocessedSubscribe 订阅
端点、账户过滤、二进制负载布局和代码示例。
Preconfirmations
在交易成为碎片之前流式传输的计划交易——最早的交易信号。
Raw Shreds (UDP)
未处理的碎片数据包通过 UDP 提供。您需自行实现去碎片化。
Helius Sender
以最快的交易着陆速度执行您所见到的操作。