Hallo die Welt (SubQuery gehostet)

... 2022-12-1 Ungefähr 5 min

# Hallo die Welt (SubQuery gehostet)

Das Ziel dieser Schnellstartanleitung besteht darin, zu zeigen, wie Sie in wenigen einfachen Schritten das standardmäßige Startprojekt in SubQuery Projects (unserem verwalteten Dienst) ausführen können.

Wir nehmen das einfache Starterprojekt (und alles, was wir bisher gelernt haben), aber anstatt es lokal in Docker auszuführen, nutzen wir die verwaltete Hosting-Infrastruktur von SubQuery. Mit anderen Worten, wir überlassen SubQuery die ganze schwere Arbeit, den Betrieb und die Verwaltung der Produktionsinfrastruktur.

# Lernziele

Am Ende dieses Schnellstarts sollten Sie:

  • die erforderlichen Voraussetzungen verstehen
  • ein Projekt in SubQuery-Projekten (opens new window) hosten können
  • eine einfache Abfrage ausführen, um die Blockhöhe des Polkadot-Mainnets über den Spielplatz zu erhalten
  • eine einfache GET-Abfrage ausführen, um die Blockhöhe des Polkadot-Mainnets mit cURL 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:

  • Github-Konto

# 1. Erstellen Sie das Projekt

Lassen Sie uns ein Projekt namens subqlHelloWorld erstellen, indem Sie subql init ausführen und auswählen, das Projekt mit dem Polkadot-Netzwerk zu erstellen, und das Projekt mit dem subql-starter initialisieren Schablone. Wir müssen die obligatorische Installation, Codegenerierung und Erstellung mit Ihrem bevorzugten Paketmanager ausführen.

> subql init subqlHelloWorld
yarn install
yarn codegen
yarn build
1
2
3
4

Führen Sie die Docker-Befehle jedoch NICHT aus.

# 2. Erstellen Sie ein GitHub-Repository

Erstellen Sie in GitHub ein neues öffentliches Repository. Geben Sie einen Namen an und stellen Sie Ihre Sichtbarkeit auf öffentlich ein. Hier wird vorerst alles als Standard beibehalten.

Erstellen Sie ein Github-Repository

Notieren Sie sich Ihre GitHub-URL. Diese muss öffentlich sein, damit SubQuery darauf zugreifen kann.

Erstellen Sie ein Github-Repository

# 3. Auf GitHub pushen

Zurück in Ihrem Projektverzeichnis, initialisieren Sie es als Git-Verzeichnis. Andernfalls erhalten Sie möglicherweise die Fehlermeldung "fatal: not a git repository (or any of the parent directory): .git"

git init
1

Fügen Sie dann ein Remote-Repository mit dem Befehl hinzu:

git remote add origin https://github.com/seandotau/subqlHelloWorld.git
1

Dies setzt Ihr Remote-Repository im Grunde auf „https://github.com/seandotau/subqlHelloWorld.git“ und gibt ihm den Namen „origin“, was die Standardnomenklatur für ein Remote-Repository in GitHub ist.

Als nächstes fügen wir den Code mit den folgenden Befehlen zu unserem Repository hinzu:

> git add .
> git commit -m "First commit"
[master (root-commit) a999d88] First commit
10 files changed, 3512 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 docker-compose.yml
create mode 100644 package.json
create mode 100644 project.yaml
create mode 100644 schema.graphql
create mode 100644 src/index.ts
create mode 100644 src/mappings/mappingHandlers.ts
create mode 100644 tsconfig.json
create mode 100644 yarn.lock
> git push origin master
Enumerating objects: 14, done.
Counting objects: 100% (14/14), fertig.
Delta-Komprimierung mit bis zu 12 Threads
Komprimieren von Objekten: 100% (13/13), fertig.
Schreibobjekte: 100% (14/14), 59,35 KiB | 8,48 MiB/s, fertig.
Total 14 (delta 0), reused 0 (delta 0)
To https://github.com/seandotau/subqlHelloWorld.git
 * [new branch]      master -> master

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

