title |
---|
Hızlı Başlangıç |
Bu kılavuz, subgraph'inizi Subgraph Studio'ya veya barındırılan hizmete nasıl başlatacağınız, oluşturacağınız ve deploy edeceğiniz konusunda size hızlı bir şekilde yol gösterecektir.
Subgraph'ınızın desteklenen bir ağdan gelen verileri indeksleyeceğinden emin olun.
Bu rehber, aşağıdakilere sahip olduğunuzu varsayar:
- Seçtiğiniz ağ üzerinde bir akıllı sözleşme adresi
- Subgraph'ınızın kürasyonu için GRT
- Bir kripto cüzdanı
Subgraph Studio'ya gidin ve cüzdanınızı bağlayın.
Bağlandıktan sonra, "bir subgraph oluştur" seçeneğine tıklayarak başlayabilirsiniz. Tercih ettiğiniz ağı seçin ve devam et'e tıklayın.
Graph CLI JavaScript ile yazılmıştır ve kullanmak için npm
ya da yarn
yüklemiş olmanız gerekir.
Yerel makinenizde aşağıdaki komutlardan birini çalıştırın:
npm kullanımı:
npm install -g @graphprotocol/graph-cli
yarn kullanımı:
yarn global add @graphprotocol/graph-cli
Özel subgraph'inize yönelik komutları, Subgraph Studio subgraph'i sayfasında bulabilirsiniz.
Subgraph'ınızı başlattığınızda, CLI aracı sizden aşağıdaki bilgileri isteyecektir:
- Protokol: Subgraph'ınızın veri indeksleyeceği protokolü seçin
- Subgraph slug: Subgraph'ınız için bir ad oluşturun. Subgraph slug'ınız subgraph'ınız için bir tanımlayıcıdır.
- Subgraph'ınızın oluşturulacağı dizin: yerel dizininizi seçin
- Ethereum ağı (opsiyonel): Subgraph'ınızın hangi EVM uyumlu ağdan veri indeksleyeceğini belirtmeniz gerekebilir
- Sözleşme adresi: Veri sorgulamak istediğiniz akıllı sözleşme adresini bulun
- ABI: ABI otomatik olarak doldurulmuyorsa, JSON dosyası haline manuel olarak girmeniz gerekecektir
- Başlangıç Bloğu: Subgraph'ınız blok zinciri verilerini indekslerken zaman kazanmak için başlangıç bloğunu girmeniz önerilir. Başlangıç bloğunu, sözleşmenizin dağıtıldığı bloğu bularak bulabilirsiniz.
- Sözleşme Adı: Sözleşmenizin adını girin
- Sözleşme olaylarını varlıklar olarak indeksleyin: Yayılan her olay için subgraph'ınıza otomatik olarak eşlemeler ekleyeceğinden bunu true olarak ayarlamanız önerilir
- Başka bir sözleşme ekle (opsiyonel): Başka bir sözleşme ekleyebilirsiniz
Aşağıdaki komutu çalıştırarak subgraph'ınızı mevcut bir sözleşmeden başlatın:
graph init --studio <SUBGRAPH_SLUG>
Subgraph'ınızı başlatırken neyle karşılaşacağınıza dair bir örnek için aşağıdaki ekran görüntüsüne bakın:
Önceki komutlar, subgraph'ınızı oluşturmak için bir başlangıç noktası olarak kullanabileceğiniz bir subgraph iskeletini oluşturur. Subgraph'ta değişiklik yaparken, temel olarak üç dosya ile çalışacaksınız:
- Manifest (subgraph.yaml) - Manifest, subgraph'ınızın hangi veri kaynaklarını indeksleyeceğini tanımlar.
- Şema (schema.graphql) - GraphQL şeması, subgraph'tan hangi verileri almak istediğinizi tanımlar.
- AssemblyScript Eşleştirmeleri (mapping.ts) - Bu, veri kaynaklarınızdaki verileri şemada tanımlanan varlıklara çeviren koddur.
Subgraph'ınızı nasıl yazacağınıza dair daha fazla bilgi için, Subgraph Oluşturma.
Subgraph'ınız yazıldıktan sonra aşağıdaki komutları çalıştırın:
$ graph codegen
$ graph build
- Subgraph'ınızı doğrulayın ve dağıtın. Dağıtım anahtarı Subgraph Stüdyo'daki Subgraph sayfasında bulunabilir.
$ graph auth --studio <DEPLOY_KEY>
$ graph deploy --studio <SUBGRAPH_SLUG>
Sizden bir sürüm etiketi istenecektir. '0.0.1' gibi sürümler için semver kullanılması önemle tavsiye edilir. Bununla birlikte, sürüm olarak herhangi bir dizeyi seçmekte özgürsünüz: v1
, version1
, asdf
gibi.
Test alanı(playground) bölümünde örnek bir sorgu yaparak subgraph'ınızı test edebilirsiniz.
Kayıtlar, subgraph'ınızla ilgili herhangi bir hata olup olmadığını size söyleyecektir. Çalışan bir subgraph'ın kayıtları aşağıdaki gibi görünecektir:
Subgraph'iniz arızalanıyorsa GraphiQL Playground'u kullanarak subgraph durumunu sorgulayabilirsiniz. Aşağıdaki sorgudan yararlanabileceğinizi ve subgraph'iniz için dağıtım kimliğinizi girebileceğinizi unutmayın. Bu durumda, Qm...
dağıtım kimliğidir (bu, Subgraph sayfasında Ayrıntılar altında bulunabilir). Aşağıdaki sorgu, bir subgraph'in ne zaman başarısız olduğunu size söyleyecektir, böylece buna göre hata ayıklayabilirsiniz:
{
indexingStatuses(subgraphs: ["Qm..."]) {
node
synced
health
fatalError {
message
block {
number
hash
}
handler
}
nonFatalErrors {
message
block {
number
hash
}
handler
}
chains {
network
chainHeadBlock {
number
}
earliestBlock {
number
}
latestBlock {
number
}
lastHealthyBlock {
number
}
}
entityCount
}
}
Subgraph'ınız Subgraph Stüdyo'ya dağıtıldıktan, test ettikten ve kullanıma hazır hale geldikten sonra, bunu merkeziyetsiz ağda yayınlayabilirsiniz.
Subgraph Stüdyo'da subgraph'ınıza tıklayın. Subgraph'ın sayfasında, sağ üstteki yayınla düğmesine tıklayabileceksiniz.
Subgraph'inizi yayınlamak istediğiniz ağı seçin. Daha hızlı işlem hızları ve daha düşük gas maliyetlerinden yararlanmak için Arbitrum One'da subgraph'lerin yayınlanması önerilir.
Subgraph'ınızı sorgulayabilmeniz için önce İndeksleyicilerin bu subgraph üzerinde sorgu sunmaya başlaması gerekir. Bu süreci kolaylaştırmak için GRT kullanarak kendi subgraph'ınızı oluşturabilirsiniz.
Bu rehberin yazıldığı sırada, kendi subgraph'ınızın mümkün olan en kısa sürede indekslenmesini ve sorgulanabilir olmasını sağlamanız için 10.000 GRT ile kürate etmeniz önerilir.
Gas maliyetlerinden tasarruf etmek için, subgraph'ınızı Graph'ın merkeziyetsiz ağında yayınlarken bu düğmeyi seçerek subgraph'ınızı yayınladığınız işlemle aynı işlemde kürate edebilirsiniz:
Şimdi, subgraph'ınızın Sorgu URL'sine GraphQL sorguları göndererek onu sorgulayabilirsiniz; bu URL'yi sorgu düğmesine tıklayarak bulabilirsiniz.
API anahtarınız yoksa, geliştirme ve hazırlama için kullanılabilen ücretsiz, rate limit'li geçici sorgu URL'si aracılığıyla merkeziyetsiz uygulamanızdan sorgulama yapabilirsiniz.
Subgraph'inizden veri sorgulama hakkında daha fazla bilgi için daha fazlasını buradan okuyun.