Die Erstellung eines SubQuery-Projekts

... 2022-8-10 Ungefähr 2 min

# Die Erstellung eines SubQuery-Projekts

In der Kurzanleitung haben wir sehr schnell ein Beispiel durchgespielt, um Ihnen einen Vorgeschmack darauf zu geben, was SubQuery ist und wie es funktioniert. Hier sehen wir uns den Workflow bei der Erstellung Ihres Projektes und die Schlüsseldateien, mit denen Sie arbeiten, genauer an.

# Der grundlegende Arbeitsablauf

Bei einigen der folgenden Beispiele wird davon ausgegangen, dass Sie das Startpaket im Abschnitt Schnellstart erfolgreich initialisiert haben. Von diesem Startpaket aus durchlaufen wir den Standardprozess zum Anpassen und der Implementierung Ihres SubQuery-Projektes.

  1. Initialisieren Sie Ihr Projekt mit subql init PROJECT_NAME.
  2. Aktualisieren Sie die Manifestdatei (project.yaml), um Informationen über Ihre Blockchain und die Entitäten aufzunehmen, die Sie zuordnen werden – siehe Manifestdatei
  3. Erstellen Sie GraphQL-Entitäten in Ihrem Schema (schema.graphql), die die Form der Daten definieren, die Sie extrahieren und für Abfragen beibehalten – siehe GraphQL-Schema
  4. Fügen Sie alle Mapping-Funktionen (zB mappingHandlers.ts) hinzu, die Sie aufrufen möchten, um Chain-daten in die von Ihnen definierten GraphQL-Entitäten umzuwandeln - siehe Mapping
  5. Generieren, erstellen und veröffentlichen Sie Ihren Code in SubQuery-Projekten (oder führen Sie ihn in Ihrem eigenen lokalen Knoten aus) – siehe Starterprojekt ausführen und abfragen in unserer Kurzanleitung.

# Verzeichnisaufbau

Die folgende Karte bietet einen Überblick über die Verzeichnisstruktur eines SubQuery-Projekts, wenn der Befehl init ausgeführt wird.

- project-name
  L package.json
  L project.yaml
  L README.md
  L schema.graphql
  L tsconfig.json
  L docker-compose.yml
  L src
    L index.ts
    L mappings
      L mappingHandlers.ts
  L .gitignore
1
2
3
4
5
6
7
8
9
10
11
12

Zum Beispiel:

SubQuery-Verzeichnisstruktur

# Codegenerierung

Immer wenn Sie Ihre GraphQL-Entitäten ändern, müssen Sie Ihr Typenverzeichnis mit dem folgenden Befehl neu generieren.

yarn codegen
1

Dadurch wird ein neues Verzeichnis src/types erstellt (oder das vorhandene aktualisiert), das generierte Entitätsklassen für jeden Typ enthält, den Sie zuvor in schema.graphql definiert haben. Diese Klassen bieten typsicheres Laden von Entitäten sowie Lese- und Schreibzugriff auf Entitätsfelder – mehr über diesen Prozess erfahren Sie im GraphQL-Schema.

# Build

Um Ihr SubQuery-Projekt auf einer lokal gehosteten SubQuery-Node auszuführen, müssen Sie zuerst Ihre Arbeit erstellen.

Führen Sie den Build-Befehl im Stammverzeichnis des Projekts aus.

# Alternative Build-Optionen

Wir unterstützen zusätzliche Erstellungsoptionen für SubQuery-Projekte mit subql build.

Damit können Sie zusätzliche Einstiegspunkte definieren, die mithilfe des Felds exports in package.json erstellt werden sollen.

"name": "project-name",
"version": "1.0.0",
...
"exports": {
  "entry_one": "./src/entry_one.ts",
  "entry_renamed": "./src/entry_two.ts"
},
1
2
3
4
5
6
7

Durch Ausführen von subql build wird dann ein Dist-Ordner mit der folgenden Struktur generiert:

- project-name
  L dist
    L entry_one.js
    L entry_renamed.js
    L index.js
1
2
3
4
5

Beachten Sie, dass index.ts erstellt wird, unabhängig davon, ob dies im Exportfeld angegeben ist oder nicht.

Weitere Informationen zur Verwendung einschließlich Flags finden Sie unter CLI-Referenz (opens new window).

# Logging

Die Methode console.log wird nicht mehr unterstützt. Stattdessen wurde ein Logger-Modul in die Typen eingefügt, was bedeutet, dass wir einen Logger unterstützen können, der verschiedene Protokollierungsebenen akzeptieren kann.

logger.info("Info level message");
logger.debug("Debugger level message");
logger.warn("Warning level message");
1
2
3

Um logger.info oder logger.warn zu verwenden, platzieren Sie einfach die Zeile in Ihrer Zuordnungsdatei.

logging.info

Um logger.debug zu verwenden, ist ein zusätzliches Flag erforderlich. Fügen Sie Ihrer Befehlszeile --log-level=debug hinzu.

Wenn Sie einen Docker-Container ausführen, fügen Sie diese Zeile zu Ihrer Datei docker-compose.yaml hinzu.

logging.debug

Sie sollten jetzt die neue Protokollierung auf dem Terminalbildschirm sehen.

logging.debug

Zuletzt geändert: August 10, 2022 00:49