Часто задаваемые вопросы о субграфах, работающих на основе субпотоков (Substreams)
Reading time: 5 min
Substreams (Субпотоки), разработанные , представляют собой исключительно мощный механизм обработки, способный потреблять обширные потоки блокчейн-данных. Субпотоки позволяют оптимизировать и формировать данные блокчейна для быстрого и бесперебойного использования приложениями конечных пользователей. В частности, Субпотоки - это независимый от блокчейна, распараллеленный и ориентированный на потоковую передачу движок, служащий в качестве уровня преобразования данных блокчейна. Работая на базе , он позволяет разработчикам писать модули на языке Rust, использовать модули сообщества,обеспечивать крайне высокую производительность индексирования и свои данные в любое место.
Go to the to learn more about Substreams.
сочетают в себе мощь Субпотоков с возможностью запроса субграфов. При публикации Субграфа, работающего на основе Субпотоков, данные, полученные в результате преобразований Субпотоков, могут , совместимые с объектами субграфа.
Если Вы уже знакомы с разработкой субграфов, обратите внимание на то, что к тому же можно запрашивать субграфы, работающие на основе Субпотоков, точно так же, как если бы они были созданы на уровне преобразования AssemblyScript, со всеми преимуществами Субграфа, такими как предоставление динамического и гибкого GraphQL API.
Субграфы состоят из источников данных, которые определяют события в цепочке и то, как эти события должны быть преобразованы с помощью обработчиков, написанных на Assemblyscript. Эти события обрабатываются последовательно в зависимости от того, в каком порядке события происходят в цепочке.
Напротив, субграфы, работающие на основе субпотоков, имеют один источник данных, который ссылается на пакет субпотоков, обрабатываемый the Graph Node. Субпотоки имеют доступ к дополнительным детализированным данным в цепочке по сравнению с обычными субграфами, а также могут извлекать выгоду из массового распараллеливания обработки, что может подразумевать гораздо более быстрое время обработки.
Субграфы, работающие на основе Субпотоков, сочетают в себе все преимущества Субпотоков с возможностью запроса субграфов.Они обеспечивают более высокую совместимость и высокопроизводительное индексирование в The Graph. Они также позволяют создавать новые варианты использования данных; например, после того, как Вы создали свой субграф на базе Субпотоков, Вы можете повторно использовать свои для вывода в разные , такие как PostgreSQL, MongoDB и Kafka.
Использование Субпотоков имеет много преимуществ, в том числе:
-
Компонуемость: Вы можете объединять модули Субпотоков, как блоки LEGO, и опираться на модули сообщества, дополнительно уточняя общедоступные данные.
-
Высокопроизводительное индексирование: индексирование на порядки быстрее благодаря крупномасштабным кластерам параллельных операций (как пример, BigQuery).
-
Возможность загружать куда угодно: Загружайте Ваши данные в любое удобное для Вас место: PostgreSQL, MongoDB, Kafka, субграфы, плоские файлы, Google Sheets.
-
Программируемость: Используйте код для настройки извлечения, выполнения агрегирования во время преобразования и моделирования выходных данных для нескольких приемников.
-
Доступ к дополнительным данным, недоступным в составе JSON RPC
-
Все преимущества Firehose.
Firehose, разработанный , представляет собой уровень извлечения данных блокчейна, разработанный с нуля для обработки полной истории блокчейнов на ранее невиданных скоростях. Обеспечивая подход, основанный на файлах и потоковой передаче, он является основным компонентом пакета технологий Streamingfast с открытым исходным кодом и основой для Субпотоков.
Перейдите к , чтобы узнать больше о Firehose.
Использование Firehose имеет много преимуществ, в том числе:
-
Наименьшая задержка и отсутствие опроса: В режиме потоковой передачи узлы Firehose спроектированы таким образом, чтобы первыми передавать данные блока.
-
Предотвращает простои: Разработан с нуля для обеспечения высокой доступности.
-
Никогда не пропустите ни одного момента: Курсор потока Firehose предназначен для обработки форков и продолжения работы с того места, где Вы остановились, в любых условиях.
-
Богатейшая модель данных: Лучшая модель данных, которая включает изменения баланса, полное дерево вызовов, внутренние транзакции, логи, изменения в хранилище, затраты на газ и многое другое.
-
Использует плоские файлы: Данные блокчейна извлекаются в плоские файлы — самый дешевый и наиболее оптимизированный доступный вычислительный ресурс.
Где разработчики могут получить доступ к дополнительной информации о субграфах работающих на основе Субпотоков и о Субпотоках?
The will teach you how to build Substreams modules.
В документации показано, как упаковать их для развертывания в The Graph.
позволит Вам загрузить проект Substreams без использования какого-либо кода.
Модули Rust - это эквивалент мапперов AssemblyScript в субграфах. Они компилируются в WASM аналогичным образом, но модель программирования допускает параллельное выполнение. Они определяют, какие преобразования и агрегации необходимо применить к необработанным данным блокчейна.
При использовании Субпотоков компоновка происходит на уровне преобразования, что позволяет повторно использовать кэшированные модули.
Например, Алиса может создать ценовой модуль DEX, Боб может использовать его для создания агрегатора объемов для некоторых интересующих его токенов, а Лиза может объединить четыре отдельных ценовых модуля DEX, чтобы создать ценовой оракул. Один запрос Субпотоков упакует все эти отдельные модули, свяжет их вместе, чтобы предложить гораздо более уточненный поток данных. Затем этот поток может быть использован для заполнения субграфа и запрашиваться потребителями.
После субграфа, работающего на основе Субпотоков, Вы можете использовать the Graph CLI для его развертывания в [Subgraph Studio]( /).
Вы можете посетить , чтобы найти примеры Субпотоков и субграфов, работающих на основе Субпотоков.
Интеграция обещает множество преимуществ, включая чрезвычайно высокопроизводительную индексацию и большую компонуемость за счет использования модулей сообщества и развития на их основе.