新消息:Helius 收购 Light Protocol
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。采用 Professional 计划(每月 $999)及更高级计划的客户可以在 Mainnet 上使用 LaserStream。

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

    LaserStream 支持

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

    致谢

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

    订阅 Helius

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