4 dakika
Graph Hakkında
The Graph Nedir?
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.
Temeller
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
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 işlemler, okuma fonksiyonlarının doğrudan akıllı sözleşmeye kodlanmış olması sayesinde mümkündür. Ancak agregasyon, arama, ilişkisel veriler ve daha karmaşık filtrelemeler ile birlikte daha ileri düzey, spesifik ve gerçek dünyada karşılaşılan işlemlerin doğrudan akıllı sözleşmeler üzerinden yapılması mümkün değildir.
-
Örneğin, belirli bir adresin sahip olduğu Ape’leri sorgulamak ve aramanızı belirli bir özelliğe göre daraltmak isterseniz, bu bilgiyi doğrudan sözleşme ile etkileşime girerek elde edemezsiniz.
-
Daha fazla veri elde etmek için, şimdiye kadar yayımlanmış her bir
transfer
olayını işlemek, Token ID ve IPFS hash’ini kullanarak metaveriyi IPFS’ten okumak ve ardından bunları bir araya getirmeniz gerekir.
Bu neden bir sorun?
Bu basit sorulara yanıt almak, tarayıcıda çalışan bir merkeziyetsiz uygulama (dapp) için **saatler, hatta günler ** sürebilir.
Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is resource intensive, needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization.
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
The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed “Subgraphs”) can then be queried with a standard GraphQL API.
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
Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL.
Ayrıntılar
-
The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph.
-
The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database.
-
When creating a Subgraph, you need to write a Subgraph manifest.
-
After writing the
subgraph manifest
, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph.
The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions.

Veri akışı şu şekildedir:
- Bir dapp, bir akıllı sözleşme üzerinde işlem yaparak Ethereum’a veri ekler.
- Akıllı sözleşme, işlemi işlerken bir veya daha fazla olay yayımlar.
- Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain.
- Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events.
- 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
The following sections provide a more in-depth look at Subgraphs, their deployment and data querying.
Before you write your own Subgraph, it’s recommended to explore Graph Explorer and review some of the already deployed Subgraphs. Each Subgraph’s page includes a GraphQL playground, allowing you to query its data.