子流 > Developing > Solana
3 分钟
Solana帐户更改
了解如何使用Substreams使Solana帐户更改数据。
介绍
本指南将引导您完成设置环境、配置第一个子流和高效使用帐户更改的过程。在本指南结束时,您将有一个可用的Substreams提要,允许您跟踪Solana区块链上的实时帐户更改以及历史帐户更改数据。
注意:Solana帐户更改的历史日期为2025年,块310629601。
对于每个Substreams Solana帐户块,只记录每个帐户的最新更新,请参阅Protobuf Referece。如果删除了帐户,则会提供deleted == True
的有效载荷。此外,忽略了不太重要的事件,例如具有特殊所有者“Vote11111111…”帐户的事件或不影响帐户数据的更改(例如:lamport更改)。
注意:要测试Solana帐户的Substreams延迟(以块头漂移衡量),请安装Substreams CLI,运行substreams run solana-common blocks_without_votes-s-1-oclock
。
开始
先决条件
在开始之前,请确保您拥有以下内容:
- 已安装Substreams CLI 。
- 用于访问Solana帐户更改数据的Substreams密钥。
- 了解如何使用命令行界面(CLI)。
步骤1:设置与Solana帐户更改子流的连接
现在您已经安装了Substreams CLI,可以设置与Solana Account Change Substreams提要的连接。
- 使用Solana Accounts Foundation模块,您可以选择直接流式传输数据或使用GUI以获得更直观的体验。以下
gui
示例过滤Honey Token帐户数据。
1substreams gui solana-accounts-foundational filtered_accounts -t +10 -p filtered_accounts="owner:TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA || account:4vMsoUT2BWatFweudnQM1xedRLfJgJ7hswhcpz4xgBTy"
- 此命令将直接将帐户更改流式传输到您的终端。
1substreams run solana-accounts-foundational filtered_accounts -s -1 -o clock
基础模块支持对特定帐户和/或所有者进行筛选。您可以根据需要调整查询。
步骤2:存储子流
使用回调直接在应用程序 中使用帐户流,或者使用SQL-DB sink使其可查询。
步骤3:设置重新连接策略
策展管理允许您在连接中断时从最后一个消耗的块恢复,从而确保无缝的连续性和可追溯性。此功能可防止数据丢失并保持持久流。
在创建或使用接收器时,用户的主要责任是提供BlockScopedDataHandler和BlockUndoSignalHandler的实现,后者具有以下接口:
1import (2 pbsubstreamsrpc "github.com/streamingfast/substreams/pb/sf/substreams/rpc/v2"3)45type BlockScopedDataHandler = func(ctx context.Context, cursor *Cursor, data *pbsubstreamsrpc.BlockScopedData) error6type BlockUndoSignalHandler = func(ctx context.Context, cursor *Cursor, undoSignal *pbsubstreamsrpc.BlockUndoSignal) error