跳转到主要内容
使用 Sender Max(最低提示:0.001 SOL)来进行预确认。 只有在您的交易先到达时,预确认才有意义——Sender Max 是实现这一点的最快方法。从一开始就构建 Sender Max 以充分利用预确认。

什么是preconfSubscribe

preconfSubscribe 是 Helius 的一个 WebSocket 方法,用于流式传输预确认——在交易被分片之前传递在计划交易阶段的交易。这是 Helius 提供的最低延迟交易信号。
流不是连续的。覆盖范围随着转发到 Helius 的权益份额而波动,因此请预料到会有没有消息的插槽——请优雅地处理这些间隙。参见覆盖范围
preconfSubscribewss://beta.helius-rpc.com 提供服务 —— Helius Gatekeeper 端点 —— 而不是 mainnet.helius-rpc.com。使用您的 API 密钥作为查询参数进行认证。
beta 主机名指的是 Gatekeeper 发布,而不是预确认的成熟度。预确认首先在 Gatekeeper 端点启动;随着 Helius 将流量迁移到 Gatekeeper,它将成为标准端点。

订阅

使用 preconfSubscribe 方法发送 JSON-RPC 请求。服务器响应一个订阅 ID,然后为每个计划的交易流式传输通知。传递一个可选的过滤器作为第一个 params 元素以仅接收匹配的交易;省略 params 以接收完整的流。

订阅响应

存储 result — 这是你用来取消订阅的订阅ID。在此确认后,通知以二进制帧形式流动(见下文)。

过滤

默认情况下,preconfSubscribe 会流动每个计划的交易。要缩小流,请将过滤对象作为 params 的第一个元素传递。过滤在服务器端进行,因此您只需支付并接收您关心的交易。
每个字段都是可选的——缺失的字段意味着该谓词没有“约束”,因此一个空的过滤器(或没有 params)匹配每个交易。
今天只匹配交易的静态账户键。从v0地址查找表(ALTs)加载的账户尚未解析,因此在ALT账户上的过滤将不匹配。ALT支持即将推出。
过滤规则:
  • 所有谓词都通过 AND 结合在一起,评估顺序为 regionIncludeaccountExcludeaccountRequiredaccountInclude
  • 账户是base58编码的公钥。无效值返回 JSON-RPC 错误 -32602(无效参数)。
  • 每个账户列表的上限为 500 项。

位置过滤

使用 regionInclude 仅接收来自特定 Helius 区域的交易。传递一个或多个区域代码;当交易的起始区域与其中任何一个匹配时,它将通过。
有效的区域代码:
当设置 regionInclude 时,不携带区域信息的交易将被丢弃。未识别的区域代码返回 JSON-RPC 错误 -32602(无效参数)。

通知有效负载

通知作为二进制 WebSocket 帧传递(不是 JSON)。每个帧是一个打包的字节布局,携带一个单独的计划交易: 按顺序读取字段,然后bincode将剩余字节反序列化为VersionedTransaction以读取指令、账户和签名。
始终先读取并检查version字节。 当前为1。如果Helius需要更新负载格式,版本将递增——基于此进行分支,以确保您的解码器在模式更改时保持工作。
预确认是一个早期信号,而不是保证。交易尚未上链,可能仍会失败或被丢弃。通过标准承诺检查确认上链后再将其视为最终结果。

示例

取消订阅

要停止接收通知,请调用preconfUnsubscribe,并使用preconfSubscribe返回的订阅ID。

定价

预确认需要专业计划或更高级别,每条消息花费10个积分——每个流式交易一条消息——从您的计划中扣费。详情参见积分
预确认是一个新产品,定价可能会有变动。

相关

预确认概述

预确认是什么以及它们在验证器流水线中的位置。

transactionSubscribe

流式传输已确认承诺的交易,并提供丰富的过滤功能。