博客>Blazar 简介:Quicknode 专为Solana 打造的 WebSocket 解决方案

Blazar 简介:Quicknode 专为Solana 打造的 WebSocket 解决方案

Solana其原生的 WebSocket PubSub 在高负载下会丢失消息,且导致三种订阅方法不稳定。Blazar 在基础设施层解决了这一问题,开销不到一毫秒,全面支持各种方法,且无需修改SDK 。

Quicknode

Quicknode

2026年4月14日 — 阅读时间6分钟

Blazar 简介:Quicknode 专为Solana 打造的 WebSocket 解决方案

对于需要实时链上数据的Solana 开发者而言,WebSockets是首选方案,它在前端和移动应用中具有广泛的兼容性,且对于事件驱动的后端而言,其实现路径比gRPC 更为简便。

但Solana 的原生WebSocket实现从一开始就并非为处理大规模海量数据而设计的。该API中有三分之一被官方标记为不稳定,PubSub在高负载下会丢失消息,而大多数应用程序都在默默地通过本不该需要的变通方案来弥补这一缺陷。

我们开发了Blazar,旨在从源头解决这个问题。

什么是布拉扎尔?

Blazar 是Quicknode 自主研发的Solana WebSocket 引擎,完全从零构建,并专门针对Solana 开发人员在生产环境中运行的工作负载进行了优化。它既不是任何开源解决方案的分支,也不是 Agave 原生 PubSub 的封装。它针对您现有的Quicknode Solana endpoint 实现了Solana WebSocket 订阅方法的完整集,无需对SDK 进行任何更改或迁移。

与基于 Agave 原生 PubSub 构建的任何系统相比,Blazar 运行更快、更可靠且功能更全面。它能够处理大量并发订阅者,且性能不会下降;在 Agave 原生 PubSub 开始丢失消息的情况下,它仍能保持一致的投递率。

除了性能方面的基本要素外,它还为订阅方式提供了稳定的支持,而这一点是大多数服务商无法可靠提供的。

此前不稳定的方法,现已可用于生产环境

Solana的 WebSocket API 提供了九种订阅方法。其中三种——voteSubscribe、slotsUpdatesSubscribe 和blockSubscribe——在最新的 Agave 3.x 验证器客户端中已被官方标记为不稳定,且在标准的Solana WebSocket 连接中实际上无法访问。

对于需要区块数据、投票信息或详细区块状态更新的开发者而言,这些方法是必不可少的,而非边缘情况。

🌠所有不稳定的 WebSocket 方法在 Blazar 上均已稳定。无需对SDK 进行任何更改。

投票 订阅

投票 订阅 在已处理的承诺级别上,于槽位确认之前且在任何最终性保证成立之前,即执行投票交易。由于其不稳定性,大多数应用程序开发人员此前几乎无法使用该功能。在 Blazar 上,该功能不仅可用且可靠,从而为估算乐观确认、投票参与仪表盘或按权益加权的区块最终性跟踪等工具的开发提供了可能。

老虎机·更新·订阅

老虎机·更新·订阅 详细介绍了插槽的完整生命周期,从 firstShredReceived 通过 已完成, 乐观确认,最终 已越狱. 如果您正在对端到端延迟进行基准测试,并且需要准确了解网络何时首次检测到一个时槽,而应用程序又是在何时检测到的,那么这种粒度就至关重要。它还允许您在 乐观确认,这是在不进行轮询或等待完全最终性确认的情况下,实际可以安全地对该时间槽采取行动的最早时间点。此前,要可靠地获取此类时间槽级别的信号,必须运行自己的验证器基础设施。而在 Blazar 上,该信号会通过标准的 WebSocket 连接传送过来。

blockSubscribe

blockSubscribe 在原生的Solana WebSocket连接上,该功能实际上无法使用。即使出现,高交易量也会经常导致消息超限错误、断开连接或数据被无声丢弃。而在Blazar上,该功能得到了全面支持且运行稳定,这使得块级订阅数据成为了一种前所未有的可行方案。

扩展方法支持

Blazar 还支持 transactionSubscribe,该方法最初由Triton作为其Whirligig WebSocket代理的一部分引入。它虽不属于标准Solana WebSocket API的一部分,但已成为一种被广泛采用的扩展,适用于那些需要比 订阅日志 或 账户订阅 提供。该方法支持按账户、交易结果和承诺级别进行筛选,因此非常适合实时跟踪项目活动、对失败交易发出警报,或构建无需轮询的实时掉期数据流。

性能优势

我们在真实的mainnet 环境下,将Blazar与最常用的开源Solana WebSocket代理进行了性能对比测试。以下是我们的测试结果。

可靠的配送

