全新:Solana Privacy Rings 现已上线主网
推出 LaserStream
博客/更新

推出 LaserStream:新一代 Solana 数据流服务

Helius 高级软件工程师X 上的 Pedro ManticaLinkedIn 上的 Pedro Mantica
集成工程师X 上的 GuneyLinkedIn 上的 Guney
阅读需 5 分钟
目录

    LaserStream 可以直接替代在专用节点上运行的 gRPC。借助 48 小时历史重放和自动重连,Solana 上的任何团队都能以远低于运行专用基础设施的成本,流式传输交易、时隙、区块和账户变更。

    什么是 LaserStream?

    LaserStream 是一项新一代流式传输服务,专为需要可靠、低延迟 Solana 数据的开发者打造。它将链上事件(交易、时隙、区块、账户等)直接传输到你的应用,并提供业界领先的可靠性、性能和灵活性。

    LaserStream 会连接多个 Solana 节点,聚合节点数据,再将其流式传输到你的前端应用或后端数据库,而不依赖单个专用节点。

    得益于这种简洁、冗余且可扩展的配置,你无需管理专用基础设施,可以获得更稳定的延迟,也不会错过任何更新。

    LaserStream 还支持历史重放。如果订阅暂停或断开,你可以补齐过去 48 小时的历史数据。

    LaserStream 的工作原理

    每台 LaserStream 服务器都会连接多个 Solana 节点,对传入数据进行去重,并保留最近时隙的缓冲区,方便开发者重放历史时隙。

    为确保高可用性、数据正确性和可扩展性,LaserStream 部署在七个区域,每个区域都运行多台服务器以实现冗余。

    如果某个区域内的一台服务器宕机,流量会自动重定向到该区域内下一台可用服务器。

    因此,即使遇到服务器维护或意外中断,你的应用也能持续连接到高质量数据源。

    LaserStream 功能

    LaserStream 可以直接替代专用节点,并为使用 gRPC 的产品提供许多独特优势。

    历史重放和自动重连

    WebSockets 和 gRPC 的常见问题之一是套接字连接中断和数据遗漏。LaserStream 通过自动重连和历史重放解决了这个问题。

    借助 LaserStream,你可以重放过去 48 小时内的时隙,避免在连接中断时丢失任何关键数据。不再需要编写自定义代码来管理重连,也无需因意外中断而回填遗漏的区块。

    高冗余与高可靠性

    对于 Solana 数据流服务,可靠性和数据正确性不容妥协。LaserStream 使用全球分布式服务器集群,每台服务器均由多个 Solana 节点提供支持,确保你的数据流永不中断,并始终收到正确的数据。

    • 通过全球分布式集群实现内置高可用性
    • 集群分布在七个区域:法兰克福、阿姆斯特丹、盐湖城、东京、新加坡、匹兹堡和纽瓦克
    • 每个区域都有多台 LaserStream 服务器
    • 每台服务器均由多个 Solana 节点提供支持,以增强韧性
    • 客户端会通过我们的负载均衡器自动重定向,确保无缝故障转移

    无需手动进行故障转移,也无需担心数据丢失,只有持续不断的数据流。

    接近原生的性能

    实时数据流对时间极其敏感,可能直接决定一笔盈利交易的成败。

    即使在 Solana 最繁忙的 epoch 期间,LaserStream 也能保持快速且稳定。多区域中继网格会持续检查实时延迟,并通过最快路径路由每个订阅,在每秒处理数万条消息的同时,将传输抖动维持在毫秒级。

    如果上游节点或整个区域出现短暂故障,连接会在几毫秒内切换到下一个中继,并自动重放遗漏的时隙(最多 48 小时),确保你不会错过任何事件。

    最终,你将获得无缺口、高吞吐量的数据流,可以专注于策略,而非服务可用性。

    即时设置

    过去,交易者和延迟敏感型应用需要运行带有 Geyser 插件的专用节点,才能流式传输实时更新。但运行专用节点非常复杂、耗时,而且取决于首选位置是否有可用资源。

    LaserStream 无需你为 gRPC 数据流自行配置、设置、监控和管理节点,同时还能提供更出色的性能和对开发者更友好的功能。

    LaserStream 使用与 Enhanced WebSockets 和 gRPC 完全兼容的熟悉接口,可以无缝直接替代你当前的配置。

    无需复杂迁移。无需学习新语法。

    只需将现有的 gRPC URL 替换为 LaserStream URL,即可获得极致性能和可靠性。

    高级筛选

    面对 Solana 的海量数据,团队需要全面、灵活的筛选选项,确保只接收最重要的信息。

    LaserStream 让你精准控制数据。你可以轻松按特定账户、账户所有者、交易状态、区块元数据、时隙及更多条件进行筛选。

    更实惠的价格

    专用节点的起价为每月 $2,900,这对初创公司和成本敏感型应用而言可能是一笔高昂开支。借助 LaserStream,使用 Helius Professional 套餐(每月 $999)的所有团队都可以访问高性能实时数据流。

    你可以在我们的套餐与定价页面了解更多信息。

    如何开始使用 LaserStream

    下面是一份快速入门指南,介绍如何通过我们的 LaserStream SDK 使用 gRPC 进行连接。

    gRPC 快速入门

    按照以下步骤开始使用 LaserStream:

    1. 创建新项目

    代码
    mkdir laserstream-grpc-demo
    cd laserstream-grpc-demo
    npm init -y

    2. 安装依赖项

    代码
    npm install helius-laserstream
    npm install --save-dev typescript ts-node
    npx tsc --init

    3. 获取 API 密钥

    生成 API 密钥,并在控制面板的端点页面中选择端点。

    4. 创建订阅脚本

    在名为 index.ts 的文件中添加以下代码:

    代码
    import { subscribe, CommitmentLevel, LaserstreamConfig, SubscribeRequest } from 'helius-laserstream'
    
    async function main() {
      const subscriptionRequest: SubscribeRequest = {
        transactions: {
          client: {
            accountInclude: [‘pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA’],
            accountExclude: [],
            accountRequired: [],
            vote: false,
            failed: false
          }
        },
        commitment: CommitmentLevel.CONFIRMED,
        accounts: {},
        slots: {},
        transactionsStatus: {},
        blocks: {},
        blocksMeta: {},
        entry: {},
        accountsDataSlice: [],
        // Optionally, you can replay missed data by specifying a fromSlot:
        // fromSlot: '224339000'
        // Note: Currently, you can only go back 48 hours
      };
    
      // Replace these values with your actual Laserstream API key and endpoint
      const config: LaserstreamConfig = {
        apiKey: 'your-api-key',
        endpoint: 'your-endpoint',
      }
    
      await subscribe(config, subscriptionRequest, async (data) => {
        console.log(data);
      }, async (error) => {
        console.error(error);
      });
    }
    
    main().catch(console.error);

    5. 运行并查看结果

    代码
    npx ts-node index.ts

    每当已确认的交易涉及账户 pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA 时,你都会在控制台中看到交易更新。

    如果要重放旧数据,请取消注释 fromSlot 参数,并指定你希望开始重放的最近时隙。

    如需更多指南和示例,请阅读 LaserStream gRPC 文档。

    LaserStream 可用性

    所有使用 Developer 套餐(每月 $49)及以上套餐的 Helius 客户都可以在 Devnet 上使用 LaserStream gRPC。使用 Business 套餐(每月 $499)及以上套餐的客户可以在 Mainnet 上使用 LaserStream gRPC。

    如果你想在升级或迁移前在 Solana 主网上评估 LaserStream,请申请免费试用。

    LaserStream 支持

    如果你遇到问题、有任何疑问或想提供一般反馈,请通过 Discord 或 Telegram 联系我们。我们很乐意听取你的意见,并帮助你排查任何问题。

    致谢

    特别感谢 Kirill Fomichev。LaserStream 是基于他出色的 Richat 项目定制的分支。

    订阅 Helius

    及时了解 Solana 开发的最新动态,并在我们发布新内容时收到更新