Docs
Поиск⌘ K
  • Главная страница
  • О The Graph
  • Поддерживаемые сети
  • Protocol Contracts
  • Субграфы
    • Субпотоки
      • Token API
        • AI Suite
          • Индексирование
            • Ресурсы
              Индексирование

              4 минуты

              Интеграция новых чейнов

              Chains can bring Subgraph support to their ecosystem by starting a new graph-node integration. Subgraphs are a powerful indexing tool opening a world of possibilities for developers. Graph Node already indexes data from the chains listed here. If you are interested in a new integration, there are 2 integration strategies:

              1. EVM JSON-RPC
              2. Firehose: все решения по интеграции Firehose включают Substreams, крупномасштабный механизм потоковой передачи на базе Firehose со встроенной поддержкой graph-node, позволяющий выполнять распараллеленные преобразования.

              Обратите внимание на то, что хотя рекомендуемый подход заключается в разработке нового Firehose для всех новых чейнов, он требуется только для чейнов, не поддерживающих EVM.

              Интеграционные стратегии

              1. EVM JSON-RPC

              Если блокчейн эквивалентен EVM и клиент/нода предоставляет стандартный API EVM JSON-RPC, Graph Node должен иметь возможность индексировать новый чейн.

              Тестирование EVM JSON-RPC

              Чтобы Graph Node мог принимать данные из чейна EVM, нода RPC должна предоставлять следующие методы EVM JSON-RPC:

              • eth_getLogs
              • eth_call (для исторических блоков, с EIP-1898 - требуется архивная нода)
              • eth_getBlockByNumber
              • eth_getBlockByHash
              • net_version
              • eth_getTransactionReceipt в пакетном запросе JSON-RPC
              • trace_filter (ограниченное отслеживание, возможно, требуется для Graph Node)

              2. Интеграция Firehose

              Firehose⁠ — это слой извлечения нового поколения. Он собирает историю в плоских файлах и передает ее в реальном времени. Технология Firehose заменяет эти вызовы API опросов потоком данных с использованием модели push, которая быстрее отправляет данные на ноду индексирования. Это помогает увеличить скорость синхронизации и индексирования.

              ПРИМЕЧАНИЕ: Все интеграции, выполненные командой StreamingFast, включают обслуживание протокола репликации Firehose в кодовой базе чейна. StreamingFast отслеживает любые изменения и выпускает двоичные файлы, когда Вы изменяете код и когда StreamingFast изменяет код. Сюда входит выпуск двоичных файлов Firehose/Substreams для протокола, поддержка модулей Substreams для блочной модели чейна и выпуск двоичных файлов для ноды блокчейна с оснащением инструментами, если это необходимо.

              Интеграция для чейнов, не поддерживающих EVM

              Основной метод интеграции Firehose в чейны — использование стратегии опроса RPC. Наш алгоритм опроса предсказывает, когда поступит новый блок, и увеличивает скорость проверки наличия нового блока в ближайшее время, что делает его эффективным решением с очень низкой задержкой. За помощью по интеграции и обслуживанию Firehose обращайтесь к [команде StreamingFast] (https://www.streamingfast.io/firehose-integration-program⁠). Новые чейны и их интеграторы по достоинству оценят осведомленность о форках⁠ и огромные возможности параллельного индексирования, которые Firehose и Substreams привносят в их экосистему.

              Специальная оборудование для чейнов EVM (geth)

              Для чейнов EVM существует более глубокий уровень данных, который может быть достигнут с помощью geth live-tracer⁠, сотрудничества между Go-Ethereum и StreamingFast, для создания высокопроизводительной и богатой системы отслеживания транзакций. Live Tracer — наиболее комплексное решение, позволяющее получать Расширенные⁠ детали блоков. Это позволяет использовать новые парадигмы индексирования, такие как сопоставление шаблонов событий на основе изменений состояния, вызовов, деревьев вызовов более высокого уровня или запуск событий на основе изменений фактических переменных в смарт-контракте.

              Базовый блок vs Расширенный блок

              ПРИМЕЧАНИЕ: Для этого улучшения Firehose требуется, чтобы в чейнах использовался движок EVM geth version 1.13.0 и выше.

              Рекомендации по EVM — разница между JSON-RPC & Firehose

              While the JSON-RPC and Firehose are both suitable for Subgraphs, a Firehose is always required for developers wanting to build with Substreams⁠. Supporting Substreams allows developers to build Substreams-powered Subgraphs for the new chain, and has the potential to improve the performance of your Subgraphs. Additionally, Firehose — as a drop-in replacement for the JSON-RPC extraction layer of graph-node — reduces by 90% the number of RPC calls required for general indexing.

              • All those getLogs calls and roundtrips get replaced by a single stream arriving into the heart of graph-node; a single block model for all Subgraphs it processes.

              NOTE: A Firehose-based integration for EVM chains will still require Indexers to run the chain’s archive RPC node to properly index Subgraphs. This is due to the Firehose’s inability to provide smart contract state typically accessible by the eth_call RPC method. (It’s worth reminding that eth_calls are not a good practice for developers)

              Конфигурация Graph Node

              Configuring Graph Node is as easy as preparing your local environment. Once your local environment is set, you can test the integration by locally deploying a Subgraph.

              1. Клонировать Graph Node⁠

              2. Измените эту строку⁠, чтобы включить новое имя сети и совместимый с EVM JSON-RPC или Firehose URL.

                Не меняйте само имя переменной env. Оно должно оставаться ethereum, даже если имя сети отличается.

              3. Запустите ноду IPFS или используйте ту, которая используется The Graph: https://ipfs.thegraph.com⁠

              Субграфы, работающие на основе субпотоков (Substreams)

              For StreamingFast-led Firehose/Substreams integrations, basic support for foundational Substreams modules (e.g. decoded transactions, logs and smart-contract events) and Substreams codegen tools are included. These tools enable the ability to enable Substreams-powered Subgraphs. Follow the How-To Guide⁠ and run substreams codegen subgraph to experience the codegen tools for yourself.

              ⁠Редактировать на GitHub⁠

              Chain Integration Process OverviewГлоссарий
              На этой странице
              • Интеграционные стратегии
              • 1. EVM JSON-RPC
              • 2. Интеграция Firehose
              • Рекомендации по EVM — разница между JSON-RPC & Firehose
              • Конфигурация Graph Node
              • Субграфы, работающие на основе субпотоков (Substreams)
              The GraphСтатусТестовая сетьБрундовые ресурсыФорумБезопасностьПолитика конфиденциальностиУсловия обслуживания