Der Push-Befehl bedeutet "Bitte schiebe meinen Code VON meinem lokalen Master-Repository in das Ursprungsrepo". Beim Aktualisieren von GitHub sollte der gesamte Code in GitHub angezeigt werden.

Erstes Commit

Nachdem Sie Ihren Code nun in GitHub eingegeben haben, schauen wir uns an, wie wir ihn in SubQuery-Projekten hosten können.

# 4. Erstellen Sie Ihr Projekt

Navigieren Sie zu https://project.subquery.network (opens new window) und melden Sie sich mit Ihrem GitHub-Konto an.

Herzlich Willkommen bei SubQuery-Projekten

Dann erstellen Sie ein neues Projekt,

Herzlich Willkommen bei SubQuery-Projekten

Und füllen Sie die verschiedenen Felder mit den entsprechenden Angaben aus.

  • GitHub-Konto: Wenn Sie mehr als ein GitHub-Konto haben, wählen Sie aus, unter welchem Konto dieses Projekt erstellt wird. Projekte, die in einem GitHub-Organisationskonto erstellt wurden, werden zwischen Mitgliedern dieser Organisation geteilt.
  • Projektname: Geben Sie hier Ihrem Projekt einen Namen.
  • Untertitel: Geben Sie einen Untertitel für Ihr Projekt an.
  • Beschreibung: Erklären Sie, was Ihr SubQuery-Projekt tut.
  • GitHub-Repository-URL: Dies muss eine gültige GitHub-URL zu einem öffentlichen Repository sein, das Ihr SubQuery-Projekt enthält. Die Datei schema.graphql muss sich im Stammverzeichnis Ihres Verzeichnisses befinden.
  • Hide project: Wenn ausgewählt, wird das Projekt im öffentlichen SubQuery-Explorer ausgeblendet. Lassen Sie diese Option deaktiviert, wenn Sie Ihre SubQuery mit der Community teilen möchten!

SubQuery-Parameter erstellen

Wenn Sie auf create klicken, gelangen Sie zu Ihrem Dashboard.

SubQuery-Projekt-Dashboard

Das Dashboard enthält viele nützliche Informationen wie das verwendete Netzwerk, die GitHub-Repository-URL des ausgeführten Quellcodes, wann er erstellt und zuletzt aktualisiert wurde, und insbesondere die Bereitstellungsdetails.

# 5. Stellen Sie Ihr Projekt bereit

Nachdem Sie Ihr Projekt nun in SubQuery Projects erstellt und das Anzeigeverhalten eingerichtet haben, besteht der nächste Schritt darin, Ihr Projekt bereitzustellen, um es betriebsbereit zu machen. Das Bereitstellen einer Version löst den Start eines neuen SubQuery-Indizierungsvorgangs aus und richtet den erforderlichen Abfragedienst ein, um GraphQL-Anforderungen zu akzeptieren. Sie können hier auch neue Versionen für bestehende Projekte bereitstellen.

Sie können wählen, ob Sie in verschiedenen Umgebungen bereitstellen möchten, z. B. in einem Produktions-Slot oder einem Staging-Slot. Hier stellen wir einen Produktionsslot bereit. Wenn Sie auf die Schaltfläche "Deploy" klicken, wird ein Bildschirm mit den folgenden Feldern angezeigt:

Im Produktionsslot bereitstellen

  • Commit-Hash der neuen Version: Wählen Sie auf GitHub den richtigen Commit der SubQuery-Projektcodebasis aus, die Sie bereitstellen möchten
  • Indexer-Version: Dies ist die Version der Notendienstes von SubQuery, auf der Sie diese SubQuery ausführen möchten. Sehen Sie @subql/node (opens new window)
  • Query Version: Dies ist die Version des Abfragedienstes von SubQuery, auf der Sie diese SubQuery ausführen möchten. Sehen Sie @subql/query (opens new window)

