НОВОЕ: Helius приобретает Light Protocol
Баннер Dune
Блог/Разработка

Как создать дашборд данных Solana с помощью Dune

Платформа данных для криптоиндустрииDune в XDune в LinkedIn
Чтение: 6 мин

Блокчейн Solana отличается высокой скоростью и масштабируемостью, обрабатывая тысячи транзакций в секунду.

Это создает огромный массив исторических данных Solana для аналитиков и разработчиков, но для работы с ним нужны правильные инструменты. Здесь на помощь приходит Dune — ведущая платформа ончейн-данных, которая превращает необработанные данные блокчейна в полезную аналитику и API для разработчиков. 

В этом руководстве вы узнаете, как создать комплексный дашборд Solana в Dune с метриками в реальном времени, историческими трендами и декодированными данными программ.

Объемы данных Solana

Высокая пропускная способность Solana, которая часто превышает 3 000 транзакций в секунду, генерирует колоссальные объемы данных. К ним относится все: от создания блоков и журналов транзакций до взаимодействий с конкретными программами, таких как обмен токенов или выпуск NFT.

Dune отслеживает активность Solana в реальном времени с минимальной задержкой. Необработанные потоки данных, включая заголовки блоков и подписи транзакций, обновляются менее чем за минуту. Например, запрос к solana.transactions позволяет отслеживать активность сети, в том числе всплески вовлеченности пользователей во время запуска токена.

Визуализировать эти данные на платформе Dune несложно. Dune индексирует всю историю Solana: от генезис-блока в 2020 году до последнего слота. Это позволяет анализировать долгосрочные тренды, например рост общего числа транзакций, которое уже превысило 300 миллиардов, или сезонные колебания активности DeFi. Например, этот запрос отслеживает совокупное число транзакций с момента запуска сети, а другой определяет самые ранние и поздние зарегистрированные блоки.

На фоне Ethereum, BSC и Polygon объем данных Solana выделяется благодаря высокой пропускной способности. Наглядное сравнение показывает лидерство Solana по ежедневному числу транзакций, хотя Ethereum по-прежнему лидирует по комиссиям и ликвидности DeFi.

Основные понятия: структура данных Solana

Рассмотрим модель аккаунтов Solana, структуру транзакции и способы анализа транзакций Solana с помощью Dune.

Модель аккаунтов Solana

В основе Solana лежит уникальная модель аккаунтов. Все ончейн-данные хранятся в аккаунтах, включая логику программ, балансы токенов и исполняемый код. Вот чем отличаются аккаунты Solana:

Адреса аккаунтов

32-байтовый идентификатор, полученный из публичного ключа или начальных значений для Program Derived Addresses (PDA). Например, адреса пулов ликвидности Raydium — это PDA, созданные на основе минтов токенов и других параметров.

Хранение данных

Аккаунты могут хранить до 10 МБ данных для программ с исполняемым байт-кодом или до 10 КБ информации о состоянии в PDA.

Владение и рента

Аккаунты должны содержать лампорты (доли SOL), чтобы оплачивать хранение данных (ренту) пропорционально их объему. Поле owner указывает программу или кошелек, которые контролируют аккаунт. Только владелец может изменять его данные или списывать лампорты. Флаг исполняемости указывает, содержит ли аккаунт исполняемый код.

Рассмотрим практический пример: аккаунт токена SPL хранит баланс связанного с ним кошелька в поле data, а его владельцем является Token Program.

Структура транзакции Solana

Транзакции служат средством взаимодействия с программами Solana. Каждая транзакция включает:

  • Подпись (уникальный идентификатор) и комиссию, уплаченную в лампортах
  • Одну или несколько инструкций (ixs), которые определяют:
    • Выполняемую программу (например, функцию обмена Raydium).
    • Аккаунты для чтения и записи (например, хранилища токенов и кошельки пользователей).
    • Аргументы конкретной инструкции (например, сумму обмена и комиссии).

Основные характеристики транзакций:

  • Атомарное выполнение: транзакция либо выполняется полностью, либо завершается с ошибкой — частичных состояний не бывает.
  • Межпрограммный вызов (CPI): программы могут вызывать другие программы, создавая вложенные инструкции.
  • Журналы и ошибки: неуспешные транзакции содержат сообщения об ошибках, а журналы фиксируют события во время выполнения (например, сведения об обмене).

Анализ транзакций в Dune

Таблица solana.transactions в Dune предоставляет детальную информацию:

  • block_slot: номер слота, в котором была обработана транзакция.
  • fee: стоимость транзакции в лампортах.
  • error: причина ошибки (если применимо).
  • accounts: адреса всех задействованных аккаунтов.
  • log_messages: созданные журналы событий (например, выпуск токенов).

