Hello World (localhost + Docker)
Hello World (localhost + Docker)
Bu SubQuery Hello World hızlı başlangıcına hoş geldiniz. Hızlı başlangıç, docker'da çalışan varsayılan başlangıç projesini birkaç basit adımda nasıl elde edersiniz göstermeyi amaçlamaktadır.
Öğrenme hedefleri
Bu hızlı başlangıcın sonunda şunları yapmalıyız:
- gerekli önkoşulları anlamak
- temel ortak komutları anlamak
- localhost:3000'e gidebilmek ve oyun alanını görüntüleyebilmek
- Polkadot mainnet'in blok yüksekliğini almak için basit bir sorgu çalıştırın
Hedeflenen hedef kitle
Bu kılavuz, bazı geliştirme deneyimine sahip ve SubQuery hakkında daha fazla bilgi edinmek isteyen yeni geliştiricilere yöneliktir.
Video kılavuzu
Önkoşullar
İhtiyacınız olacak:
- yarn veya npm paket yöneticisi
- SubQuery CLI (
@subql/cli
) - Docker
Bu önkoşullardan herhangi birine sahip olup olmadığınızı görmek için terminalde aşağıdaki komutları çalıştırabilirsiniz.
yarn -v (or npm -v)
subql -v
docker -v
Daha ileri düzey kullanıcılar için aşağıdakileri kopyalayıp yapıştırın:
echo -e "My yarn version is:" `yarn -v` "\nMy subql version is:" `subql -v` "\nMy docker version is:" `docker -v`
Bu döndürülmelidir: (npm kullanıcıları için ipliği npm ile değiştirin) vv
Benim yarn versiyonum: 1.22.10
Benim subql versiyonum: @subql/cli/0.9.3 darwin-x64 node-v16.3.0
Benim docker versiyonum: Docker version 20.10.5, build 55c4c88
Yukarıdakileri alırsanız, gitmeye hazırsınız demektir. Değilse, yüklemek için şu bağlantıları izleyin:
1. Projeyi başlat
SubQuery ile başlarken ilk adım subql init
komutunu çalıştırmaktır. subqlHelloWorld
adıyla bir başlangıç projesi başlatalım. Yalnızca yazarın zorunlu olduğunu unutmayın. Aşağıda diğer her şey boş bırakılmıştır.
> subql init subqlHelloWorld
? Bir ağ seçin Polkadot
? Select a template project subql-starter Starter project for subquery
Cloning project... done
RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]:
Git repository [https://github.com/subquery/subql-starter]:
Fetching network genesis hash... done
Author [Ian He & Jay Ji]:
Description [This project can be use as a starting po...]:
Version [0.0.4]:
License [MIT]:
Preparing project... done
subqlHelloWorld is ready
Bu yeni dizine girmeyi unutmayın.
cd subqlHelloWorld
2. Bağımlılıkları yükleme
Şimdi çeşitli bağımlılıkları yüklemek için bir iplik veya düğüm yüklemesi yapın.
::: code-tabs @tab:active yarn shell yarn install
@tab npm bash npm install
:::
Bir örnek yarn install
> yarn install
yarn install v1.22.10
bilgi Kilit dosyası bulunamadı.
[1/4] 🔍 Paketleri çözme...
[2/4] 🚚 Paket getiriyor...
[3/4] 🔗 Bağımlılıkları bağlama...
[4/4] 🔨 Yeni paketler oluşturma...
başarı Kilit dosyası kaydedildi.
✨ 31.84'lerde bitti.
3. Kod oluşturma
Şimdi GraphQL şemasından Typescript oluşturmak için yarn codegen
çalıştırın.
::: code-tabs @tab:active yarn shell yarn codegen
@tab npm bash npm run-script codegen
:::
Bir örnekyarn codegen
> yarn codegen
yarn run v1.22.10
$ ./node_modules/.bin/subql codegen
===============================
---------Subql Codegen---------
===============================
* Schema StarterEntity generated !
* Modeller endeksi oluşturuldu!
* Oluşturulan türler dizini !
✨ 1.02'lerde bitti.
Warning Şema dosyasında değişiklikler yapıldığında, türler dizininizi yeniden oluşturmanız için lütfen yarn codegen
yeniden çalıştırmayı unutmayın.
4. Kod oluşturma
Bir sonraki adım, kodu yarn build
ile oluşturmaktır.
::: code-tabs @tab:active yarn shell yarn build
@tab npm bash npm run-script build
:::
Bir örnek yarn build
> iplik yapısı
ip çalıştırma v1.22.10
$ tsc -b
✨ 5.68'lerde bitti.
5. Docker'ı çalıştırın
Docker'ı kullanmak, gerekli tüm altyapı Docker görüntüsünde sağlanabildiğinden bu örneği çok hızlı bir şekilde çalıştırmanıza olanak tanır. docker-compose pull && liman işçisi-oluşturma
.
Bu, sonunda blokların getirildiği hayata her şeyi tekmeleyecek.
> #SNIPPET
subquery-node_1 | 2021-06-05T22:20:31.450Z <subql-node> INFO node started
subquery-node_1 | 2021-06-05T22:20:35.134Z <fetch> INFO fetch block [1, 100]
subqlhelloworld_graphql-engine_1 exited with code 0
subquery-node_1 | 2021-06-05T22:20:38.412Z <fetch> INFO fetch block [101, 200]
graphql-engine_1 | 2021-06-05T22:20:39.353Z <nestjs> INFO Starting Nest application...
graphql-engine_1 | 2021-06-05T22:20:39.382Z <nestjs> INFO AppModule dependencies initialized
graphql-engine_1 | 2021-06-05T22:20:39.382Z <nestjs> INFO ConfigureModule dependencies initialized
graphql-engine_1 | 2021-06-05T22:20:39.383Z <nestjs> INFO GraphqlModule dependencies initialized
graphql-engine_1 | 2021-06-05T22:20:39.809Z <nestjs> INFO Nest application successfully started
subquery-node_1 | 2021-06-05T22:20:41.122Z <fetch> INFO fetch block [201, 300]
graphql-engine_1 | 2021-06-05T22:20:43.244Z <express> INFO request completed
6. Oyun alanına göz atın
Http://localhost:3000/ gidin ve aşağıdaki sorguyu ekranın sol tarafına yapıştırın ve ardından oynat düğmesine basın.
{
query{
starterEntities(last:10, orderBy:FIELD1_ASC ){
nodes{
field1
}
}
}
}
Yerel ev üzerinde SubQuery oyun alanı.
Oyun parkındaki blok sayısı, terminaldeki blok sayısıyla (teknik olarak blok yüksekliği) de eşleşmelidir.
Özet
Bu hızlı başlangıçta, bir Docker ortamında bir başlangıç projesini çalışır durumda almak için temel adımları gösterdik ve ardından localhost:3000'e gittik ve ana ağ Polkadot ağının blok numarasını döndürmek için bir sorgu çalıştırdık.