Введение
Для анализа данных смарт-контрактов в реальном времени с использованием Python, Pandas и Matplotlib может потребоваться сложный подход к извлечению данных.
Подграфы The Graph – это мощный инструмент, который позволяет получить доступ к данным смарт-контрактов в децентрализованном режиме, даже если они не имеют собственных подграфов.
Методы доступа к данным на Ethereum
- Команды RPC-узла
- Провайдеры аналитики данных (например, Dune)
- Готовые API
Подграфы The Graph как решение
Подграфы The Graph позволяют создать собственный конвейер ETL (извлечение данных из блокчейна, сохранение в базе данных, предоставление доступа к данным через интерфейс GraphQL) для доступа к данным смарт-контрактов.
Это избавляет от необходимости вручную обрабатывать данные блок за блоком и обеспечивает доступ к данным в реальном времени.
Использование существующих подграфов
На хостинговой платформе The Graph доступны различные подграфы, созданные сообществом.
Например, подграф протокола Lido позволяет получить доступ к данным о переносах средств, значениях и времени блока.
Получение данных с помощью подграфов
- Установите необходимые библиотеки Python.
- Выполните запрос GraphQL к конечной точке подграфа.
- Преобразуйте вывод запроса в структуру данных Pandas.
Пример запроса данных из протокола Lido
import pandas as pd
import requests
url = "https://api.thegraph.com/subgraphs/name/lidofinance/lido"
query = """
{
lidoTransfers(first: 50) {
from
to
value
block
blockTime
transactionHash
}
}
"""
result = run_query(url, query)
df = pd.DataFrame(result['data']['lidoTransfers'])
Извлечение всех данных из таблицы
Для извлечения всех данных из таблицы можно использовать чередующиеся запросы GraphQL.
В запросе указывается начальный блок и извлекается 1000 записей за раз, проверяется, содержит ли ответ дубликаты, и повторяется процесс до извлечения всех данных.
Простой анализ данных
- Самые частые адреса в поле “from”: 0x0000000000000000000000000000000000000000 (выпуск новых токенов)
- Самый частый получатель средств в поле “to”: 0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0 (Lido: обернутый стETH Token)
- Количество транзакций в месяц: постоянно растет
Дополнительные возможности
- Написание собственных подграфов для доступа к данным любых смарт-контрактов.
- Создание более сложных подграфов для расширенного доступа к данным.
- Использование Telegram-бота SubgraphGPT для быстрого получения ответов по подграфам.
Заключение
Подграфы The Graph – это мощный инструмент для доступа к данным смарт-контрактов в децентрализованном режиме.
Они позволяют извлекать данные в реальном времени, что открывает широкие возможности для анализа и разработки приложений.
Ссылки
Пульс Новости 8 из 10
- Значимость новости: 8 – Новость посвящена доступу к данным смарт-контрактов Ethereum в режиме реального времени с помощью The Graph, что является важным инструментом для разработчиков и аналитиков.
- Инновационная ценность новости: 9 – The Graph представляет собой инновационный метод доступа к данным смарт-контрактов, облегчая создание собственных графиков и анализ данных без необходимости глубоких знаний в разработке блокчейна.
- Потенциальное влияние новости на рынок: 8 – Новые возможности доступа к данным смарт-контрактов могут стимулировать разработку новых приложений и услуг, а также улучшить возможности аналитики для инвесторов и трейдеров.
- Релевантность новости: 9 – Новость напрямую связана с криптовалютным рынком, предоставляя ценную информацию о инструментах анализа данных на основе блокчейна.
- Актуальность новости: 9 – Новая технология The Graph была недавно представлена и активно обсуждается в отрасли, что делает новость актуальной.
- Достоверность новости: 7 – Новость написана экспертом в области криптовалютного рынка, но следует учитывать, что она опубликована на стороннем сайте, а не на официальном ресурсе The Graph.
- Общий тон новости: 8 – Новость имеет позитивный тон, подчеркивая преимущества и возможности использования The Graph.
- Источник новости: 8 – Habr.com является авторитетным источником информации в сфере технологий, в том числе в области криптовалют.