Cointime

Uygulamayı indirmek için QR kodu tarayın
iOS & Android

Alt grafiklerin optimizasyonu: yeni özellikler ve sonraki adımlar

Validated Project

Graph Builders Ofis Saatleri #50, yeni ve gelecek özellikleri vurgulayan alt grafik vitrinlerini içerir.

TL;DR: Modüler, yeniden kullanılabilir alt grafiklerin gelecekteki potansiyelini ve The Graph ekosistemi iyileştirmeleri kapsamında IPFS güvenilirliği üzerindeki etkisini tartışırken, zaman serisi toplama, dizin parametre filtreleme ve Ethereum çağrılarını paralelleştirme dahil olmak üzere alt grafik teknolojisindeki en son gelişmeler hakkında bilgi edinin.

Graph ekosistemi hızla büyüyor ve geliştiricilere alt grafikleri oluşturmak, yönetmek ve optimize etmek için daha güçlü araçlar sağlıyor. The Graph Builders Office Hours'un 50. Bölümünde Marcus Rein ve Alex Pakalniskis (hem Edge hem de Node) alt grafik teknolojisindeki gelişmeleri tartışıyor.

Bu makale, merkezi olmayan ağlardaki alt grafiklerin önemli güncellemelerini, gelecek gelişmelerini ve gelecekteki potansiyelini özetlemektedir.

---- Alex’in konuşma notları

Video linki: https://youtu.be/AOEVsx6u_mc

Zaman serileri ve toplamanın tanıtılması, alt grafik teknolojisindeki en önemli güncellemelerden biridir. Spesifikasyon sürümü 1.1.0'dan itibaren kullanıma sunulan bu deneysel özellik, geliştiricilerin ham veri noktalarını zaman serileri olarak depolamasına ve bu veri noktalarının zaman içinde nasıl toplandığını tanımlamasına olanak tanır.

  • Zaman Serisi Varlıkları: Bu varlıklar, zaman damgalarını kullanarak veri noktalarını kaydeder ve değiştirilemez. GraphQL şemasında @entity(timeseries: true) kullanılarak tanımlanırlar. Kimlik otomatik olarak Int8 türüne ayarlanır ve zaman damgası otomatik olarak geçerli bloğun zaman damgasına ayarlanır.
  • Toplama varlıkları: Bu varlıklar, her saat veya günde bir zaman serisi veri noktalarında önceden belirlenmiş hesaplamalar gerçekleştirir ve sonuçları GraphQL aracılığıyla kolay erişim için saklar. Toplamalar @aggregation ek açıklaması kullanılarak tanımlanır.

örnek:

type Data @entity(timeseries: true) { id: Int8! timestamp: Timestamp! price: BigDecimal! } type Stats @aggregation(intervals: ["hour", "day"], source: "Data") { id: Int8! timestamp: Timestamp! sum: BigDecimal! @aggregate(fn: "sum", arg: "price") }

  • Ham veri noktaları: Bu şemanın eşlemesi, normal varlıklara benzer şekilde Veri varlıkları oluşturarak veri noktaları ekleyecektir. Grafik düğümü, belirli bir saat veya günün sonunda İstatistik toplamasını otomatik olarak dolduracaktır.
  • Boyutlar ve Toplamalar: Toplamalar, boyutları (verileri gruplayan alanlar) ve toplamaları (hesaplamalar gerçekleştiren @aggregate yönergelerine sahip alanlar) içerebilir. Örneğin, TokenStats toplaması, veri noktalarını tokene göre gruplandırabilir ve toplam hacmi ve en son fiyatı USD cinsinden hesaplayabilir.

Toplantı sırasında Marcus önemli bir soru sordu: "Bu toplamalar, farklı zaman aralıklarında biriken verileri yönetme karmaşıklığının üstesinden nasıl geliyor?"

Alex yanıtladı: "Cevap, birikim etiketlemeyi destekleyen @aggregate direktifinin esnekliğinde yatıyor. Bu, geliştiricinin, toplamanın yalnızca aralık içindeki verileri toplayıp toplamadığına veya zaman içinde değerleri biriktirmeye devam edip etmediğine karar vermesine olanak tanır."

Örnek GraphQL sorgusu

{ stats(interval: "hour", where: { timestamp_gt: 1704085200 }) { id timestamp sum } }

Değerlerin toplamını almak için zaman damgası 1704085200'den büyük olan veri noktalarına ilişkin saatlik istatistikleri sorgulayın.

