Graph Hakkında

Reading time: 4 min

The Graph Nedir?

Bu bölüme bağlantı

The Graph, blokzinciri verilerinin pürüzsüz bir şekilde sorgulanmasını ve endekslenmesini sağlayan güçlü bir merkeziyetsiz protokoldür. Blokzinciri verilerini sorgulama sürecini basitleştirerek merkeziyetsiz uygulama (dapp) geliştirmeyi daha hızlı ve daha kolay hale getirir.

Karmaşık akıllı sözleşmelere sahip Uniswap gibi projeler ve Bored Ape Yacht Club gibi NFT girişimleri Ethereum blokzinciri üzerinde veri depolar. Bu akıllı sözleşmelerin karmaşık doğası, temel verilerin ötesinde herhangi bir şeyin doğrudan blokzincirinden okunmasını ciddi derecede zorlaştırır.

The Graph Olmadığında Karşılaşılan Zorluklar

Bu bölüme bağlantı

Yukarıda bahsedilen Bored Ape Yacht Club örneğinde, sözleşmenin okuma fonksiyonlarını kullanarak temel veri sorgulama işlemleri gerçekleştirebilirsiniz. Belirli bir Ape'in sahibini, ID numarasına göre Ape'in içerik URI'sini, ya da toplam arzı sorgulayabilirsiniz.

Bu neden bir sorun?

Bu bölüme bağlantı

Bu basit sorulara yanıt almak, tarayıcıda çalışan bir merkeziyetsiz uygulama (dapp) için **saatler, hatta günler ** sürebilir.

Alternatif olarak, kendi sunucunuzu kurup işlemleri işleyebilir, bunları bir veri tabanında depolayabilir ve veriyi sorgulamak için bir API uç noktası oluşturabilirsiniz. Ancak, bu seçenek kaynak açısından maliyetli olup sürekli bakım gerektirir, tek bir arıza noktası oluşturur ve merkeziyetsizliğin gerektirdiği önemli güvenlik özelliklerini ortadan kaldırır.

Finalite, zincir yeniden organizasyonu ve "uncle" bloklar gibi blokzinciri özellikleri, sürece karmaşıklık katar ve doğru sorgu sonuçlarını blokzinciri verilerinden elde etmeyi zaman alıcı hale getirip kavramsal olarak zorlaştırır.

The Graph'in Sağladığı Çözüm

Bu bölüme bağlantı

The Graph, blokzinciri verilerini endeksleyip verimli, yüksek performanslı sorgulama imkanı sunan merkeziyetsiz bir protokol ile bu zorluğu çözer. Bu endekslenmiş API'lar ("subgraph'ler"), standart bir GraphQL API'ı ile sorgulanabilir.

Artık, bu süreci mümkün kılan, Graph Düğümü'nün açık kaynaklı implementasyonuna dayanan merkeziyetsiz bir protokol mevcut.

The Graph'in Çalışma Şekli

Bu bölüme bağlantı

Blokzinciri verilerini endekslemek oldukça zordur, ancak The Graph bunu kolaylaştırır. The Graph, Ethereum verilerini nasıl endeksleyeceğini subgraph'ler kullanarak öğrenir. Subgraph'ler, blokzinciri verileri üzerine kurulu özel yapım API'lerdir; bu API'ler blokzincirinden veriyi çıkarır, işler ve sorguların GraphQL ile sorunsuz bir şekilde yapılabilmesi için depolar.

  • The Graph, subgraph tanımlarını kullanır; bu tanımlar subgraph içinde subgraph manifestosu olarak bilinir.

  • Subgraph tanımı, bir subgraph için ilgili akıllı sözleşmeleri, bu sözleşmelerde odaklanılacak olayları ve bu olay verilerinin The Graph'in veritabanında depolayacağı verilere nasıl eşleneceğini açıklar.

  • Subgraph oluştururken bir subgraph manifestosu yazmanız gerekir.

  • Subgraph manifestosunu yazdıktan sonra, Graph CLI'yi kullanarak tanımı IPFS'e depolayabilir ve bir Indexer'a bu subgraph için veri endekslemeye başlaması talimatını verebilirsiniz.

Aşağıdaki diyagramda, subgraph manifestosunun Ethereum blokzinciri üzerinde yapılan işlemler aracılığıyla yayına alınmasından sonra veri akışının nasıl ilerlediğine dair daha detaylı bilgi bulabilirsiniz.

The Graph'in, Graph Düğümü'nü kullanarak veri tüketicilerine sorgu sunma sürecini açıklayan bir grafik

Veri akışı şu şekildedir:

  1. Bir dapp, bir akıllı sözleşme üzerinde işlem yaparak Ethereum'a veri ekler.
  2. Akıllı sözleşme, işlemi işlerken bir veya daha fazla olay yayımlar.
  3. Graph Düğümü, Ethereum blokzincirini yeni blokları sürekli olarak tarar ve blokların subgraph'iniz için endekslenmesi gereken verileri içerip içermediğini kontrol eder.
  4. Graph Düğümü, bu bloklarda subgraph'iniz için Ethereum olaylarını bulur ve sağladığınız eşleme işleyicilerini (mapping handler) çalıştırır. Eşleme (mapping), Ethereum olaylarına karşılık olarak Graph Düğümünün depoladığı veri varlıklarını oluşturan veya güncelleyen bir WASM modülüdür.
  5. Dapp, blokzincirinden endekslenen veriler için Graph Düğümüne, düğümün GraphQL uç noktası üzerinden sorgu gönderir. Graph Düğümü ise veriyi getirmek için bu sorguları kendi veri deposuna yönelik sorgulara çevirir ve depolama sisteminin endeksleme kabiliyetlerini kullanarak bu verileri alır. Dapp, bu verileri son kullanıcılar için zengin bir arayüzde gösterir ve kullanıcılar bu arayüzü kullanarak Ethereum'da yeni işlemler gerçekleştirir. Bu döngü tekrarlanır.

Sonraki Adımlar

Bu bölüme bağlantı

Sonraki bölümler, subgraph'lere, yayına alınmalarına ve veri sorgulama sürecine daha derin bir bakış sunmaktadır.

Kendi subgraph'inizi yazmadan önce, Graph Explorer'ı keşfetmeniz ve halihazırda yayına alınmış bazı subgraph'leri incelemeniz önerilir. Her subgraph'in sayfasında bir GraphQL playground bulunur. Bu aracı kullanarak subgraph'in verilerine erişebilir ve sorgulamalar yapabilirsiniz.

Sayfayı Düzenle

Önceki
Başlayalım
Sonraki
Desteklenen Ağlar
Sayfayı Düzenle