LaserStream 是一个为 Solana 开发者构建的下一代流媒体服务,旨在以较低的成本提供可靠、低延迟的 Solana 数据。它通过连接到多个 Solana 节点、聚合数据并将其流式传输到应用程序,无需管理专用基础设施,并支持历史回放和自动重新连接。
LaserStream 是一个即插即用的替代方案,用于在专用节点上运行 gRPC,并且经过性能优化,可支持增强型 WebSocket。
凭借历史回放和自动重新连接,Solana 上的任何团队都可以以运行专用基础设施的一小部分成本,流式传输交易、slot、区块和账户更改。
LaserStream 是一种下一代流媒体服务,专为需要可靠、低延迟 Solana 数据的开发者而构建。它以行业领先的可靠性、性能和灵活性,将链上事件(交易、slot、区块、账户等)直接传递到你的应用程序。
LaserStream 连接到多个 Solana 节点,聚合它们的数据,然后将其流式传输到你的前端应用程序或后端数据库,而不是依赖于单个专用节点。
由于这种简化、冗余且可扩展的配置,你无需管理专用基础设施,将体验到更稳定的延迟,并且不会错过任何更新。
LaserStream 还支持 历史回放,如果你的订阅暂停或断开连接,你可以通过它来追赶 3,000 个 slot 的历史数据(大约 20 分钟)。
每个 LaserStream 服务器连接到多个 Solana 节点,对传入数据进行重复数据删除,并维护最近 slot 的缓冲区,以便开发人员可以重放历史 slot。
为了确保高可用性、数据正确性和规模,LaserStream 部署在七个区域,每个区域运行多个服务器以实现冗余。
如果一个区域中的服务器出现故障,流量将自动重定向到该区域中下一个可用的服务器。因此,即使在服务器维护或意外中断期间,你的应用程序也能保持与高质量数据馈送的连接。
LaserStream 是 专用节点 的即插即用替代品,并为使用 gRPC 的产品提供了许多独特优势。
WebSocket 和 gRPC 的一个常见问题是套接字断开连接和数据丢失。LaserStream 使用自动重新连接和 历史回放 解决了这个问题。
使用 LaserStream,你可以重放多达 3,000 个 slot(大约 20 分钟),这样你就不会在断开连接时丢失任何关键数据。不再需要自定义代码来管理重新连接或由于意外中断而回填丢失的区块。
对于 Solana 数据流服务而言,可靠性和数据正确性是不容妥协的。LaserStream 使用全球分布式服务器集群,每个服务器都由多个 Solana 节点支持,以确保你的数据流永不中断,并且你始终收到正确的数据。
无需手动故障转移,无需担心数据丢失,只需持续流式传输。
实时数据流对时间非常敏感,并且可能是赢得和输掉有利可图交易的区别。
LaserStream 的构建旨在在最繁忙的 Solana 周期中保持快速和稳定。多区域中继网格不断检查实时延迟,然后通过最快的路径路由每个订阅,从而以毫秒级的交付抖动维持每秒数万条消息。
如果上游节点或整个区域出现故障,连接会在几毫秒内转移到下一个中继,并自动重放过去 3,000 个 slot,确保你不会错过任何事件。结果是无间隙、高吞吐量的流,让你可以专注于策略而不是正常运行时间。
从历史上看,交易者和对延迟敏感的应用程序需要运行 Geyser 插件的专用节点才能 流式传输实时更新。不幸的是,运行专用节点很复杂、耗时,并且依赖于你首选地理位置的可用库存。
LaserStream 消除了为 gRPC 流配置、监控和管理你自己的节点的麻烦,同时提供更好的性能和更便于开发人员使用的功能。
由于 LaserStream 使用的熟悉界面与增强型 WebSocket 和 gRPC 完全兼容,因此它可以无缝替代你当前的设置。
无需复杂的迁移。没有新的语法。只需将你现有的 gRPC URL 替换为 LaserStream URL,即可体验最佳性能和可靠性。
为了筛选 Solana 的大量数据,团队需要全面而灵活的过滤选项,以便他们只接收最重要的信息。
LaserStream 让你可以精确控制你的数据。轻松按特定帐户、帐户所有者、交易状态、区块元数据、slot 和 其他 进行过滤。
专用节点的起价为每月 2,300 美元,这对于初创公司和对成本敏感的应用程序来说可能是一笔很大的费用。借助 LaserStream,Helius 专业计划 (每月 999 美元)上的所有团队都可以访问高性能的实时数据流。
有关 LaserStream 定价的更多信息,请访问我们的 计划和速率限制页面。
下面是一个快速入门指南,展示了如何通过我们的 LaserStream SDK 使用 gRPC 进行连接。
按照以下步骤开始使用 LaserStream 作为 gRPC 的替代方案。
Laserstream gRPC 与 Yellowstone gRPC 库完全兼容。使用我们的任何公共端点,并将你的 API 密钥作为Token传递。
mkdir laserstream-grpc-demo
cd laserstream-grpc-demo
npm init -y
npm install helius-laserstream
npm install --save-dev typescript ts-node
npx tsc --init
从你仪表板的 端点 页面生成 API 密钥并选择你的端点。
在名为 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 up to 3000 slots.
};
// 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);
npx ts-node index.ts
每当确认的交易涉及帐户 pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA
时,你将在控制台中看到交易更新。
如果要重放旧数据,请取消注释 fromSlot
参数并指定要从中启动的最近插槽。
有关更多指南、示例和代码片段,请参阅我们的 LaserStream for gRPC 文档。
如果你遇到问题、有疑问或想提供一般性反馈,请通过 Discord 或 Telegram 联系。我们很乐意收到你的来信并帮助你排除任何问题。
- 原文链接: helius.dev/blog/introduc...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!