3 минуты
Транзакции Solana
Узнайте, как инициализировать проект Substreams на основе Solana в рамках Dev Container.
Примечание: Этот гид не включает Изменения аккаунтов.
Параметры
Если вы предпочитаете начать работу локально в вашем терминале, а не через Dev Container (требуется VS Code), обратитесь к руководству по установке Substreams CLI.
Шаг 1: Инициализация Вашего проекта субпотоков Solana
-
Откройте Dev Container и следуйте шагам на экране, чтобы инициализировать Ваш проект.
-
Выполнив команду
substreams init
, Вам будет предложено выбрать между двумя вариантами проектов для Solana. Выберите наиболее подходящий вариант для Вашего проекта:- sol-minimal: Этот вариант создаёт простые субпотоки, которые извлекают сырые данные блоков Solana и генерирует соответствующий код на Rust. Этот путь начнёт с полного сырого блока, и вы сможете перейти к файлу
substreams.yaml
(манифест), чтобы изменить входные данные. - sol-transactions: Этот вариант создаёт субпотоки, которые фильтруют транзакции Solana на основе одного или нескольких Program ID и/или Account ID, используя кешированный Solana Foundational Module.
- sol-anchor-beta: Этот вариант создаёт субпотоки, которые декодируют инструкции и события с использованием Anchor IDL. Если IDL недоступен (смотрите Anchor CLI), Вам нужно будет предоставить его самостоятельно.
- sol-minimal: Этот вариант создаёт простые субпотоки, которые извлекают сырые данные блоков Solana и генерирует соответствующий код на Rust. Этот путь начнёт с полного сырого блока, и вы сможете перейти к файлу
Модули в Solana Common не включают транзакции голосования. Чтобы уменьшить размер и затраты на обработку данных на 75%, задержите Ваш поток на более чем 1000 блоков от начала. Это можно сделать с помощью функции sleep
в Rust.
Чтобы получить доступ к транзакциям голосования, используйте полный блок Solana, sf.solana.type.v1.Block
, в качестве входных данных.
Шаг 2: Визуализация данных
-
Выполните команду
substreams auth
, чтобы создать Ваш аккаунт и сгенерировать токен аутентификации (JWT), затем передайте этот токен обратно в качестве входных данных. -
Теперь Вы можете свободно использовать команду
substreams gui
, чтобы визуализировать и итеративно работать с Вашими извлечёнными данными.
Шаг 2.5: (По желанию) Преобразование данных
В сгенерированных директориях отредактируйте Ваши модули субпотоков, чтобы добавить дополнительные фильтры, агрегации и преобразования, а затем обновите манифест соответственно.
Шаг 3: Загрузка данных
Чтобы сделать Ваш запрос в субпотоках доступным для выполнения (в отличие от прямой трансляции), Вы можете автоматически сгенерировать субграф на базе субпотоков или базу данных SQL sink.
Субграф
- Выполните команду
substreams codegen subgraph
, чтобы инициализировать sink, создавая необходимые файлы и определения функций. - Создайте Ваши мэппинги субграфа в файле
mappings.ts
и связанные объекты в файлеschema.graphql
. - Создайте и разверните локально или в Subgraph Studio, выполнив команду
deploy-studio
.
SQL
- Выполните команду
substreams codegen sql
и выберите либо ClickHouse, либо Postgres, чтобы инициализировать sink и создать необходимые файлы. - Выполните команду
substreams build
, чтобы собрать sink SQL субпотока. - Выполните команду
substreams-sink-sql
, чтобы записать данные в выбранную Вами базу данных SQL.
Примечание: Выполните команду help
, чтобы лучше ориентироваться в среде разработки и проверить состояние контейнеров.
Дополнительные ресурсы
Вам могут быть полезны следующие дополнительные ресурсы для разработки Вашего первого приложения на Solana.
- Справочник по Dev Container поможет Вам ориентироваться в контейнере и решать распространённые ошибки.
- Справочник по CLI позволяет Вам изучить все инструменты, доступные в CLI субпотоков.
- Справочник по компонентам более подробно объясняет, как работать с файлом
substreams.yaml
.