什么是preconfSubscribe?
preconfSubscribe 是 Helius 的一个 WebSocket 方法,用于流式传输预确认——在交易被分片之前传递在计划交易阶段的交易。这是 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)匹配每个交易。
今天只匹配交易的静态账户键。从v0地址查找表(ALTs)加载的账户尚未解析,因此在ALT账户上的过滤将不匹配。ALT支持即将推出。
- 所有谓词都通过 AND 结合在一起,评估顺序为
regionInclude→accountExclude→accountRequired→accountInclude。 - 账户是base58编码的公钥。无效值返回 JSON-RPC 错误
-32602(无效参数)。 - 每个账户列表的上限为 500 项。
位置过滤
使用regionInclude 仅接收来自特定 Helius 区域的交易。传递一个或多个区域代码;当交易的起始区域与其中任何一个匹配时,它将通过。
当设置
regionInclude 时,不携带区域信息的交易将被丢弃。未识别的区域代码返回 JSON-RPC 错误 -32602(无效参数)。通知有效负载
通知作为二进制 WebSocket 帧传递(不是 JSON)。每个帧是一个打包的字节布局,携带一个单独的计划交易:
按顺序读取字段,然后
bincode将剩余字节反序列化为VersionedTransaction以读取指令、账户和签名。
预确认是一个早期信号,而不是保证。交易尚未上链,可能仍会失败或被丢弃。通过标准承诺检查确认上链后再将其视为最终结果。
示例
取消订阅
要停止接收通知,请调用preconfUnsubscribe,并使用preconfSubscribe返回的订阅ID。
定价
预确认需要专业计划或更高级别,每条消息花费10个积分——每个流式交易一条消息——从您的计划中扣费。详情参见积分。预确认是一个新产品,定价可能会有变动。
相关
预确认概述
预确认是什么以及它们在验证器流水线中的位置。
transactionSubscribe
流式传输已确认承诺的交易,并提供丰富的过滤功能。