Graph Hakkında
Bu makale, Graph’ın ne olduğunu ve nasıl başlayabileceğinizi açıklayacaktır.
Graph Nedir?
Graph, Ethereum ile başlayarak blok zincirlerinden veri indekslemek ve sorgulamak için merkeziyetsiz bir protokoldür. Doğrudan sorgulanması zor olan verileri sorgulamayı mümkün kılar.
Uniswap gibi karmaşık akıllı sözleşmelere sahip projeler ve Bored Ape Yacht Club gibi NFT girişimleri, Ethereum blok zincirinde veri depolayarak, doğrudan blok zincirinden temel veriler dışında herhangi bir şeyi okumayı gerçekten zorlaştırıyor.
Bored Ape Yacht Club söz konusu olduğunda, belirli bir Ape sahibini almak, bir Ape’in ID’sine göre içerik URI’sini veya toplam arzını almak gibi sözleşme üzerinde temel okuma işlemlerini bu okuma işlemleri programlandığı için yapabiliriz. Ancak toplama, arama, ilişkiler ve önemsiz olmayan filtreleme gibi daha gelişmiş gerçek dünya sorguları ve işlemleri mümkün değildir. Örneğin, belirli bir adrese ait Ape’leri sorgulamak ve özelliklerinden birine göre filtrelemek isteseydik, sözleşmenin kendisiyle doğrudan etkileşime girerek bu bilgiyi elde edemezdik.
Bu verileri almak için, transfer
şimdiye kadar yayılan her olayı işlemeniz, Token ID ve IPFS karmasını kullanarak IPFS'den meta verileri okumanız ve ardından toplamanız gerekir. Bu tür nispeten basit sorular için bile, bir tarayıcıda çalışan merkezi olmayan bir uygulamanın (dapp) yanıt alması saatler hatta günler alacaktır.
Ayrıca kendi sunucunuzu oluşturabilir, oradaki işlemleri işleyebilir, bunları bir veritabanına kaydedebilir ve verileri sorgulamak için hepsinin üzerine bir API uç noktası oluşturabilirsiniz. Ancak bu seçenek kaynak yoğundur, bakım gerektirir, tek bir arıza noktası sunar ve ademi merkeziyetçilik için gereken önemli güvenlik özelliklerini bozar.
Blockchain verilerini indekslemek gerçekten çok zor.
Kesinlik, zincir yeniden düzenlemeleri veya çözülmemiş bloklar gibi blok zinciri özellikleri, bu süreci daha da karmaşık hale getirir ve blok zinciri verilerinden doğru sorgu sonuçlarını almayı sadece zaman alıcı değil, kavramsal olarak da zorlaştırır.
Graph bunu, blok zinciri verilerinin performanslı ve verimli bir şekilde sorgulanmasını sağlayan ve endeksleyen merkezi olmayan bir protokolle çözer. Bu API’ler (dizine eklenmiş “subgraph’ler”) daha sonra standart bir GraphQL API ile sorgulanabilir. Bugün, aynı yeteneklere sahip merkezi olmayan bir protokolün yanı sıra barındırılan bir hizmet var. Her ikisi de Graph Node’un açık kaynak uygulamasıyla desteklenir.
Graph Nasıl Çalışır?
Graph, subgraph bildirimi olarak bilinen subgraph açıklamalarına dayalı olarak Ethereum verilerinin neyi ve nasıl endeksleyeceğini öğrenir. Subgraph açıklaması, bir subgraph’in ilgili akıllı sözleşmelerini, bu sözleşmelerdeki dikkat edilmesi gereken olayları ve olay verilerinin Graph’ın veritabanında depolayacağı verilerle nasıl eşleştirileceğini tanımlar.
Bir kez yazdığınızda subgraph manifest
, tanımı IPFS'de saklamak için Graph CLI'yi kullanırsınız ve dizin oluşturucuya bu subgraph için verileri dizinlemeye başlamasını söylersiniz.
Bu diyagram, Ethereum işlemleriyle ilgilenen bir subgraph bildirimi dağıtıldıktan sonra veri akışı hakkında daha fazla ayrıntı verir:
Akış şu adımları takip eder:
- Merkezi olmayan bir uygulama, akıllı bir sözleşmedeki bir işlem aracılığıyla Ethereum’a veri ekler.
- Akıllı sözleşme, işlemi işlerken bir veya daha fazla olay yayar.
- Graph Node, Ethereum’u yeni bloklar ve içerebilecekleri subgraph’iniz için sürekli olarak tarar.
- Graph Node, bu bloklarda subgraph’iniz için Ethereum olaylarını bulur ve sağladığınız eşleme işleyicilerini çalıştırır. Eşleme, Ethereum olaylarına yanıt olarak Graph Node’unun depoladığı veri varlıklarını oluşturan veya güncelleyen bir WASM modülüdür.
- Merkezi olmayan uygulama, node’un GraphQL uç noktasını kullanarak blok zincirinden indekslenen veriler için Graph Node’unu sorgular. Graph Node, GraphQL sorgularını, bu verileri almak için, mağazanın indeksleme yeteneklerini kullanarak, temel alınan veri deposu için sorgulara çevirir. Merkezi olmayan uygulama, bu verileri son kullanıcılar için Ethereum’da yeni işlemler yapmak için kullandıkları zengin bir kullanıcı arayüzünde görüntüler. Döngü tekrarlanır.
Sonraki Adımlar
Aşağıdaki bölümlerde, subgraph’lerin nasıl tanımlanacağı, bunların nasıl konuşlandırılacağı ve Graph Node’unun oluşturduğu dizinlerden verilerin nasıl sorgulanacağı hakkında daha fazla ayrıntıya gireceğiz.
Kendi subgraph’inizi yazmaya başlamadan önce, Graph Gezgini’ne bir göz atmak ve halihazırda konuşlandırılmış bazı subgraph’leri keşfetmek isteyebilirsiniz. Her subgraph’in sayfası, o subgraph’in verilerini GraphQL ile sorgulamanıza izin veren bir oyun alanı içerir.
İletişimde Kalalım!
Bu kılavuzla GRT’lerinizi stake etmenize yardımcı olabileceğimizi umuyoruz. Herhangi bir sorunuz veya daha fazla yardıma ihtiyacınız varsa, ya da sadece sohbet etmek istiyorsanız, bize her zaman Telegram ve Twitter aracılığıyla ulaşmaktan çekinmeyin!