
发布:下一代增强型 WebSockets
实时数据流对于在 Solana 上构建响应迅速的应用至关重要。长期以来,WebSockets 一直是实现持久双向通信的首选协议,通过单一连接取代低效的 HTTP 轮询。
与传统 HTTP 轮询相比,WebSockets 是更理想的选择,但也会带来一系列可能削弱可靠性的挑战,这在 Solana 这样的高吞吐量环境中尤其不利。从随机断连到过滤能力不足等问题,过去一直迫使开发者投入大量时间和精力实施自定义缓解措施,往往因此牺牲核心产品创新。
Helius 很早就意识到了这些痛点。过去,我们推出了增强型 WebSockets,为交易和账户更新流提供速度更快、自定义能力更强的选择。但随着基础设施不断演进,我们发现,即使有了这些增强功能,仍未能达到 Helius 所能提供的韧性和性能水平。
我们很高兴地宣布,增强型 WebSockets 现已由支持 LaserStream 的同一套基础设施提供支持。LaserStream 是我们专为速度、简洁性和容错能力打造的下一代 gRPC 流服务。
这项集成以原生 JSON 格式为 WebSocket 流带来 gRPC 级可靠性,消除脆弱的连接,让前端开发者可以专注于提供尽可能出色的用户体验。
WebSockets 与实时应用面临的挑战
WebSockets 承诺带来持久双向通信的魔力——只需一个连接即可接收推送通知,无需持续轮询 HTTP 端点。 这听起来很美好,但 WebSockets 并非没有问题:
1. 连接脆弱且负载沉重
WebSockets 维持有状态的长期 TCP 连接。因此,网络短暂波动、代理超时或服务器过载都可能导致连接中断。
Solana 400ms 的槽位时间和突发流量进一步放大了 WebSocket 的脆弱性。因此,开发者不得不实现自定义重连逻辑,例如指数退避和心跳 ping,以维持正常运行。
2. 数据泛滥
WebSocket 订阅通常会返回过多数据。
accountSubscribe 等原生订阅会提供未经筛选的数据流,让开发者淹没在大量噪声中。这迫使开发者在客户端进行过滤,可能增加带宽用量并带来处理延迟。
3. 可扩展性与资源开销
处理数千个并发连接会给服务器资源带来巨大压力,导致内存泄漏、CPU 瓶颈、负载均衡器复杂度上升,并需要对连接进行分片来管理负载。
WebSockets 的横向扩展出了名地困难,而且大多数团队都没有足够的时间、资源或专业能力将其做到完善。
4. 产品创新时间被占用
这些挑战叠加在一起,会挤占构建全新差异化功能和应用的时间。在快速发展的 Solana 生态中,这种低效率成为阻碍进步的隐性成本。
这些长期存在的挑战使标准 Solana WebSockets 无法满足生产级应用的需求。在这类应用中,即使极其短暂的中断也可能意味着错失机会或 UI 数据过时。
下一代增强型 WebSockets
为了解决这些不足,我们推出了增强型 WebSockets——通过 Geyser 增强的 Solana 标准 WebSockets,可提供更出色的账户和交易订阅体验。
它引入了强大的过滤器(例如通过 accountInclude、accountExclude 和 accountRequired 支持最多 50,000 个地址),响应速度也快于传统 WebSockets。不过,自最初发布以来,我们的数据流基础设施已经得到显著改进。
增强型 WebSockets 现已由与 LaserStream 相同的基础设施提供支持。LaserStream 是我们专为速度、可靠性和简洁性打造的下一代 gRPC 流服务。
现在,你可以在 WebSocket 封装中体验 gRPC 的可靠性。
主要增强功能包括:
一流的韧性
增强型 WebSockets 现在可同时从多个聚合节点传输数据,并支持自动故障转移。通过消除任何单点故障,它提升了系统韧性,并确保最长正常运行时间。
高性能
LaserStream 专为超低延迟数据流而构建。现在,增强型 WebSockets 也将受益于我们的最新改进,以尽可能快的速度发送通知。
针对前端优化的数据流
增强型 WebSockets 由升级后的基础设施提供支持,其 JSON 载荷让前端开发者能够将高保真数据流直接集成到浏览器、React 应用和移动客户端中。
选择合适的流解决方案:对比
Helius 提供针对特定使用场景构建的不同数据流服务,具体如下。
增强型 WebSockets
以下情况应使用增强型 WebSockets:
- 延迟、连续性和正确性不会影响 PnL、成交或风险
- 你希望使用 JSON 载荷
- 你专注于消费者用户体验,不希望引入后端复杂性
| 使用场景 | 示例 |
| 前端实时用户体验 | - 钱包余额 - 投资组合仪表板 - 应用内通知 - 消费者用户体验 |
LaserStream
以下情况应使用 LaserStream:
- 每一毫秒都至关重要
- 延迟、连续性和正确性会影响 PnL、成交和/或风险
- 你需要更高级的过滤能力
- 你需要支持自动重放的无间断传输
- 你需要接收不同确认级别的交易
| 使用场景 | 示例 |
| 后端事件驱动处理 | - 交易与风险系统 - 价格和订单流监控器 - 清算监控器 - 跨交易场所引擎 |
申请免费试用,了解 LaserStream 是否适合你。
Shred Delivery
以下情况应使用 Shred Delivery:
- 你需要原始信号
- 你已有或能够构建自定义 shred 重组管线
如果你希望获得 shred 级延迟,但没有 shred 重组管线,可以改用 Preprocessed Transactions,通过 WebSocket 接收解码后的 shred。
| 使用场景 | 示例 |
| 超低延迟信号捕获 | - 高频交易 - 跨交易场所套利 - 代币抢购 |
总结如下:
- 使用增强型 Websockets 获取前端友好、非关键的数据流。
- 对于延迟缺口或数据连续性会直接影响机会的后端决策循环,使用 LaserStream。
- 如果你使用自定义 shred 重组管线,并希望尽早获取原始 shred 中的信号,请使用 Shred Delivery。
申请免费试用,了解 Shred Delivery 是否适合你。
增强型 WebSockets 快速入门
开始使用增强型 WebSockets 非常简单。
首先,注册并在“API Keys”部分获取 API 密钥。
只需连接到我们的一个端点,通过 transactionSubscribe 或 accountSubscribe 订阅,即可开始接收经过过滤且具有韧性的数据流。
增强型 WebSockets 面向 Business 及更高级别的计划提供。Solana 的标准 WebSockets 同时面向 Free 和付费计划提供。
端点
- 主网:
wss://atlas-mainnet.helius-rpc.com/?api-key=<YOUR_API_KEY> - 主网(Gatekeeper 测试版):
wss://beta.helius-rpc.com/?api-key=<YOUR_API_KEY> - 开发网:
wss://atlas-devnet.helius-rpc.com/?api-key=<YOUR_API_KEY>
示例:监控新的 Raydium Launchpad 池
以下 Node.js 脚本是一个简单示例,展示了如何在生产环境中使用增强型 WebSockets,通过 transactionSubscribe 订阅 Raydium 的 Launchpad 程序,并解析日志来筛选成功初始化的池:
import WebSocket from 'ws';
const API_KEY = process.env.HELIUS_API_KEY; // Set your API key as an env var
const WS_URL = `wss://atlas-mainnet.helius-rpc.com/?api-key=${API_KEY}`;
const
RAYDIUM_LAUNCHPAD_PROG
= '
LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj
';
const ws = new WebSocket(WS_URL);
ws.on('open', () => {
console.log('Connected to LaserStream-Powered Enhanced WebSockets!');
ws.send(JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'transactionSubscribe',
params: [
{
failed: false,
accountInclude: [
RAYDIUM_LAUNCHPAD_PROG
]
},
{
commitment: 'confirmed',
encoding: 'jsonParsed',
transactionDetails: 'full',
maxSupportedTransactionVersion: 0
}
]
}));
// Optional heartbeat ping
setInterval(() => {
if (ws.readyState === WebSocket.OPEN) {
ws.send(JSON.stringify({ jsonrpc: '2.0', id: Date.now(), method: 'ping' }));
}
}, 30000);
});
ws.on('message', (data) => {
try {
const payload = JSON.parse(data.toString());
const result = payload.params?.result;
if (!result) return;
// Filter for init logs
const logs = result.transaction.meta.logMessages || [];
if (!logs.some(log => log.includes('Instruction: Initialize'))) return;
const keys = result.transaction.transaction.message.accountKeys.map(k => k.pubkey);
console.table({
Signature: result.signature,
Creator: keys[1], // From IDL: accounts[1] is creator
BaseMint: keys[7], // From IDL: base_mint is around index 7 in initialize accounts
Slot: result.slot
});
} catch (err) {
console.error('Message parse error:', err);
}
});
ws.on('error', (err) => console.error('WebSocket error:', err));
ws.on('close', () => {
console.log('Disconnected');
});
使用以下命令运行上述代码:
export HELIUS_API_KEY=your-api-key-here
node raydium-launchpad-stream.js以下脚本会将新启动的池以表格形式持续输出到控制台,即使在高负载下也能确保无间断传输。
定价与计量
作为我们持续投资于低延迟和可靠性的一部分,从 2025 年 10 月 16 日起,新计划将按与 LaserStream 相同的费率计量增强型 WebSockets(即每传输 0.1 MB 数据消耗 3 个积分)。
Professional 计划可按固定费率购买额外数据,用于满足增强型 WebSockets 或 LaserStream 的数据流需求。
如果你正在使用现有计划,定价、限额和计费方式将完全保持不变。无需采取任何操作。
标准 WebSockets 保持不变,同时面向 Free 和付费计划提供。
立即升级你的数据流
可靠、快速、简单——你的数据流已准备好与你一同扩展。立即开始使用增强型 WebSockets 构建应用。注册、获取 API 密钥,并让你的前端体验可靠性。
更智能地传输,更快速地创新。
相关文章
订阅 Helius
及时了解 Solana 开发的最新动态,并在我们发布新内容时收到更新


