Graph, Ethereum’dan başlayarak blok zincirlerinden gelen verileri endekslemek ve sorgulamak için merkezi olmayan bir protokoldür. Doğrudan sorgulanması zor olan verileri sorgulamayı mümkün kılar. Graph token (GRT) ise GRAPH platformunun kripto para birimidir.
Örneğin, popüler CryptoKitties dApp ile aşağıdaki soruları sormak nispeten daha kolaydır :
Belirli bir Ethereum hesabının kaç CryptoKitties var ?
Belirli bir CryptoKitty ne zaman doğdu ?
Bunun nedeni, bu okuma kalıplarının doğrudan kontrat tarafından sunulan balanceOf ve getKitty yöntemleri tarafından desteklenmesidir.
Ancak, diğer soruların cevaplanması daha zordur :
2018 Ocak ve Şubat ayları arasında doğan CryptoKitties’in sahipleri kimlerdir ?
Bu soruyu cevaplamak için, tüm doğum olaylarını işlemeniz ve ardından doğan her CryptoKitty için ownerOf yöntemini çağırmanız gerekir.
Bu nispeten basit soru için bile, bir tarayıcıda çalışan merkezi olmayan bir uygulamanın (dApp) yanıt alması saatler, hatta günler alır. Blockchain verilerini endekslemek zordur. Kesinlik, zincir yeniden yapılanmaları veya açılmamış bloklar gibi blok zinciri özellikleri, bu süreci daha da karmaşık hale getirir ve sadece zaman alıcı olmakla kalmaz, aynı zamanda blok zinciri verilerinden doğru sorgu sonuçlarını almayı kavramsal olarak zorlaştırır.
Graph ise bunu, blockchain verilerini indeksleyip barındıran bir hizmetle çözüyor. Bu indeksler (alt grafikler yada diğer adı ile subgraph) daha sonra standart bir GraphQL API ile sorgulanabilir. Gelecekte, barındırılan hizmet, aynı yeteneklere sahip tamamen merkezi olmayan bir protokole dönüşecek.
Graph Nasıl Çalışır ?
Grafik, alt grafik bildirimi olarak bilinen alt grafik açıklamalarına dayanarak Ethereum verilerinin neyi ve nasıl indeksleneceğini öğrenir. Alt grafik açıklaması, bir alt grafik için akıllı sözleşmeleri, bu sözleşmelerde ki dikkat edilecek olayları ve olay verilerinin Graph veritabanında saklayacağı verilerle nasıl eşleneceğini tanımlar.
Bir alt grafik (subgraph) bildirimi yazdıktan sonra, tanımı IPFS’de saklamak için Graph CLI’yi kullanırsınız ve barındırılan hizmete bu alt grafik için verileri endekslemeye başlamasını söylersiniz.
Bu diyagram, Ethereum işlemleriyle ilgilenen bir alt grafik bildirimi dağıtıldıktan sonra veri akışı hakkında daha fazla ayrıntı verir.
Akış şu adımları izler :
* Merkezi olmayan bir uygulama, akıllı bir sözleşmeyle işlem yaparak Ethereum’a veri ekler.
* Akıllı sözleşme, işlemi işlerken bir veya daha fazla olay yayar.
* Ethereum’u yeni bloklar ve içerebilecekleri alt grafiğiniz için sürekli olarak tarar.
Bu bloklarda alt grafiğiniz için Ethereum olaylarını bulur ve sağladığınız haritalama işleyicilerini çalıştırır. Eşleştirme, Ethereum olaylarına yanıt olarak Graph Node’un depoladığı veri varlıklarını oluşturan veya güncelleyen bir WASM modülüdür.
Merkezi olmayan uygulama, düğümün GraphQL uç noktasını kullanarak blok zincirinden indekslenen veriler için düğümü sorgular. Sırayla GraphQL sorgularını, bu verileri almak için temel veri deposu için sorgulara çevirir ve mağazanın indeksleme yeteneklerinden yararlanır.
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 ve döngü bu şekilde devam eder.
Kısacası ; internet evreninde bilgiye ulaşmak için nasıl Google’ı kullanıyorsak , Graph’ı da kripto dünyasında daha güvenli veri kaynaklarına ulaşmak ve bu kaynakları daha iyi yönlendirebilmek amacıyla Blockcahin’ler üzerinde arama yaparak kullanabiliyoruz.