Dieser Artikel ist an Curatoren im TheGraph Protokoll gerichtet. TheGraph stellt ein Indizierungsprotokoll für die Abfrage von Daten im Ethereum Netzwerk dar. Jeder Entwickler ist in der Lage offene APIs zu erstellen, veröffentlichen und dadurch die Daten für die Nutzer leicht und kostengünstig zur Verfügung zu stellen. Diese offenen APIs nennt man “Subgraphs”. Hier stellt sich nun jedoch die angebrachte Frage:

Welche Subgraphen sind es überhaupt Wert indiziert und von den Nutzern verwendet zu werden? Und wer kann dabei mitwirken, besondere Subgraphen zugänglich zu machen?

Die Beantwortung dieser Frage ist der Job von Curatoren. Curatoren nutzen GRT Token um zu signalisieren, welche Subgraphen geeignet sind indexiert zu werden. Eine genaue Beschreibung der unterschiedlichen Rollen und Funktionen im TheGraph Netzwerk findet sich in diesem englischen Blogbeitrag. Curatoren können damit Geld verdienen, dass sie auf Subgraphen signalisieren, welche wertvoll für das Netzwerk werden (für weitere Informationen zur TheGraph Ökonomie ist dieser englische Blogeintrag hilfreich).

Im Folgenden werden die Schritte erklärt, welche nötig sind, um einen Subgraphen hinsichtlich Ihrer Qualität zu evaluieren. Zunächst werden die relevanten Qualitätskriterien erläutert.

Qualitätskriterien zur Evaluation von Subgraphen

Die wichtigsten Evaluationskriterien für einen Subgraphen im TheGraph Netzwerk sind Vollständigkeit, Komplexität und Fehlerfreiheit.

Vollständigkeit bedeutet die Prüfung, ob alle relevanten Daten für den Nutzungszweck abgedeckt sind. Fehlen wichtige Daten oder sind sie nicht für alle relevanten Zeitpunkte oder Objekte erhältlich? Sind alle Rohdaten in dem Subgraph aufgeführt? Vollständigkeit kann auch bedeuten, dass zusätzliche Informationen im Subgraph vorhanden sind. Die Daten werden über das Ethereum-Netzwerk für die jeweiligen Smart Contracts anhand eines definierten Manifests extrahiert und über ein Schema und das jeweilige Mapping in die gewünschten Entitäten im Datenmodell gespeichert. Jedoch können zusätzlich zu den Daten, welche direkt über die Blockchain abgegriffen werden und lediglich “kopiert” und in eine lesbare Form gebracht werden, z.B. auch Daten aggregiert werden. Durch diese Aggregationen im Subgraph könnten interessante Metriken und Informationen geliefert werden.

Die Komplexität eines Subgraphs hängt maßgeblich von den Smart Contracts ab, auf denen die Subgraphs aufbauen. Einige Smart Contracts besitzen nur wenige Zeilen Solidity-Code, andere Smart Contracts erstrecken sich über tausende Zeilen Code und diverse Smart Contracts. Zur Erstellung eines sinnvollen Subgraphs ist es daher essentiell den Solidity Code zu verstehen. Komplexität kann auch beim Mapping und Schema dadurch entstehen, dass weitere Informationen bereitgestellt werden, beispielsweise durch Aggregationen oder die gemeinsame Nutzung von diversen Smart Contracts in einem Subgraphen.

Essentiell für einen wertvollen Subgraphen ist auch die Fehlerfreiheit (“Accuracy”). Wenn ein Subgraph zwar Daten liefert, diese jedoch nicht valide bzw. fehlerfrei sind, dann erfüllt dieser Subgraph keinen Zweck, sondern richtet im schlimmsten Falle sogar Schaden durch Falschinformationen oder zumindet Verwirrung an. Fehler können dadurch entstehen, dass im Mapping falsche Werte zugewiesen werden, oder bei Aggregationen falsche Berechnungen oder Gruppierungen durchgeführt werden.

Vorgehen als Curator von Subgraphs bei TheGraph

Als Curator ist es essentiell sich zu Fragen: “Was sind die Daten, die die Nutzer von diesem Subgraph interessieren könnten?”, sowie “Was soll mit den Daten ausgesagt werden?”. Die Aufgabe von Curatoren ist es, möglichst viele wertvolle Daten in das TheGraph Netzwerk einzubringen sowie diese zu organisieren. Und dieses Ziel können sie erreichen, in dem sie Subgraphen durch Signalisierung wertschätzen und damit sichtbarer machen. Weitere Kriterien bei der Evaluation sind:

    • Fehlen wichtige/relevante Daten?
    • Sind die Daten akkurat?
    • Welche Verbesserungen müssen im Subgraphen vorgenommen werden, damit dieser besser wird?
    • Ist der Subgraph leicht verständlich?
    • Können durch zusätzliche Subgraphen Mehrwert generiert werden? So erfüllt der Uniswap Subgraph den Zweck, historische Daten zu visualisieren und Analysen zu ermöglichen. Zu diesem Zweck wird auch dieser Subgraph auf der info.uniswap.org Seite genutzt. Der Subgraph von Uniswap ist komplex und ausführlich. Jedoch könnten diese Daten für einen anderen Nutzungszweck relativ uninteressant sein. So könnte man einen abgespeckten Subgraphen erstellen, in dem es nur um Preisdaten der Tokens geht. Dieser wäre simpler, verständlicher und weniger fehleranfällig.

