Blazar 简介:Quicknode 专门构建的 Solana WebSocket 解决方案
核心要点
- Blazar 简介:Quicknode 专门构建的 Solana WebSocket 解决方案 Solana 的本机 WebSocket PubSub 在负载下会丢弃消息,并使三种订阅方法不稳定。
- Blazar 在基础设施级别修复了这个问题,具有亚毫秒级的开销、完整的方法支持,并且无需更改 SDK。

Blazar 简介:Quicknode 专门构建的 Solana WebSocket 解决方案 Solana 的本机 WebSocket PubSub 在负载下会丢弃消息,并使三种订阅方法不稳定。 Blazar 在基础设施级别修复了这个问题,具有亚毫秒级的开销、完整的方法支持,并且无需更改 SDK。
Quicknode 2026 年 4 月 14 日 — 阅读 6 分钟
WebSocket 是需要实时链上数据的 Solana 开发人员的默认选择,具有跨前端和移动应用程序的广泛兼容性,并且比事件驱动后端的 gRPC 更简单。
但 Solana 的原生 WebSocket 实现从来都不是为了大规模处理大量数据而构建的。三分之一的 API 被正式标记为不稳定,PubSub 在负载下丢弃消息,并且大多数应用程序正在悄悄地使用不必要的解决方法层进行补偿。
我们构建 Blazar 是为了从源头上解决这个问题。
什么是布拉扎尔?
Blazar 是 Quicknode 的内部 Solana WebSocket 引擎,从头开始构建,并专门针对 Solana 开发人员在生产中运行的工作负载进行了优化。它不是任何开源解决方案的分支,也不是 Agave 原生 PubSub 的包装器。它针对您现有的 Quicknode Solana 端点实施一整套 Solana WebSocket 订阅方法,无需更改 SDK 或迁移。
Blazar 比基于 Agave 原生 PubSub 构建的任何东西都更快、更可靠、更完整。它可以处理大量并发订阅者数量而不会降低性能,并在 Agave 的本机 PubSub 开始丢弃消息时保持一致的传递。
除了性能基础之外,它还为大多数提供商无法可靠提供的订阅方法提供稳定的支持。
以前不稳定的方法,现在可用于生产
Solana 的 WebSocket API 提供九种订阅方法。其中三个,voteSubscribe、slotsUpdatesSubscribe 和 blockSubscribe,在最新的 Agave 3.x 验证器客户端中被正式标记为不稳定,并且在标准 Solana WebSocket 连接上实际上无法访问。
对于需要区块数据、投票信息或详细槽状态更新的开发人员来说,这些是基本方法,而不是边缘情况。
🌠所有不稳定的 WebSocket 方法在 Blazar 上都是稳定的。无需更改 SDK。
voteSubscribe 在确认插槽之前以及存在任何最终性保证之前,在已处理的承诺级别执行投票交易时交付投票交易。由于其不稳定,大多数应用程序开发人员基本上无法访问它。在 Blazar 上,它可用且可靠,开放了用于估计乐观确认、投票参与仪表板或权益加权区块最终性跟踪的工具。
slotUpdatesSubscribe 公开了槽的完整生命周期,从firstShredReceived 到completed、optimisticConfirmation 和最终rooted。如果您正在对端到端延迟进行基准测试,并且需要准确了解网络首次看到插槽的时间与应用程序何时看到插槽的时间,那么这种粒度就很重要。它还允许您在 optimistConfirmation 处触发逻辑,这是插槽实际上可以安全执行操作的最早点,而无需轮询或等待完全确定。以前,可靠地获得这种槽级信号意味着运行您自己的验证器基础设施。在 Blazar 上,它通过标准 WebSocket 连接进行。
blockSubscribe 在本机 Solana WebSocket 连接上实际上不可用。当它确实出现时,高事务量通常会导致超大消息错误、断开连接或无提示地丢弃数据。在 Blazar 上,它受到完全支持且稳定,使块级订阅数据成为前所未有的可行选项。
扩展方法支持
Blazar 还支持 transactionSubscribe,这是 Triton 最初作为其 Whirligig WebSocket 代理的一部分引入的方法。它不是标准 Solana WebSocket API 的一部分,但已成为需要比 logsSubscribe 或 accountSubscribe 提供的更精细事务数据的开发人员广泛采用的扩展。该方法允许您按帐户、交易结果和承诺级别进行过滤,从而可以实时跟踪程序活动、对失败的交易发出警报或在无需轮询的情况下构建实时交换源。
性能优势
我们在真实主网条件下对 Blazar 与最广泛使用的开源 Solana WebSocket 代理进行了基准测试。这是我们发现的。
可靠的交付
Agave 的本机 PubSub 机制默认在单个工作线程上运行,无论可用核心如何,都会成为所有订阅处理的瓶颈。在网络负载较重的情况下,当实时数据最重要时,本机 PubSub 系统将丢弃消息并引入不可预测的延迟峰值。
Blazar 专为消除这些故障模式而设计。在相同的重负载条件下,Blazar 提供了稳定、一致的结果:
更快地获取源数据
标准 RPC 基础设施通过更广泛的 Turbine 网络接收数据,这意味着事件沿着传播路径到达更远的地方。 Blazar 的上游数据源由 ShredStream 提供支持,接收来自前 100 个 Turbine 领导者的碎片。支持 shredstream 的源提供数据的速度比常规公共 Turbine 源快大约 200-250 毫秒。在 Blazar 开始处理之前,每个事件都具有先发优势。
即使在重负载下,Blazar 在链上事件和接收该事件的应用程序之间添加的延迟也低于 1 毫秒。这适用于帐户更新、完全阻止和所有其他订阅类型。
在每个测试场景中,Blazar 为客户提供数据的速度明显快于最常见的 WebSocket 服务器。 200个连接测试使用SysvarClock帐户,以确保帐户不断更新。
在每个测试场景中,Blazar 为客户提供数据的速度明显快于最常见的 WebSocket 服务器。 200个连接测试使用SysvarClock帐户,以确保帐户不断更新。
扩展而不降低性能
每个 Agave 节点都会处理有限数量的 WebSocket 订阅者,然后所有订阅者的性能都会下降,从而需要额外的硬件和更高的操作复杂性。 Blazar 可以处理大量并发订阅,而不会降低每个订阅者的性能。无论订阅总数是多少,每个订阅者都会收到一致、低延迟的交付。
在所有情况下,Blazar 上的内存使用量均显着减少。
在所有情况下,Blazar 上的内存使用量均显着减少。
在大多数情况下,Blazar 显着降低了 CPU 使用率。
在大多数情况下,Blazar 显着降低了 CPU 使用率。
基准测试在受控的隔离环境中运行,客户端从单独的计算机直接连接到服务器,中间没有负载均衡器或边缘层。
这对开发人员意味着什么
对于在 Quicknode 上构建的开发人员,Blazar 改变了您对 WebSocket 连接的假设:
更少的解决方法。重试逻辑、间隙检测和冗余连接的存在是为了补偿不可靠的传输。通过 Blazar 在基础设施级别处理可靠性,补偿代码变得不必要。
完整的数据流。当您的应用程序收到通知时,其之前的事件也会到达。假设流是连续的,构建您的逻辑。
大规模的可预测性能。订阅性能不会随着连接数的增加而降低。您的应用程序不会随着其增长而达到性能悬崖。