Da wir nur einen Commit haben, gibt es nur eine einzige Option im Dropdown. Wir arbeiten auch mit der neuesten Version des Indexers und der Abfrageversion, akzeptieren also die Standardeinstellungen und klicken dann auf "Deploy Update".

Sie sehen dann Ihre Bereitstellung im Status "Processing". Hier wird Ihr Code in der verwalteten Infrastruktur von SubQuery bereitgestellt. Grundsätzlich wird ein Server bei Bedarf hochgefahren und für Sie bereitgestellt. Dies dauert ein paar Minuten, also ist es Zeit, sich einen Kaffee zu holen!

Bereitstellungsverarbeitung

Die Bereitstellung wird jetzt ausgeführt.

Bereitstellung läuft

# 6. Testen Sie Ihr Projekt

Um Ihr Projekt zu testen, klicken Sie auf die drei Auslassungspunkte und wählen Sie "View on SubQuery Explorer".

Subquery-Projekt anzeigen

Dies bringt Sie zum allseits bekannten "Playground", wo Sie auf den Play-Button klicken und die Ergebnisse der Abfrage sehen können.

![Subquery-Playground

](/assets/img/subquery_playground.png)

# 7. Bonusschritt

Die Klugen unter uns werden sich erinnern, dass in den Lernzielen der letzte Punkt darin bestand, eine einfache GET-Abfrage auszuführen. Dazu müssen wir den in den Bereitstellungsdetails angezeigten "Query Endpoint" abrufen.

Query-Endpoint

Sie können dann entweder mit Ihrem bevorzugten Client wie Postman (opens new window) oder Mockoon (opens new window) oder über cURL in Ihrem Terminal eine GET-Anfrage an diesen Endpunkt senden. Der Einfachheit halber wird cURL unten angezeigt.

Der auszuführende curl-Befehl lautet:

curl https://api.subquery.network/sq/seandotau/subqueryhelloworld -d "query=query { starterEntities (first: 5, orderBy: CREATED_AT_DESC) { totalCount nodes { id field1 field2 field3 } } }"
1

die Ergebnisse von:

{"data":{"starterEntities":{"totalCount":23098,"nodes":[{"id":"0x29dfe9c8e5a1d51178565c2c23f65d249b548fe75a9b6d74cebab777b961b1a6","field1":23098,"field2":null,"field3":null},{"id":"0xab7d3e0316a01cdaf9eda420cf4021dd53bb604c29c5136fef17088c8d9233fb","field1":23097,"field2":null,"field3":null},{"id":"0x534e89bbae0857f2f07b0dea8dc42a933f9eb2d95f7464bf361d766a644d17e3","field1":23096,"field2":null,"field3":null},{"id":"0xd0af03ab2000a58b40abfb96a61d312a494069de3670b509454bd06157357db6","field1":23095,"field2":null,"field3":null},{"id":"0xc9f5a92f4684eb039e11dffa4b8b22c428272b2aa09aff291169f71c1ba0b0f7","field1":23094,"field2":null,"field3":null}]}}}

1
2

Die Lesbarkeit ist hier kein Problem, da Sie wahrscheinlich etwas Front-End-Code haben werden, um diese JSON-Antwort zu verarbeiten und zu parsen.

# Zusammenfassung

In diesem von SubQuery gehosteten Schnellstart haben wir gezeigt, wie schnell und einfach es war, ein Subql-Projekt zu verwenden und es in SubQuery-Projekten (opens new window) bereitzustellen, wo Ihnen die gesamte Infrastruktur zur Verfügung gestellt wird. Es gibt einen integrierten Playground zum Ausführen verschiedener Abfragen sowie einen API-Endpunkt, in den Ihr Code integriert werden kann.

Zuletzt geändert: December 1, 2022 23:29