Um einen Subgraphen zu evaluieren, werden einige wenige Schritte benötigt:

Searching Community Subgraphs
  • Im Anschluss kann man im Playground des Subgraphen die verschiedenen Entitäten betrachten und einfache Queries testen. Häufig sind einige Beispiel-Abfragen bereits verfügbar. Dadurch kann man ein Gefühl für die Daten und die Möglichkeiten und Grenzen erlangen. Außerdem erkennt man, welche Entitäten mit was für Attributen vorhanden sind.
Async Art Subgraph
  • Falls es eine Verlinkung zum Github – Repository gibt, kann man weitere Informationen darüber erhalten. Häufig ist ein ReadMe verfügbar, welches mehr Aufschluss über den Subgraphen gibt. (Github Link)
  • Eine wichtige Quelle, um den Funktionsumfang des Subgraphen zu verstehen, ist das Subgraph Manifest. Diese Datei gibt Auskunft darüber, welche Funktionen bzw. Events aus welchen Smart Contracts (Ethereum-Adressen) in den Subgraph einfließen sollen. Hierbei handelt es sich um die Beschreibung der Rohdaten, welche in der Ethereum-Blockchain vorhanden sind. Diese sollen mithilfe des Manifests eingeholt werden. Häufig ist im Subgraph Manifest bereits ersichtlich, welche Events abgeholt werden sollen.
  • Das GraphQL Schema ist die Beschreibung des Datenmodells für den Subgraphen. Am Ende sollen die Daten in der im Schema aufgeführten Art und Weise vorliegen. Diese Datei ist leicht lesbar und bedarf keiner Programmierkenntnisse. Hier werden die unterschiedlichen Entitäten mit ihren Attributen beschrieben. Dadurch kann man sich bereits ein Bild über den Datenumfang des Subgraphen machen.
  • Für diejenigen, die sich mit Typescript oder Programmierung auskennen, ist es sinnvoll einen Blick in das Mapping zu werfen (factory.ts, mapping.ts). Das Mapping beschreibt, wie die Rohdaten vom Subgraph Manifest in die vom Schema beschriebene Form gebracht werden. Hier werden die Daten den Entitäten zugewiesen. Das Mapping kann je nach Smart Contract aufwändiger sein. Im Mapping werden auch evtl. Aggregationen festgelegt, wenn denn welche vorhanden sind. Der Blick in das Mapping eines Subgraphen lohnt sich, um ein tieferes Verständnis zu erlangen.

Fazit bzgl. der Evaluation von Subgraphen im TheGraph Blockchain Ökosystem

Auf Grundlage der hier genannten Schritte kann ein größeres Verständnis über die Funktionsweise sowie der Funktionsumfang eines Subgraphen erlangt werden. Curatoren, die einen Subgraph verstehen und evaluieren möchten, sollten sich mindestens das Manifest sowie das Schema anschauen. Jedoch lohnt es sich immer auch das Mapping zu betrachten. Im Mapping können auch mögliche Bugs und Fehler in der Datenzuweisung ersichtlich sein. Häufig sind die Github Repositories der Subgraphen nicht im TheGraph Explorer angegeben. Dann müssen diese mithilfe einer Suchmaschinen gesucht werden. Das Subgraph Manifest kann jedoch jederzeit über die ID eines Subgraphen (dieser wird immer im Explorer angezeigt) aufgerufen werden.
Id Subgraph
Um das Manifest aufzurufen, muss der Link: https://ipfs.io/ipfs/SUBGRAPH-ID aufgerufen werden. Hier in diesem Fall wäre es der Link:
https://ipfs.io/ipfs/QmRCC3YcpiMPWyrRNDYjWar1dFfPs7T7yEqAuNppTRvHch

Ich hoffe, dieser kurze Blogartikel kann einigen Curatoren in Zukunft bei der Evaluierung von Subgraphen behilflich sein. Eine nützliche Evaluation von Subgraphen benötigt viel Zeit und einige Bemühungen. Diese Zeit sollte man sich nehmen, da man als Curator sowohl dem Netzwerk, den Nutzern, den Indexern und auch den Subgraph Entwicklern wertvolle Unterstützung bietet und durch eine qualitativ hochwertige Arbeit dabei auch monetäre Gewinne erlangen kann.

Interested or questions?

 

Freddy Zwanzger
(Co-Founder & Chief Data Officer)
freddy@anyblockanalytics.com
+49 6131 3272372

    

>> Go back to News or browse related posts below

Subscribe to our newsletter!

Join our mailing list to receive our latest news and updates!

Please check your inbox or promotion tab for an email to confirm your subscription. You should receive it shortly.

Pin It on Pinterest