什么是preconfSubscribe?
preconfSubscribe 是一种 Helius WebSocket 方法,它流式传输 Preconfirmations——在交易被分解之前在预定交易阶段交付的交易。这是 Helius 提供的最低延迟交易信号。访问需要 专业计划或更高级别——请参见 定价。
流不是连续的。覆盖范围随着转发到 Helius 的权益份额而波动,因此请预料到会有没有消息的插槽——请优雅地处理这些间隙。参见覆盖范围。
preconfSubscribe 从 wss://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)匹配每个交易。
过滤规则:
- 所有谓词按
regionInclude→accountExclude→accountRequired→accountInclude的顺序进行按位和。 - 帐户是 base58 编码的公钥。无效值将返回 JSON-RPC 错误
-32602(无效参数)。 - 每个账户列表最多包含 500 条目。
地址查找表 (ALT) 解析
账户过滤器匹配的不仅仅是交易的静态账户密钥——Helius 在服务器端解析 v0 地址查找表,因此accountInclude、accountExclude 和 accountRequired 也会匹配通过 ALT 加载的账户。
这意味着您可以过滤交易接触到的任何账户,即使它仅出现在查找表后面——无需维护 ALT 映射或自行解析表。只需传递账户的公钥,Helius 会在应用过滤器之前处理解析。
位置过滤
使用regionInclude 来只接收来自特定 Helius 区域的交易。传递一个或多个区域代码;当其起始区域与其中任何一个匹配时,交易将通过。
当设置
regionInclude 时,不携带区域信息的交易将被丢弃。未识别的区域代码将返回 JSON-RPC 错误 -32602(无效参数)。通知有效负载
通知以 二进制 WebSocket 帧(而不是 JSON)传递。每个帧都是一个打包的字节布局,携带一个预定的交易:
按顺序读取字段,然后将剩余字节
bincode 反序列化为 VersionedTransaction 以读取指令、账户和签名。
预确认是一个早期信号,而不是保证。交易尚未上链,仍可能失败或被丢弃。通过标准承诺检查确认上链后再将其视为最终状态。
示例
取消订阅
要停止接收通知,请使用从preconfSubscribe 返回的订阅 ID 调用 preconfUnsubscribe。
定价
预确认需要 专业计划或更高级别 并且每条消息花费 10 积分——每个流式交易一条消息——从您的计划中扣除。详情请参阅 积分。预确认是一款新产品,定价可能会有所变更。
相关
Preconfirmations Overview
什么是预确认以及它们在验证器流程中的位置。
transactionSubscribe
使用丰富的过滤功能流式传输已确认提交的交易。
preconfSubscribe API reference
请求参数、过滤字段和二进制通知布局。