子流 > 开发 > Solana
4 分钟
Solana交易
了解如何在开发容器中初始化基于Solana的Substreams项目。
注意:本指南不包括帐户更改。
选项
如果您更喜欢在终端内本地开始,而不是通过开发容器(需要VS代码),请参阅Substreams CLI安装指南。
第 1 步:初始化您的 Solana 子流项目
-
打开 Dev容器 并按屏幕步骤初始化您的项目。
-
运行
substreams init
可以让您选择两个Solana 项目选项。选择您项目的最佳选项:- 最小化:这创建了一个简单的子流,用于提取原始Solana区块数据并生成相应的 Rust 代码。 此路径将以完整的原始方块启动,您可以导航到
substreams.yaml
(manifest) 来修改输入。 - sol transactions:这将创建一个Substreams,使用缓存的Solana基础模块根据一个或多个程序ID和/或帐户ID过滤Solana交易。
- sol-anchor-beta:这创建了一个用Anchor IDL解析指令和事件的子流。 如果一个 IDL 不可用 (参考 Anchor CLI), 那么你将需要自己提供。
- 最小化:这创建了一个简单的子流,用于提取原始Solana区块数据并生成相应的 Rust 代码。 此路径将以完整的原始方块启动,您可以导航到
Solana Common中的模块不包括投票交易。为了将数据处理大小和成本降低75%,请将数据流从头延迟1000多个块。这可以使用[sleep
]来完成(https://doc.rust-lang.org/std/thread/fn.sleep.html)Rust中的函数。
要访问投票交易,请使用完整的 Solana 块,sf.solana.type.v1.Block
作为输入。
第 2 步:可视化数据
-
运行
substreams-auth
以创建您的帐户并生成一个身份验证代币(JWT),然后将该代币作为输入传递回去。 -
现在你可以自由使用
substreams gui
来在你已提取的数据上进行可视化和迭代。
步骤2.5:(可选) 转换数据
在生成的目录中,修改您的子串流模块以包含额外的过滤、聚合和转换,然后相应地更新清单。
第 3 步:加载数据
要使您的子流可以查询(相对于直接流),您可以自动生成子流驱动子图 或 SQL-DB 接收器。
子图
- 运行
substreams codegen subgraph
以初始化接收器,生成必要的文件和函数定义。 - 在
mappings.ts
中创建你的 Subgraph 映射 以及schema.graphql
中的相关实体。 - 在本地或Subgraph Studio构建和部署通过运行
部署工作室
。
SQL
- 运行
substreams codegen sql
并从ClickHouse或 Postgres 中选择以初始化接收器,生成必要的文件。 - 运行
substreams build
生成substance SQL 接收器。 - 运行
substreams-sink sql
将数据存储进您选中的 SQL DB。
注意:运行 help
以更好地导航开发环境并检查容器的健康状况。
其他资源
您可能会发现这些额外资源有助于开发您的第一个Solana应用程序。