Docs
Arama⌘ K
  • Ana sayfa
  • Graph Hakkında
  • Desteklenen Ağlar
  • Protocol Contracts
  • Subgraph'ler
    • Substream'ler
      • Token API
        • AI Suite
          • Endeksleme
            • Kaynaklar
              Endeksleme

              4 dakika

              Yeni Zincir Entegrasyonu

              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: Tüm Firehose entegrasyon çözümleri, Firehose temelinde geliştirilmiş ve graph-node tarafından doğal olarak desteklenen büyük ölçekli bir akış motoru olan Substreams’i içerir. Bu sayede paralelleştirilmiş dönüşümler gerçekleştirilebilir.

              Unutmamak gerekir ki, önerilen yaklaşım tüm yeni zincirler için yeni bir Firehose geliştirmektir. Ancak bu sadece EVM dışı zincirler için bir zorunluluktur.

              Entegrasyon Stratejileri

              1. EVM JSON-RPC

              İlgili blokzinciri EVM eşdeğeriyse ve istemci/düğüm standart EVM JSON-RPC API’sini dışarıya sunuyorsa, Graph Düğümü yeni zinciri endeksleyebilmelidir.

              EVM JSON-RPC’yi test etme

              Graph Düğümü’nün bir EVM zincirinden veri alabilmesi için RPC düğümünün şu EVM JSON-RPC metotlarını dışarıya sunması gerekir:

              • eth_getLogs
              • eth_call (geçmiş bloklar için gereklidir. EIP-1898 ile gelmiştir. Arşiv düğümü gerektirir)
              • eth_getBlockByNumber
              • eth_getBlockByHash
              • net_version
              • eth_getTransactionReceipt, bir JSON-RPC toplu talebinde
              • trace_filter (sınırlı izleme ve isteğe bağlı olarak Graph Düğümü için gerekli olabilir)

              2. Firehose Entegrasyonu

              Firehose⁠, yeni nesil bir veri çekme katmanıdır. Geçmiş verileri düz dosyalarda saklar ve gerçek zamanlı olarak akışa alır. Firehose teknolojisi, sorgulama tabanlı API çağrılarını, veri akışı sağlayan bir itme (push) modeliyle değiştirerek verileri endeksleme düğümüne daha hızlı iletir. Bu, senkronizasyon ve endeksleme hızını artırmaya yardımcı olur.

              NOT: StreamingFast ekibi tarafından yapılan tüm entegrasyonlar, Firehose çoğaltma protokolünün zincirin kod tabanına entegre edilmesini ve güncel tutulmasını içerir. StreamingFast, zincirin kodunda veya kendi kodunda yapılan değişiklikleri takip eder ve gerekli durumlarda ikili (binary) dosyalarını yayımlar. Bu süreç, protokol için Firehose/Substreams ikili dosyalarının yayımlanmasını, zincirin blok modeline uygun Substreams modüllerinin bakımını ve gerektiğinde ölçümleme (instrumentation) içeren blokzinciri düğümü ikili dosyalarının yayımlanmasını kapsar.

              EVM Dışı Zincirler İçin Entegrasyon

              Firehose’u zincirlere entegre etmenin temel yöntemi, bir RPC sorgulama stratejisi kullanmaktır. Sorgulama algoritmamız, yeni bir bloğun ne zaman geleceğini tahmin eder ve o zaman diliminde yeni blok olup olmadığını daha sık kontrol ederek düşük gecikmeli ve verimli bir çözüm sunar. Firehose’un entegrasyonu ve bakımı konusunda yardım almak için StreamingFast ekibiyle⁠ iletişime geçin. Yeni zincirler ve entegratörleri, Firehose ve Substreams’in ekosistemlerine kazandırdığı çatallanma farkındalığını⁠ ve yüksek derecede paralelleştirilmiş endeksleme yeteneklerini takdir edecektir.

              EVM (geth) Zincirleri İçin Özel Ölçümleme

              EVM zincirleri için, geth live-tracer⁠ kullanılarak daha derin bir veri seviyesine erişilebilir. Bu, Go-Ethereum ve StreamingFast iş birliğiyle, yüksek verimli ve kapsamlı bir işlem izleme sistemi oluşturmak amacıyla geliştirilmiştir. Live Tracer, en kapsamlı çözüm olup, Genişletilmiş⁠ blok detayları sağlar. Bu sayede, olayların durum değişikliklerine, çağrılara, üst çağrı ağaçlarına dayalı olarak örüntü eşleştirme, veya akıllı sözleşmelerdeki değişkenlerin güncellenmesine bağlı olarak olay tetikleme gibi yeni endeksleme yaklaşımları mümkün hale gelir.

              Base blok ve Extended blok karşılaştırması

              NOT: Firehose üzerine yapılan bu iyileştirme, zincirlerin geth version 1.13.0 ve üstü EVM motoru kullanmasını gerektirir.

              EVM değerlendirmeleri - JSON-RPC ve Firehose arasındaki farklılıklar

              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 Configuration

              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 Düğümü’nü Klonlayın⁠

              2. Bu satırı⁠ düzenleyerek yeni ağ adını ve EVM JSON-RPC veya Firehose uyumlu URL’yi ekleyin.

                Çevre değişkeni adının kendisini değiştirmeyin. Ağ adı farklı olsa bile ethereum olarak kalmalıdır.

              3. Bir IPFS düğümü çalıştırın veya The Graph tarafından kullanılanı kullanın: https://ipfs.thegraph.com⁠

              Substreams destekli Subgraph’ler

              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'da Düzenle⁠

              Zincir Entegrasyon Sürecine Genel BakışSözlük
              Bu sayfada
              • Entegrasyon Stratejileri
              • 1. EVM JSON-RPC
              • 2. Firehose Entegrasyonu
              • EVM değerlendirmeleri - JSON-RPC ve Firehose arasındaki farklılıklar
              • Graph Node Configuration
              • Substreams destekli Subgraph’ler
              The GraphStatusTestnetBrand AssetsForumSecurityPrivacy PolicyTerms of Service