Для более глубокого анализа используйте solana.instruction_calls:

  • outer_instruction_index: позиция инструкции в транзакции.
  • inner_instruction_index: отслеживает иерархию CPI. Это позиция inner_instruction в соответствующей инструкции, которая отличается от stack_height. Сейчас Dune работает над добавлением stack_height.
  • executing_account: программа, выполняющая инструкцию.
  • data: необработанные байты инструкции в шестнадцатеричной кодировке.

Навигация по данным Solana в Dune

Dune поддерживает более 150 декодированных программ Solana, включая такие крупные протоколы, как Raydium и Magic Eden. Сообщество создало более 2 000 дашбордов с метриками от производительности валидаторов до трендов мемкоинов. Новые программы добавляются регулярно. Пользователи могут отправлять запросы на декодирование через сайт Dune.

Dune разделяет данные Solana на три уровня:

1. Необработанные данные

Такие таблицы, как solana.blocks и solana.instruction_calls, предоставляют нефильтрованный доступ к ончейн-активности.

2. Очищенные данные

Предварительно обработанные абстракции, такие как цены токенов или эквиваленты в USD, упрощают анализ.

3. Декодированные данные

Наборы данных для конкретных протоколов, например dex.trades для обменов на DEX или nft.trades для продаж NFT, предоставляют готовые к использованию метрики.

Для отслеживания активов используйте такие таблицы, как staking.actions для активности валидаторов или prices.usd для цен токенов. Торговые аналитики могут использовать dex.trades, чтобы сравнивать объемы на таких платформах, как Orca и Raydium.

За кулисами: как Dune обрабатывает данные

Dune получает данные Solana через плагины Geyser, которые передают ончейн-обновления в систему индексирования. Затем необработанные данные декодируются с помощью IDL программ и распределяются по удобным для запросов таблицам. Подробное описание инфраструктуры данных Solana можно найти в руководстве Helius по инструментам для работы с данными Solana.

Пошаговое создание дашборда Solana

Шаг 1. Определите цель

Сначала выберите направление анализа. Вы хотите анализировать продажи NFT, доходность DeFi или производительность сети? В этом примере мы создадим дашборд для отслеживания ежедневных объемов торгов на DEX.

Шаг 2. Выполните запрос данных

Откройте редактор запросов Dune и получите торговые данные из dex.trades:

Код
SELECT DATE(block_time) AS date, SUM(amount_usd) AS volume  
FROM solana.dex.trades  
WHERE project = 'orca'  
GROUP BY 1  
ORDER BY date DESC; 

Запрос получает ежедневный объем торгов Orca. Сохраните его и визуализируйте данные в виде столбчатой диаграммы.

Шаг 3. Соберите и настройте дашборд

Создайте новый дашборд и добавьте диаграмму. Дополните его виджетами, например счетчиком общего числа сделок или таблицей с рейтингом ведущих токенов по объему. Используйте текстовые блоки для пояснения трендов, например всплесков, вызванных запуском нового токена.

Посмотрите эту короткую серию видео, чтобы получить полное пошаговое руководство по созданию дашборда Solana в Dune.

Советы по углубленному анализу

Совет 1. Объединяйте необработанные и декодированные данные

Если программа декодирована не полностью, например новый маркетплейс NFT, используйте solana.instruction_calls для ручного разбора журналов. Затем сопоставьте результаты с декодированными таблицами токенов, чтобы определить сведения об активах.

Совет 2. Оптимизируйте скорость

Из-за большого объема данных Solana запросы могут выполняться медленнее.

Фильтруйте данные по block_slot или block_time на раннем этапе и используйте материализованные представления для часто запрашиваемых метрик.

Совет 3. Используйте ценовые фиды

Конвертируйте объемы токенов в USD, объединяя данные о сделках с prices.usd. Это добавляет контекст к объемам, особенно для волатильных активов.

Заключение

Dune превращает непрерывный поток данных Solana в структурированный и доступный ресурс. Освоив наборы данных и инструменты платформы, вы сможете находить ценную информацию для принятия решений — как при оптимизации протокола, так и при отслеживании рыночных трендов.

Чтобы узнать больше, изучите архитектуру плагинов Geyser для Solana и посмотрите видеоуроки в этом плейлисте Solana Data на YouTube.

Подпишитесь на Helius

Следите за новостями разработки на Solana и получайте уведомления о наших публикациях

Увеличенное изображение