Dizin parametresi filtreleme, geliştiricilerin, dizin parametresinin değerine göre blockchain olaylarını hassas bir şekilde filtrelemesine olanak tanıyan başka bir çığır açan özelliktir. Bu özellik, veri şişkinliğini azaltarak ve alt grafiklerin hızını artırarak daha verimli veri yönetimi sağlar.

Örneğin, token transfer olaylarında geliştiriciler artık hangi adreslerin izleneceğini belirleyebilir ve yalnızca ilgili verilerin indekslenmesini sağlayabilirler. Bu ön filtreleme özelliği, özellikle bir alt grafiğin büyük miktarda veriyi işlediği ancak yalnızca belirli bilgiler gerektirdiği durumlarda kullanışlıdır.

örnek:

eventHandlers: - event: Transfer(indexed address,indexed address,uint256) handler: handleDirectedTransfer topic1: ['0xAddressA'] topic2: ['0xAddressB']

Bu ayar, alt grafiğin yalnızca belirtilen adresler arasındaki işlemleri dizine eklemesini ve böylece kaynak kullanımını optimize etmesini sağlar.

ETH çağrıları, özellikle büyük miktarda veriyle uğraşırken geleneksel olarak alt grafik performansının darboğazı olmuştur. Bu sorunu çözmek için The Graph, bildirimsel ETH çağrılarını tanıttı ve bu çağrıların paralel olarak yürütülmesine izin verdi. Bu iyileştirme, özellikle yüksek işlem ortamlarında alt grafiklerin verimliliğini artırır.

Henüz erken aşamalarında olmasına rağmen, ETH çağrılarını paralelleştirme yeteneği, alt grafikleri daha duyarlı hale getirmeyi ve karmaşık işlemleri daha hızlı yönetebilmeyi vaat ediyor.

Lütfen unutmayın: Edge&Node, 23 Eylül 2024'ten itibaren artık bu işle meşgul olmayacaktır.

örnek:

calls: global0X128: Pool[event.address].feeGrowthGlobal0X128() global1X128: Pool[event.address].feeGrowthGlobal1X128()

Bu kurulum, ETH çağrılarını paralel olarak yürüterek alt grafiğin daha duyarlı olmasını ve karmaşık işlemleri daha hızlı gerçekleştirebilmesini sağlar.

Marcus bu özelliğin önemini vurgulayarak şu soruyu sordu: "Yüksek frekanslı ETH çağrılarıyla uğraşırken ne tür performans iyileştirmeleri bekleyebiliriz?"

Alex şöyle açıklıyor: "Kesin ölçümler hâlâ toplanıyor olsa da, özellikle büyük miktarda veriyi işleyen alt grafiklerde beklenen iyileştirmeler çok büyük."

Marcus bu özelliğin önemini vurgulayarak şu soruyu sordu: "Yüksek frekanslı ETH çağrılarıyla uğraşırken ne tür performans iyileştirmeleri bekleyebiliriz?"

Alex şöyle açıklıyor: "Kesin ölçümler hâlâ toplanıyor olsa da, özellikle büyük miktarda veriyi işleyen alt grafiklerde beklenen iyileştirmeler çok büyük."

En heyecan verici beklentilerden biri, modüler, yeniden kullanılabilir veri araçları olarak alt grafik kavramıdır. Bu, geliştiricilerin mevcut alt grafikleri veya alt grafik bileşenlerini veri kaynakları olarak kullanmalarına olanak tanıyacak ve bunlar daha sonra belirli ihtiyaçları karşılayacak şekilde genişletilip özelleştirilebilecek. Bu modüler yaklaşım, geliştiricilerin birbirlerinin çalışmalarından yararlanarak daha bağlantılı ve verimli bir ekosistem oluşturmasına olanak tanıyacak.

Bu değişim, alt grafikleri kullanma şeklimizde devrim yaratarak onları geliştiricilerin karmaşık uygulamalar oluşturmak için birleştirebileceği esnek yapı taşlarına dönüştürebilir. Alt grafiklerdeki yeniden kullanılabilirlik ve şekillendirilebilirlik potansiyeli, merkezi olmayan ağlarda yenilik ve işbirliği için yeni yollar açıyor.

örnek:

dataSources: - kind: subgraph name: Foo network: mainnet ağ kaynağı source: id: 'Qmblahblahblah' startBlock: 123456 mapping: kind: subgraph/entities apiVersion: 0.0.y language: wasm/assemblyscript entityHandlers: - entity: FooSpecificEntity handler: handleFooSpecificEntity - entity: SomeOtherFooEntity handler: handleSomeOtherFooEntity file: ./src/fooMappings.ts