Agave 的原生 PubSub 机制默认在单个工作线程上运行,这会导致所有订阅处理出现瓶颈,无论可用核心数量多少。在网络负载较重时——恰恰是实时数据最为关键的时候——原生 PubSub 系统会丢弃消息,并引发难以预测的延迟峰值。

Blazar 专为消除这些故障模式而设计。在相同的重负载条件下,Blazar 提供了稳定、一致的结果:

blazar-不-断开-连接

从源头获取更快的数据

标准的 RPC 基础设施通过更广泛的 Turbine 网络接收数据,这意味着事件到达时已在传播路径上行进得更远。Blazar 的上游数据源由 ShredStream 提供支持,从 Turbine 排名前 100 的节点接收数据片段。启用了 ShredStream 的数据源比普通的公共 Turbine 数据源传输数据的速度大约快 200-250 毫秒。在 Blazar 开始处理之前,每个事件都已具备这一时间优势。

即使在高负载情况下,Blazar 在链上事件发生与您的应用程序接收到该事件之间引入的延迟也不到 1 毫秒。这适用于账户更新、完整区块以及所有其他订阅类型。

blazar-更快的连接
在所有测试场景中,Blazar 向客户提供的数据速度都比最常见的 WebSocket 服务器快得多。200 次连接测试均使用 SysvarClock 账户,以确保该账户能够持续更新。

在所有测试场景中,Blazar 向客户提供的数据速度都比最常见的 WebSocket 服务器快得多。200 次连接测试均使用 SysvarClock 账户,以确保该账户能够持续更新。

不降低质量的称重

每个 Agave 节点在处理有限数量的 WebSocket 订阅者后,所有订阅者的性能都会下降,从而需要额外的硬件并增加运维复杂度。Blazar 能够处理大量并发订阅,且不会降低每个订阅者的性能。无论总订阅数量多少,每个订阅者都能获得一致且低延迟的数据传输。

内存利用率
在所有情况下,Blazar 的内存占用都显著降低了。

在所有情况下,Blazar 的内存占用都显著降低了。

blazar-cpu-usage
在大多数情况下,Blazar 能显著降低 CPU 使用率。

在大多数情况下,Blazar 能显著降低 CPU 使用率。

基准测试在受控且隔离的环境中进行,客户端通过另一台独立机器直接连接到服务器,期间没有负载均衡器或边缘层介入。

这对开发者意味着什么

对于在Quicknode 上进行开发的开发者而言,Blazar 改变了您对 WebSocket 连接的预设假设:

  • 减少了变通方案。重试 逻辑、缺口检测和冗余连接的存在,正是为了弥补不可靠的传输。由于 Blazar 在基础设施层面上处理了可靠性问题,这些补偿性代码便不再必要。

  • 完整数据streams 。当 您的应用程序收到一条通知时 ,其之前的事件也会一并到达。请在假设数据流是连续的基础上构建您的逻辑。

  • 大规模环境下性能稳定可预测。 随着连接数量的增加,订阅 性能不会下降。随着应用程序的扩展,其性能不会出现骤降。

🌠Blazar 提供免费升级,如果您是Quicknode 的用户,您已经使用 Blazar 了。

Blazar 既不是独立产品,也不是附加组件,更不是高级套餐功能。它是面向所有Quicknode Solana WebSocketendpoint 用户提供的免费升级,目前已面向所有套餐全面推出。无需启用、无需迁移,也无需额外付费。

入门指南

  1. 登录您的Quicknode 仪表盘。

  2. 请选择您的Solana endpoint 。

  3. 复制您的 WSSendpoint URL,并使用现有的 WebSocket 客户端代码进行连接。

初次接触Solana WebSockets?《如何使用TypeScript为Solana 区块链创建WebSocket订阅》指南涵盖了您所需了解的所有内容。

结论

Blazar 通过实现亚毫秒级的处理开销、对全部九种订阅方法(包括在 Agave 中被标记为不稳定的三种)提供稳定的支持,以及在规模扩展时仍能保持的基准性能,消除了Solana 原生 WebSocket 实现所设定的可靠性和性能上限。

WebSockets 仍然是开发者获取实时链上数据最简单的方式之一。如今,其背后的基础设施已能满足其实际需求。登录您的Quicknode 控制面板,立即开始使用。


关于Quicknode

Quicknode 成立于 2017 年,为开发者和企业提供机构级区块链基础设施。凭借 99.99% 的运行时间以及对 77 条以上区块链的支持,团队能够毫无妥协地构建和扩展链上应用程序。

今天就开始构建吧

随时掌握最新动态

将最新的工程见解、产品更新和 Web3 资讯直接发送至您的收件箱。