Substreams-Powered Subgraphs FAQ
Reading time: 5 minutes
Что такое субпотоки?
Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications.
Specifically, it’s a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It’s powered by Firehose, and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and sink their data anywhere.
Substreams is developed by StreamingFast. Visit the Substreams Documentation to learn more about Substreams.
Что такое субграфы, работающие на основе Субпотоков?
Substreams-powered subgraphs combine the power of Substreams with the queryability of subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can output entity changes that are compatible with subgraph entities.
If you are already familiar with subgraph development, note that Substreams-powered subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of subgraphs, including a dynamic and flexible GraphQL API.
Чем субграфы, работающие на основе Субпотоков, отличаются от субграфов?
Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain.
By contrast, substreams-powered subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times.
Каковы преимущества использования субграфов, работающих на основе Субпотоков?
Substreams-powered subgraphs combine all the benefits of Substreams with the queryability of subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you’ve built your Substreams-powered Subgraph, you can reuse your Substreams modules to output to different sinks such as PostgreSQL, MongoDB, and Kafka.
В чем преимущества Субпотоков?
Использование Субпотоков имеет много преимуществ, в том числе:
-
Компонуемость: Вы можете объединять модули Субпотоков, как блоки LEGO, и опираться на модули сообщества, дополнительно уточняя общедоступные данные.
-
Высокопроизводительное индексирование: индексирование на порядки быстрее благодаря крупномасштабным кластерам параллельных операций (как пример, BigQuery).
-
Возможность загружать куда угодно: Загружайте Ваши данные в любое удобное для Вас место: PostgreSQL, MongoDB, Kafka, субграфы, плоские файлы, Google Sheets.
-
Программируемость: Используйте код для настройки извлечения, выполнения агрегирования во время преобразования и моделирования выходных данных для нескольких приемников.
-
Доступ к дополнительным данным, недоступным в составе JSON RPC
-
Все преимущества Firehose.
Что такое Firehose?
Firehose, разработанный StreamingFast, представляет собой уровень извлечения данных блокчейна, разработанный с нуля для обработки полной истории блокчейнов на ранее невиданных скоростях. Обеспечивая подход, основанный на файлах и потоковой передаче, он является основным компонентом пакета технологий Streamingfast с открытым исходным кодом и основой для Субпотоков.
Перейдите к documentation, чтобы узнать больше о Firehose.
В чем преимущества Firehose?
Использование Firehose имеет много преимуществ, в том числе:
-
Наименьшая задержка и отсутствие опроса: В режиме потоковой передачи узлы Firehose спроектированы таким образом, чтобы первыми передавать данные блока.
-
Предотвращает простои: Разработан с нуля для обеспечения высокой доступности.
-
Никогда не пропустите ни одного момента: Курсор потока Firehose предназначен для обработки форков и продолжения работы с того места, где Вы остановились, в любых условиях.
-
Богатейшая модель данных: Лучшая модель данных, которая включает изменения баланса, полное дерево вызовов, внутренние транзакции, логи, изменения в хранилище, затраты на газ и многое другое.
-
Использует плоские файлы: Данные блокчейна извлекаются в плоские файлы — самый дешевый и наиболее оптимизированный доступный вычислительный ресурс.
Где разработчики могут получить доступ к дополнительной информации о субграфах работающих на основе Субпотоков и о Субпотоках?
The Substreams documentation will teach you how to build Substreams modules.
The Substreams-powered subgraphs documentation will show you how to package them for deployment on The Graph.
Новейший инструмент Substreams Codegen позволит Вам загрузить проект Substreams без использования какого-либо кода.
Какова роль модулей Rust в Субпотоках?
Модули Rust - это эквивалент мапперов AssemblyScript в субграфах. Они компилируются в WASM аналогичным образом, но модель программирования допускает параллельное выполнение. Они определяют, какие преобразования и агрегации необходимо применить к необработанным данным блокчейна.
See modules documentation for details.
Что делает Субпотоки компонуемыми?
При использовании Субпотоков компоновка происходит на уровне преобразования, что позволяет повторно использовать кэшированные модули.
Например, Алиса может создать ценовой модуль DEX, Боб может использовать его для создания агрегатора объемов для некоторых интересующих его токенов, а Лиза может объединить четыре отдельных ценовых модуля DEX, чтобы создать ценовой оракул. Один запрос Субпотоков упакует все эти отдельные модули, свяжет их вместе, чтобы предложить гораздо более уточненный поток данных. Затем этот поток может быть использован для заполнения субграфа и запрашиваться потребителями.
Как Вы можете создать и развернуть субграф, работающий на основе Субпотоков?
After defining a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in Subgraph Studio.
Где я могу найти примеры Субпотоков и субграфов, работающих на основе Субпотоков?
Вы можете посетить этот репозиторий на Github, чтобы найти примеры Субпотоков и субграфов, работающих на основе Субпотоков.
Что означают Субпотоки и субграфы, работающие на основе Субпотоков, для сети The Graph?
Интеграция обещает множество преимуществ, включая чрезвычайно высокопроизводительную индексацию и большую компонуемость за счет использования модулей сообщества и развития на их основе.