Ana ağdaki 'Foo' varlığı için alt grafik veri kaynağını 123456 bloğundan başlayarak ayarlayın ve özel varlık işleyicisini AssemblyScript ile eşleyin.

Marcus düşündürücü bir soru sordu: "Bu modülerlik, geliştiricilerin projeler arasında işbirliği yapma şeklini nasıl etkileyecek?"

Alex yanıtladı: "Modüler alt grafik yaklaşımı, yeniden kullanımı ve işbirliğini teşvik ederek geliştiricilerin birbirlerinin çalışmalarının üzerine inşa etmelerine olanak tanıyarak daha uyumlu ve birbirine bağlı merkezi olmayan uygulamalarla sonuçlanır."

Diğer güncellemeler kadar gösterişli olmasa da, IPFS'nin sağlamlığını artırmaya yönelik devam eden çalışmalar, The Graph altyapısının güvenilirliğini ve ölçeklenebilirliğini sağlamak açısından kritik öneme sahiptir. IPFS Ağ Geçidi API'sine geçiş ve alt grafik tanımı dosyalarının dosya barındırma işleminin isteğe bağlı veri kaynaklarından ayrılması, çakışmaların azaltılmasına ve genel performansın iyileştirilmesine yardımcı olacaktır.

Bu güncellemelere ek olarak Graph ekosistemi, alt grafikler için eklenti sistemi gibi yenilikçi fikirleri araştırıyor. Sistem, geliştiricilerin alt grafik işlevselliğini minimum çabayla genişletmesine olanak tanıyacak ve ENS alan adı çözümlemesi veya merkezi olmayan oracle fiyat beslemeleri gibi işlevleri entegre edebilecek.

  • Eklentiler: Geliştiriciler, alt grafiğin işlevselliğini ENS etki alanı araması veya fiyat geri bildirimi gibi yeni özelliklerle genişleten alt grafik bildiriminde eklentiler belirtebilirler.

örnek:

plugIns: - ENS - Chronicle

Gelişmiş ad çözümlemesi ve geçmiş veri özellikleriyle alt grafik işlevselliğini genişletmek için ENS ve Chronicle eklentilerini entegre edin.

Tartışma sırasında Marcus şunu sordu: "Bu eklenti sistemi geliştiriciler için hangi yeni olanakların kapısını açıyor?"

Alex cevap verdi: "Eklenti sisteminin, alt grafik işlevselliğini genişletme eşiğini önemli ölçüde düşürmesi ve merkezi olmayan Web'de daha özelleştirilmiş ve yenilikçi çözümlere olanak sağlaması bekleniyor."

Toplama ve filtreleme geliştirmelerinden modüler alt grafik potansiyeline kadar bu gelişmeler, geliştiricilere geleceğin merkezi olmayan uygulamalarını oluşturmak için güçlü araçlar sağlayacak.

Alex cevap verdi: "Eklenti sisteminin, alt grafik işlevselliğini genişletme eşiğini önemli ölçüde düşürmesi ve merkezi olmayan Web'de daha özelleştirilmiş ve yenilikçi çözümlere olanak sağlaması bekleniyor."

Toplama ve filtreleme geliştirmelerinden modüler alt grafik potansiyeline kadar bu gelişmeler, geliştiricilere geleceğin merkezi olmayan uygulamalarını oluşturmak için güçlü araçlar sağlayacak.

Güncel kalmak veya bu gelişmeler hakkında daha derin bir anlayışa sahip olmak için X'teki Graph Builders topluluğuyla bağlantı kurun, Graph BuildersDAO Discord'daki kaynakları keşfedin ve Graph Builders Ofis Saatleri çalma listesi aracılığıyla tüm tartışmaları takip edin.

  • Graph Network'te alt grafikler nasıl değerlendirilir ve sorgulanır?
  • Subgraph Studio, alt grafikler oluşturmak için kolay seçim

(İlgili mesleki terimler, yorumlar, kod kütüphaneleri, köprüler vb. için lütfen blogu veya genel hesabı takip ederek bulun)

💡 Bu makale aşağıdaki soruları yanıtlıyor:

- Alt grafiklere hangi yeni özellikler eklendi?

- Gelecekteki alt planlar için hangi işlevler planlanıyor?

- Zaman serileri ve toplamalar geliştiricilerin ne yapmasına olanak sağlar?

- İndeks parametre filtreleme nedir ve ne işe yarar?

- Alt grafikler gelecekte nasıl modüler hale getirilip yeniden kullanılabilir?

#web3data #blockchaindataindex #TheGraph

Yorumlar

Tüm Yorumlar

Önerilen okuma