Zum Hauptinhalt springen

Hello World (localhost & Docker)

SubQuery TeamUngefähr 3 min

Hello World (localhost & Docker)

Herzlich Willkommen bei dieser Schnellstartanleitung für SubQuery Hallo die Welt. Der Schnellstart soll Ihnen zeigen, wie Sie in wenigen einfachen Schritten das Standard-Starterprojekt in Docker zum Laufen bringen.

Lernziele

Am Ende dieses Schnellstarts sollten Sie:

  • die erforderlichen Voraussetzungen verstehen
  • die grundlegenden allgemeinen Befehle verstehen
  • in der Lage sein, zu localhost:3000 zu navigieren und den Playground anzuzeigen
  • eine einfache Abfrage ausführen, um die Blockhöhe des Polkadot-Mainnets zu erhalten

Zielgruppe

Dieses Handbuch richtet sich an neue Entwickler, die über einige Entwicklungserfahrungen verfügen und daran interessiert sind, mehr über SubQuery zu erfahren.

Videoanleitung


Voraussetzungen

Was Sie noch brauchen:

  • yarn- oder npm-Paketmanager
  • SubQuery CLI (@subql/cli)
  • Docker

Sie können die folgenden Befehle in einem Terminal ausführen, um festzustellen, ob Sie bereits über eine dieser Voraussetzungen verfügen.

yarn -v (or npm -v)
subql -v
docker -v

Für fortgeschrittene Benutzer kopieren Sie Folgendes und fügen Sie es ein:

echo -e "My yarn version is:" `yarn -v` "\nMy subql version is:" `subql -v`  "\nMy docker version is:" `docker -v`

Dies sollte zurückgeben: (für npm-Benutzer, yarn durch npm ersetzen)

Meine Yarn-version ist: 1.22.10
Meine Subql-Version ist: @subql/cli/0.9.3 darwin-x64 node-v16.3.0
Meine Docker-Version ist: Docker-version 20.10.5, build 55c4c88

Wenn Sie das oben genannte erhalten, können Sie loslegen. Wenn nicht, folgen Sie diesen Links, um sie zu installieren:

1. Projekt initialisieren

Der erste Schritt beim Starten mit SubQuery besteht darin, den Befehl subql init auszuführen. Lassen Sie uns ein Startprojekt mit dem Namen subqlHelloWorld initialisieren. Beachten Sie, dass nur der Autor obligatorisch ist. Alle andere wird unten leer gelassen.

> subql init subqlHelloWorld
? Wählen Sie einen Netzwerk-Polkadot aus
? 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

Vergessen Sie nicht, in dieses neue Verzeichnis zu wechseln.

cd subqlHelloWorld

2. Abhängigkeiten installieren

Führen Sie nun eine Yarn- oder Nodeinstallation durch, um die verschiedenen Abhängigkeiten zu installieren.

::: code-tabs @tab:active yarn shell yarn install @tab npm bash npm install :::

Beispiel vonyarn install

> yarn install
yarn install v1.22.10
info No lockfile found.
[1/4] 🔍 Pakete werden aufgelöst...
[2/4] 🚚 Pakete werden abgerufen...
[3/4] 🔗 Abhängigkeiten verknüpfen...
[4/4] 🔨 Neue Pakete erstellen...
success Saved lockfile.
✨ Fertig in 31,84s.

3. Code generieren

Führen Sie nun yarn codegen aus, um Typescript aus dem GraphQL-Schema zu generieren.

::: code-tabs @tab:active yarn shell yarn codegen @tab npm bash npm run-script codegen :::

Beispiel von yarn codegen

> yarn codegen
yarn run v1.22.10
$ ./node_modules/.bin/subql codegen
===============================
---------Subql Codegen---------
===============================
* Schema StarterEntity generated !
* Modellindex wurde generiert !
* Typenindex wurde generiert !
✨  Fertig in 1.02s.

Warnung Wenn Änderungen an der Schemadatei vorgenommen werden, denken Sie bitte daran, yarn codegen erneut auszuführen, um Ihr Typenverzeichnis neu zu generieren.

4. Code erstellen

Der nächste Schritt besteht darin, den Code mit yarn build zu erstellen.

::: code-tabs @tab:active yarn shell yarn build @tab npm bash npm run-script build :::

Beispiel vonyarn build

> yarn build
yarn run v1.22.10
$ tsc -b
✨  Fertig in 5.68s.

5. Run Docker

Mit Docker können Sie dieses Beispiel sehr schnell ausführen, da die gesamte erforderliche Infrastruktur im Docker-Image bereitgestellt werden kann. Führen Sie docker-compose pull && docker-compose up.

Dies wird alles zum Leben erwecken, wo irgendwann Blöcke geholt werden.

> #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. Browse Playground

Navigieren Sie zu http://localhost:3000/ und fügen Sie die Abfrage unten in die linke Seite des Bildschirms ein und drücken Sie dann die Wiedergabetaste.

{
 query{
   starterEntities(last:10, orderBy:FIELD1_ASC ){
     nodes{
       field1
     }
   }
 }
}

SubQuery Playground auf Localhost.

Playground-Localhost

Die Blockanzahl auf dem Spielplatz sollte auch mit der Blockanzahl (technisch die Blockhöhe) im Terminal übereinstimmen.

Zusammenfassung

In diesem Schnellstart haben wir die grundlegenden Schritte demonstriert, um ein Starterprojekt in einer Docker-Umgebung zum Laufen zu bringen, und dann zu localhost:3000 navigiert und eine Abfrage ausgeführt, um die Blocknummer des Mainnet-Polkadot-Netzwerks zurückzugeben.