<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[The Graph Germany]]></title><description><![CDATA[Graph Advocate from Germany]]></description><link>https://thegraphgermany.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 16:45:50 GMT</lastBuildDate><atom:link href="https://thegraphgermany.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Substreams: Blitzschnelle Indizierung von Blockchain-Daten freischalten]]></title><description><![CDATA[Die Entwicklung datenintensiver Anwendungen ist für Entwickler immer schwierig. Noch schwieriger wird es, wenn sie mit Blockchain-Daten umgehen müssen. Der Prozess des Zugriffs auf oder der Extraktion von Blockchain-Daten ist nicht nur langsam, sonde...]]></description><link>https://thegraphgermany.hashnode.dev/substreams-blitzschnelle-indizierung-von-blockchain-daten-freischalten</link><guid isPermaLink="true">https://thegraphgermany.hashnode.dev/substreams-blitzschnelle-indizierung-von-blockchain-daten-freischalten</guid><category><![CDATA[Blockchain]]></category><category><![CDATA[#thegraph]]></category><category><![CDATA[indexing]]></category><category><![CDATA[substream]]></category><category><![CDATA[firehose]]></category><dc:creator><![CDATA[Andy Schreiber /The Graph Germany]]></dc:creator><pubDate>Thu, 29 Jun 2023 18:13:37 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1688053993221/fe055881-88ed-4ab5-8844-16f778251828.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Die Entwicklung datenintensiver Anwendungen ist für Entwickler immer schwierig. Noch schwieriger wird es, wenn sie mit Blockchain-Daten umgehen müssen. Der Prozess des Zugriffs auf oder der Extraktion von Blockchain-Daten ist nicht nur <strong>langsam</strong>, sondern aufgrund der integrierten Funktionen von Blockchain und Smart Contracts auch <strong>komplex</strong>. Intelligente Verträge wurden entwickelt, um Daten zu speichern, Vermögenswerte zu übertragen und andere Operationen innerhalb eines dezentralen Netzwerks oder einer Blockchain durchzuführen. Die Durchführung grundlegender Lesevorgänge in einem intelligenten Vertrag ist relativ einfach. Im Falle eines NFTs-Projekts wie dem Bored Ape Yacht Club können wir zum Beispiel grundlegende Lesevorgänge in Smart Contracts durchführen, wie den Besitzer eines bestimmten Affen abfragen, die Inhalts-URI eines Affen auf der Grundlage seiner ID abrufen oder das Gesamtangebot abrufen, da diese Lesevorgänge direkt in den Smart Contract programmiert sind. Wenn wir nach Affen suchen wollten, die einer bestimmten Adresse gehören, und nach einer ihrer Eigenschaften filtern wollten, wären wir nicht in der Lage, diese Informationen durch direkte Interaktion mit dem Vertrag selbst zu erhalten. Wir sehen, dass die komplexeren Operationen, wie das Filtern und Aggregieren von Daten, viel schwieriger zu erreichen sind. Das liegt daran, dass die Speicherkapazität der Blockchain begrenzt ist, was bei der Arbeit mit großen Datensätzen eine Herausforderung darstellen kann. Da jeder Knoten im Netzwerk eine Kopie der gesamten Blockchain speichern muss, kann die Speicherung großer Datenmengen unpraktisch werden, insbesondere wenn man die Kosten für die Speicherung und die Rechenleistung berücksichtigt.</p>
<p>In der Vergangenheit sahen sich Entwickler aufgrund von Funktionseinschränkungen beim Zugriff auf und der Nutzung von Blockchain-Daten vor Herausforderungen gestellt. Um diese Lücke zu überbrücken, griffen sie auf den Bau zentraler Indexierungsserver zurück, die als Notlösung dienten. Bei diesem Ansatz mussten die Entwickler ihre kompletten Knoten betreiben, um auf die in der Blockchain gespeicherten Daten zuzugreifen. Die Indexierungsserver würden die Daten von der Blockchain abrufen, sie in einer separaten Datenbank speichern und eine API bereitstellen, mit der die Entwickler interagieren können. Diese Lösung hatte jedoch erhebliche Nachteile.</p>
<p>Erstens war die Wartung und der Betrieb dieser zentralen Indexierungsserver ressourcen- und zeitaufwändig. Der Betrieb einer und die kontinuierliche Synchronisierung mit der Blockchain erforderten erhebliche Rechenleistung und Speicherkapazität. Außerdem mussten die Indizierungsserver ihre Datenbank aktualisieren, wenn neue Blöcke zur Blockchain hinzugefügt wurden, was ihre Ressourcen weiter belastete.</p>
<p>Zweitens war der Rückgriff auf zentralisierte Indexierungsserver nicht kosteneffizient. Die Einrichtung und Wartung dieser Server verursachte Kosten, z. B. für Hardware, Infrastruktur und Wartung. Diese Kosten können für die Entwickler belastend sein, insbesondere bei Projekten mit begrenzten Ressourcen oder kleineren Teams.</p>
<p>Darüber hinaus führte der Aufbau und die Verwaltung zentraler Indexierungsserver zu Komplexität und potenziellen Fehlerquellen. Die Aufgabe erforderte eine komplizierte Programmierung, Datenbankverwaltung und API-Entwicklung, was die Fehlerwahrscheinlichkeit erhöhte. Die Entwickler mussten die Server sorgfältig entwerfen und warten, um einen genauen und zuverlässigen Datenabruf zu gewährleisten. Diese Abhängigkeit von externen Servern machte das System auch anfällig für verschiedene Risiken. Die Benutzer mussten darauf vertrauen, dass die Indizierungsserver-Teams die Server korrekt und sicher betreiben. Es gab jedoch Unwägbarkeiten, wie z. B. die Möglichkeit, dass die Projekte ihre Geschäftstätigkeit einstellen, Daten aus strategischen Gründen ändern, von anderen Unternehmen übernommen werden oder unbeabsichtigte Fehler begehen. Diese Faktoren untergruben das Vertrauen und die Zuverlässigkeit des Systems und machten die gewünschten Vorteile der Blockchain-Technologie zunichte.</p>
<p>Folglich ähnelte diese Situation dem zentralisierten Charakter herkömmlicher Webanwendungen (Web 2.0), bei denen die Nutzer für den Datenzugriff und die Datenmanipulation auf Vermittler angewiesen waren. Es war offensichtlich, dass eine dezentralere und effizientere Lösung erforderlich war, um die Einschränkungen und Herausforderungen bei der Durchführung komplexer Operationen mit Blockchain-Daten zu überwinden.</p>
<p>Daher begannen die Entwickler mit der Erforschung alternativer Ansätze, die die Abhängigkeit von ressourcenintensiven und zentralisierten Indexierungsservern minimieren. Sie suchten nach Möglichkeiten, direkt auf Blockchain-Daten zuzugreifen und diese zu verarbeiten, ohne dabei die Sicherheit, Zuverlässigkeit und Dezentralisierung zu beeinträchtigen. Dies erforderte die Entwicklung neuer Technologien, Protokolle und Tools, die effiziente und benutzerfreundliche Methoden für die Interaktion mit Blockchain-Daten bieten. Durch die Nutzung dieser Fortschritte wollen die Entwickler Folgendes ermöglichen</p>
<p>Nutzer können komplexe Operationen mit Blockchain-Daten durchführen und dabei die Grundprinzipien der Dezentralisierung und Vertrauenswürdigkeit beibehalten.</p>
<p>Eine Lösung für dieses Problem ist die Verwendung dezentraler Indizierungs- und Abfragedienste, und hier kommt <strong>The Graph</strong> zur Hilfe. <strong>The Graph</strong> ist ein dezentrales Protokoll für die Indizierung und Abfrage von Daten aus Blockchain-Netzwerken. The Graph bietet einen Marktplatz für <strong>Subgraphen</strong>, die offene APIs sind, die bestimmte Daten aus der Blockchain indizieren und offenlegen. Entwickler erstellen ihre Subgraphen, die zum Indizieren und Abfragen von Daten aus bestimmten Smart Contracts verwendet werden können. The Graph ermöglicht es Entwicklern, die Leistung des Blockchain-Netzwerks zu nutzen, ohne einen vollständigen Knoten zu betreiben oder sich auf zentralisierte Indexierungsserver verlassen zu müssen.</p>
<h3 id="heading-wie-funktionieren-die-teilgraphen"><strong>Wie funktionieren die Teilgraphen?</strong></h3>
<p>Einfach ausgedrückt ist ein Subgraph ein von einem Entwickler geschriebenes Stück Code, das definiert, wie Daten aufgenommen, indiziert und bereitgestellt werden sollen. Ein Subgraph extrahiert Daten aus der Blockchain, verarbeitet sie und speichert sie so, dass sie einfach über <strong>GraphQL</strong> abgefragt werden können. Entwickler verwenden Subgraphen, um Daten in die Front-End-Schnittstelle ihrer Anwendung einzuspeisen. Die Entwickler definieren die Kriterien für den Index, indem sie ein GraphQL-Schema schreiben, und es werden Mapping-Funktionen erstellt, um die relevanten Daten auf das Schema abzubilden. Der Subgraph wird dann bereitgestellt und anderen Entwicklern zur Verfügung gestellt, damit diese bestimmte Daten auf der Blockchain leichter finden und nutzen können.</p>
<p>Auf der Kernebene kann ein Subgraph als ETL-Prozess im Kontext von Blockchain-Daten betrachtet werden. ETL steht für <strong>Extraktion (E)</strong>,</p>
<p><strong>Transformation (T) und Laden (L)</strong> von Blockchain-Daten. Gehen wir im Detail auf jeden dieser Punkte ein</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688060643242/dab5895b-f142-473a-82d0-f660c78b29bd.jpeg" alt class="image--center mx-auto" /></p>
<p><strong>1. Extraktion</strong>: Der Extraktionsprozess umfasst das Abrufen von Daten aus der Blockchain. Im Falle von Ethereum interagiert der Entwickler in der Regel mit dem Ethereum-Client oder der API eines Dienstanbieters, um relevante Daten zu extrahieren. Dazu kann das Abrufen von Blöcken gehören,</p>
<p><strong>Transaktionen</strong>, Ereignisse und andere Informationen aus der Blockchain. Im Falle der Untergraphen erfolgt die Extraktion durch den SON-RPC-Abfrageknoten des Graph-Knotens, der sich mit dem Ziel-Blockchain-Netzwerk verbindet und auf Ereignisse wartet, die von Smart Contracts oder anderen Blockchain-Entitäten ausgehen. Er verwendet spezielle Bibliotheken oder APIs, die von der Blockchain-Plattform bereitgestellt werden, um das Netzwerk auf neue Transaktionen, Blöcke oder bestimmte Ereignisse zu überwachen.</p>
<p><strong>2. Umwandlung</strong>: Nach der Extraktion der Rohdaten müssen diese in ein strukturiertes Format umgewandelt werden, das für die Analyse und Abfrage geeignet ist. Der Schritt der Umwandlung umfasst die Bereinigung,</p>
<p>Normalisieren und Organisieren der Daten. Dieser Prozess kann Aufgaben wie die Konvertierung von Datentypen, das Zusammenführen verwandter Daten, das Filtern irrelevanter Informationen und die Anwendung von Geschäftslogik zur Erstellung von</p>
<p>abgeleitete Datenpunkte. Ziel ist es, die extrahierten Daten in ein konsistentes und kohärentes Format zu bringen.</p>
<p><strong>3. Laden</strong>: Sobald die Daten transformiert sind, müssen sie in eine Datenbank geladen werden, um sie effizient speichern und abrufen zu können. Die</p>
<p>Die umgewandelten Daten werden in eine spezielle Datenbank geladen, häufig</p>
<p>für eine schnelle und effiziente Abfrage optimiert. Dieser Schritt stellt sicher, dass die durch den Teilgraphen extrahierten und umgewandelten Daten leicht abrufbar sind.</p>
<p>zur Verfügung, die Entwickler abfragen und in ihren Anwendungen verwenden können.</p>
<p>Durch das Vorladen der Daten in eine Datenbank minimiert der Subgraph</p>
<p>die Notwendigkeit von Echtzeit-Interaktionen mit der Blockchain, was zu schnelleren Reaktionszeiten und besserer Leistung führt.</p>
<p>Nachdem die Datenbank mit den extrahierten Blockchain-Daten aufgefüllt wurde, stellt der Graph-Knoten eine Abfrage-API bereit, mit der Entwickler interagieren können. Diese API bietet eine standardisierte Schnittstelle zum Abrufen spezifischer Teilmengen von Daten aus dem Subgraphen auf der Grundlage der Abfragen von Entwicklern, sodass diese einfach und effizient auf die Blockchain-Daten zugreifen können. Indem er diese Schritte befolgt, kann ein Subgraph-Entwickler Daten aus der Blockchain extrahieren, sie in ein brauchbares Format umwandeln, sie in eine Datenbank laden und es den Benutzern ermöglichen, die Daten effizient abzufragen und mit ihnen zu interagieren. Dieser Prozess ist entscheidend für die Entwicklung dezentraler Anwendungen auf der Grundlage von Blockchain-Protokollen, da er eine strukturierte und zugängliche Ebene für Blockchain-Daten bietet.</p>
<h3 id="heading-beschrankungen-von-untergraphen-synchronisierung-kompatibilitat-und-echtzeit-datenverzogerung">Beschränkungen von Untergraphen: Synchronisierung, Kompatibilität und Echtzeit-Datenverzögerung</h3>
<p>Eine ziemlich geniale Lösung, aber wie jede Technologie haben auch Subgraphen ihre Grenzen. Eine große Herausforderung bei Subgraphen ist die Zeit, die sie für die Synchronisierung und Aktualisierung mit der Blockchain benötigen. Da Blockchains ständig wachsen und neue Daten hinzugefügt werden, müssen Subgraphen synchronisiert werden, um genaue und aktuelle Informationen zu liefern. Der Synchronisierungsprozess kann jedoch sehr zeitaufwändig sein, insbesondere bei großen Blockchains mit umfangreichen Transaktionshistorien. Diese Verzögerung zwischen Blockchain-Aktualisierungen und der Synchronisierung von Subgraphen bedeutet, dass es zu einer Verzögerung beim Zugriff auf die neuesten Daten kommen kann, was für Entwickler und Anwendungen, die Informationen in Echtzeit oder nahezu in Echtzeit benötigen, ein Hindernis darstellen kann. Dies ist ein Aspekt, den Entwickler und Nutzer bei der Nutzung von Subgraphen für ihre Datenextraktion und -abfrage berücksichtigen müssen.</p>
<p>Ein weiteres bemerkenswertes Problem bei Subgraphen ist ihre isolierte Natur auf der Indizierungsebene, die die Gesamteffizienz und Flexibilität der Datenextraktion beeinträchtigen kann. Jeder Subgraph arbeitet unabhängig und konzentriert sich auf die Indizierung und Bereitstellung von Daten für bestimmte Smart Contracts oder dApps. Diese Isolierung ermöglicht zwar Modularität und Spezialisierung, bedeutet aber auch, dass Daten aus verschiedenen Subgraphen nicht einfach kombiniert werden können oder</p>
<p>Querverweise im Rahmen des Indizierungsprozesses. Dieser Mangel an Kompositionsfähigkeit kann zu Einschränkungen führen, wenn Entwickler auf Daten zugreifen und diese analysieren wollen, die sich über mehrere Teilgraphen erstrecken oder die Aggregation von Informationen aus verschiedenen Quellen erfordern. Es kann zusätzlichen Aufwand erfordern, Daten aus verschiedenen Teilgraphen manuell abzugleichen, was zu erhöhter Komplexität und geringerer Effizienz bei der Datenextraktion und -analyse führen kann. Die isolierte Natur von Teilgraphen kann die Fähigkeit behindern, Synergien zwischen verschiedenen Datensätzen zu nutzen. Durch die Behandlung jedes Teilgraphen als separate Einheit wird es schwierig, Verbindungen herzustellen und Erkenntnisse aus dem Zusammenspiel von Daten über mehrere Blockchain-Anwendungen oder Smart Contracts abzuleiten. Diese Einschränkung kann das volle Potenzial der Datenanalyse und -exploration einschränken und die Entwicklung komplexer, datenzentrierter Anwendungen behindern.</p>
<h3 id="heading-verbesserung-der-leistung-von-untergraphen-durch-innovationen"><strong>Verbesserung der Leistung von Untergraphen durch Innovationen</strong></h3>
<p>Wir haben gesehen, dass der aktuelle technische Stand des Subgraphen noch verbesserungswürdig ist. Zum einen muss die lange Synchronisierungszeit in Angriff genommen werden, die durch den linearen Extraktionsprozess entsteht, den der Graph Node zum Extrahieren der Smart-Contract-Daten verwendet, und zum anderen ist die Isolierung ein Problem. Daraus wird deutlich, dass wir diese beiden Punkte berücksichtigen müssen, wenn wir die Leistung von Subgraphen verbessern wollen. Es scheint, dass wir zur Verbesserung der Gesamtleistung der Subgraphen eine Lösung benötigen, die die <strong>Extraktionsschicht (E)</strong> der Subgraphen verbessern kann, oder eine Technologie, die die Extraktionsgeschwindigkeit von The Graph Node verbessern kann.</p>
<p>Im Jahr 2021 schloss sich <a target="_blank" href="http://streamingfast.io"><strong>StreamingFast</strong></a>, ein Unternehmen, das sich auf eine skalierbare, kettenübergreifende Architektur für das Streaming von Blockchain-Daten spezialisiert hat, The Graph als Kernprotokollentwickler an. Ihr Hauptziel war es, den Extraktionsprozess von Subgraphen zu verbessern. Als Teil des Graph-Kernentwicklerteams führte <strong>StreamingFas</strong>t <strong>Firehose</strong> ein, eine leistungsstarke Methode zur Datenaufnahme aus Blockchains, und integrierte sie in The Graph.</p>
<p>Die Synchronisierung von komplexen Teilgraphen konnte anfänglich Wochen dauern, was zu Verzögerungen für Entwickler führte, die mit The Graph arbeiteten. Um dieses Problem zu lösen, entwickelte StreamingFast einen Prototyp namens <strong>Sparkle</strong>, der die Synchronisationszeit für einen bestimmten Subgraphen von Wochen auf Stunden reduzierte. Auf diesem Erfolg aufbauend, erweiterte StreamingFast die Fähigkeiten von <strong>Sparkle</strong>, was zur Erstellung von Substreams führte, die über alle Subgraphen auf verschiedenen Ketten skaliert werden können.</p>
<h3 id="heading-was-sind-teilstrome-substreams"><strong>Was sind Teilströme/ Substreams?</strong></h3>
<p>Substream ist eine neue leistungsstarke <strong>parallelisierte Engine</strong> zur Verarbeitung von Blockchain-Daten, die <strong>von StreamingFast für The Graph Network</strong> entwickelt wurde. Die Substreams-Engine ist für die Ausführung von entwicklerdefinierten Datentransformationen zur Verarbeitung von Blockchain-Daten verantwortlich.</p>
<p>Zuvor haben wir einen Untergraphen als ETL-Prozess im Kontext von Blockchain-Daten definiert. ETL steht für Extrahieren, Transformieren und Laden. Im Zusammenhang mit Blockchain-Daten bezieht sich ETL auf den Prozess der Extraktion von Daten aus der Blockchain, die Umwandlung in ein Format, das von Anwendungen verwendet werden kann, und das Laden in ein Data Warehouse oder eine Datenbank. In der neuen Subgraph-Architektur wird die Extraktion von Blockchain-Daten von einem Graph-Knoten durchgeführt, der mit Firehose-Funktionen ausgestattet ist. Anschließend erfolgt die Umwandlung dieser Daten mit Hilfe der Substreams-Funktionalität.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688060714105/f1091ae2-6533-4ab7-ba96-81d26a05d282.jpeg" alt class="image--center mx-auto" /></p>
<p><strong>Substream</strong> ist ein Überdenken der <strong>Transformationsschicht</strong>, bei dem Sie statt Subgraph-Handler in AssemblyScript zu schreiben, Substream-Module in Rust schreiben. Substream-Module sind kleine Teile von Rust-Code, die in einer virtuellen <a target="_blank" href="http://webassembly.org">WebAssembly-Maschine (WASM)</a> laufen. Die Leistungs- und Sicherheitsmerkmale von Rust, kombiniert mit dem umfangreichen Bibliotheks-Ökosystem, befähigen Substreams, komplexe Berechnungen durchzuführen und</p>
<p>Transformationen effizient. Diese leistungsstarke Kombination gewährleistet die Anpassungsfähigkeit und Effektivität von Substreams bei der Verarbeitung von Blockchain-Daten im laufenden Betrieb.</p>
<h3 id="heading-vorteile-der-verwendung-von-teilstromen-substreams"><strong>Vorteile der Verwendung von Teilströmen/ Substreams :</strong></h3>
<p>1. <strong>Geschwindigkei</strong>t: Substreams priorisieren Geschwindigkeit durch ihre parallelisierte Architektur und ihr Streaming-First-Design, das einen hohen Durchsatz für die effiziente Indizierung von Blockchain-Daten gewährleistet.</p>
<p>2. <strong>Kombinierbarkeit</strong>: Substreams bieten Kompositionsmöglichkeiten, die eine einfache Kombination von Modulen zur Erstellung komplexer Indizierungspipelines ermöglichen. Diese Flexibilität gewährleistet Skalierbarkeit und ermöglicht es den Entwicklern, Indizierungslösungen auf die jeweiligen Anforderungen zuzuschneiden.</p>
<ol>
<li><strong>Wiederverwendbarkeit</strong>: Substreams betonen die Wiederverwendbarkeit und ermöglichen</li>
</ol>
<p>Entwickler können sie für mehrere Indizierungsaufgaben einsetzen. Diese</p>
<p>Der kosteneffiziente Ansatz spart Zeit und Aufwand, da die Indizierungslogik für verschiedene Aufgaben nicht neu erstellt werden muss.</p>
<ol>
<li><p><strong>Benutzerdefinierte Becken / Custom sinks</strong>: Substreams unterstützen benutzerdefinierte Becken, die eine nahtlose Integration mit den bevorzugten Datenspeicher- oder Analyselösungen der Entwickler ermöglichen. Diese Flexibilität ermöglicht es Entwicklern, maßgeschneiderte Indizierungslösungen zu erstellen, die auf ihre individuellen Bedürfnisse abgestimmt sind.</p>
</li>
<li><p><strong>Skalierbarkeit</strong>: Substreams sind auf Skalierbarkeit ausgelegt und können mühelos große Datenmengen verarbeiten. Ihre Architektur ermöglicht eine nahtlose Erweiterung, um wachsenden Anforderungen gerecht zu werden.</p>
</li>
</ol>
<p>6. <strong>Flexibilität</strong>: Substreams bieten eine außergewöhnliche Flexibilität und sind in der Lage, ein breites Spektrum an Blockchain-Daten zu indizieren. Diese Vielseitigkeit ermöglicht vielfältige Anwendungen und Anwendungsfälle, die verschiedene Arten von Daten im Blockchain-Ökosystem aufnehmen.</p>
<p>Zusammenfassend lässt sich sagen, dass die Einführung von <strong>Substreams,</strong> <strong>Firehoses</strong> und Custom sinks im <strong>The Graph-Ökosystem</strong> die Extraktions-, Transformations- und Ladeschicht (ETL) der Subgraphenentwicklung revolutioniert hat. Diese Fortschritte haben kritische Einschränkungen und Herausforderungen für Entwickler, die mit Blockchain-Daten arbeiten, behoben. Substreams bieten Geschwindigkeit, Zusammensetzbarkeit, Wiederverwendbarkeit, Anpassbarkeit, Skalierbarkeit und Flexibilität, was sie zu einer leistungsstarken Lösung für die effiziente Indizierung von Blockchain-Daten macht. Die Integration von Firehose hat die Synchronisierungszeiten erheblich verkürzt und ermöglicht einen nahezu zeitnahen Zugriff auf aktuelle Informationen. Darüber hinaus ermöglicht die Verwendung von benutzerdefinierten Senken die nahtlose Integration mit bevorzugten Datenspeicher- oder Analyselösungen. Durch die Nutzung dieser Technologien können Entwickler datenintensive Anwendungen auf Blockchain-Netzwerken aufbauen und dabei Dezentralisierung, Vertrauenswürdigkeit und Leistung beibehalten. The Graph hat erfolgreich eine dezentralisierte und effiziente Lösung bereitgestellt, die es Entwicklern ermöglicht, komplexe Operationen mit Blockchain-Daten durchzuführen, und damit neue Möglichkeiten für die Entwicklung innovativer und wirkungsvoller dezentralisierter Anwendungen eröffnet. <a target="_blank" href="http://substreams.streamingfast.io">Hier</a> können Sie mehr über Substreams erfahren und lernen.</p>
<p>Mein besonderen Dank geht an meinen The Graph Advocate Kollegen Ujjwal Thakur von der The Graph India Community der ein Subgraph Entwickler und bemerkenswerter Freund ist. Seine Unterstützung für die The Graph Community lässt diesen Artikel erst möglich werden.</p>
]]></content:encoded></item><item><title><![CDATA[Subgraphen erstellen: Ein Leitfaden zum Verstehen und Erstellen]]></title><description><![CDATA[Im ersten Artikel haben wir die Bedeutung von Daten im Blockchain-Ökosystem und die transformative Rolle von The Graph bei der Erleichterung des Datenzugangs für dezentrale Anwendungen (DApps) untersucht. Der zweite Artikel gab einen Überblick über d...]]></description><link>https://thegraphgermany.hashnode.dev/subgraphen-erstellen-ein-leitfaden-zum-verstehen-und-erstellen</link><guid isPermaLink="true">https://thegraphgermany.hashnode.dev/subgraphen-erstellen-ein-leitfaden-zum-verstehen-und-erstellen</guid><category><![CDATA[subgraph]]></category><category><![CDATA[#thegraph]]></category><category><![CDATA[The Graph]]></category><category><![CDATA[Blockchain technology]]></category><category><![CDATA[Subgraphs]]></category><dc:creator><![CDATA[Andy Schreiber /The Graph Germany]]></dc:creator><pubDate>Sat, 20 May 2023 19:16:07 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1684606864473/2025fec3-47c5-4e66-a945-009964ca2119.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Im ersten Artikel haben wir die Bedeutung von Daten im Blockchain-Ökosystem und die transformative Rolle von The Graph bei der Erleichterung des Datenzugangs für dezentrale Anwendungen (DApps) untersucht. Der zweite Artikel gab einen Überblick über das dezentrale Netzwerk von The Graph und beleuchtete die verschiedenen Teilnehmer und ihre gemeinsamen Bemühungen bei der Aufrechterhaltung des Netzwerkbetriebs. In diesem dritten Artikel konzentrieren wir uns auf das Verständnis von Subgraphen, die Einrichtung der erforderlichen Tools auf unserem lokalen Rechner und die Erstellung eines einfachen Subgraphen für einen ERC20-Token. Fangen wir also an.</p>
<p><strong>Was ist ein Untergraph?</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1684607079663/b2615342-5f3f-49dd-b158-d2bc9a545e3c.jpeg" alt class="image--center mx-auto" /></p>
<p><strong>Subgraph -</strong> das mysteriöse Buzzword, das in jedem unserer Artikel auftaucht. Aber ist ein Subgraph wie eine Minikarte für Blockchain-Daten oder eher wie ein GPS für Entwickler, die sich in der Blockchain-Wildnis verirrt haben? Ist es eine Gruppe von Superhelden, die sich zusammenschließen, um Blockchain-Bösewichte zu bekämpfen, die Blockchain-Daten organisieren und analysieren? Handelt es sich um kleine schwarze Kisten, in denen man alle Blockchain-Daten speichern kann, oder eher um winzige U-Boote, die tief in den Datenozean eintauchen und bestimmte Informationen abrufen können? Was es ist? Vielleicht schwirren Ihnen ähnliche Fragen im Kopf herum. Lassen Sie uns versuchen, diese Fragen zu beantworten.</p>
<p>Stellen Sie sich vor, Sie haben eine große Bibliothek mit Tausenden von Büchern und möchten einen Index erstellen, um den Lesern das Auffinden bestimmter Bücher zu erleichtern. Zu diesem Zweck könnten Sie eine Indexseite erstellen, die alle Bücher in der Bibliothek auflistet, gruppiert nach Autor oder Thema, zusammen mit ihrem Standort in den Regalen. Jedes Buch in der Bibliothek hätte seinen Eintrag auf der Indexseite, mit allen relevanten Details wie Autorenname, Titel, Genre und Erscheinungsdatum. Auf die gleiche Weise ist ein Subgraph wie eine Indexseite für einen bestimmten Datensatz in der Blockchain. Ein Subgraph ist eine offene <strong>API</strong>, die definiert, wie Daten aufgenommen, indiziert und bereitgestellt werden können. Ein Subgraph extrahiert Daten aus der Blockchain, verarbeitet sie und speichert sie so, dass sie einfach über <strong>GraphQL</strong> abgefragt werden können. Entwickler verwenden Subgraphen, um Daten in die Front-End-Schnittstelle ihrer Anwendung einzuspeisen. Die Entwickler definieren die Kriterien für den Index, indem sie ein GraphQL-Schema schreiben, und es werden Mapping-Funktionen erstellt, um die relevanten Daten zu extrahieren und dem Schema zuzuordnen. Der Subgraph wird dann bereitgestellt und anderen Entwicklern zur Verfügung gestellt, damit diese bestimmte Daten auf der Blockchain leichter finden und nutzen können.</p>
<h3 id="heading-technische-voraussetzungen-fur-den-einstieg-in-die-entwicklung-von-untergraphenhttpssubgraphdevhashnodedevbuilding-subgraphs-a-guide-to-understanding-and-creating-themheading-technical-prerequisites-for-getting-started-with-subgraph-development"><a target="_blank" href="https://subgraphdev.hashnode.dev/building-subgraphs-a-guide-to-understanding-and-creating-them#heading-technical-prerequisites-for-getting-started-with-subgraph-development"><strong>Technische Voraussetzungen für den Einstieg in die Entwicklung von Untergraphen</strong></a></h3>
<p>Bevor Sie in die Entwicklung von Subgraphen einsteigen, sollten Sie die technischen Voraussetzungen kennen. Diese Voraussetzungen rüsten Sie mit dem notwendigen Wissen und den Werkzeugen aus, um effektiv Subgraphen zu erstellen und die Leistungsfähigkeit des Graph-Protokolls zu nutzen.</p>
<ul>
<li><p><strong>GraphQL-Grundlagen</strong>: Um effektiv mit Subgraphen arbeiten zu können, ist es wichtig, GraphQL, die Abfragesprache für APIs, zu verstehen. Machen Sie sich mit GraphQL-Konzepten wie Schemata, Typen, Abfragen und Mutationen vertraut. Die offizielle <a target="_blank" href="https://graphql.org/learn/">GraphQL-Website</a> bietet eine umfassende Dokumentation und Tutorials. Wenn Sie Video-Tutorials bevorzugen, bietet dieses <a target="_blank" href="https://youtu.be/yqWzCV0kU_c">einsteigerfreundliche Video-Tutorial</a> eine gute Einführung in GraphQL.</p>
</li>
<li><p><strong>1 AssemblyScript</strong>: AssemblyScript ist eine Programmiersprache, die darauf abzielt, eine Teilmenge der JavaScript/TypeScript-Syntax bereitzustellen und gleichzeitig eine direkte Kompilierung in WebAssembly zu ermöglichen. Sie kann als eine Variante von TypeScript betrachtet werden, die sich auf die Erzeugung von effizientem WebAssembly-Code konzentriert. AssemblyScript weist Ähnlichkeiten mit TypeScript auf, so dass es Entwicklern, die bereits Erfahrung mit JavaScript oder TypeScript haben, vertraut ist. AssemblyScript ist strenger als normales TypeScript, bietet aber eine vertraute Syntax. Bei der Entwicklung von Untergraphen verwenden wir AssemblyScript, um Mapping-Funktionen zu schreiben. Die Mappings nehmen Daten aus einer bestimmten Quelle und wandeln sie in Entitäten um, die in unserem Schema definiert sind.</p>
</li>
<li><p><strong>2 Smart Contract</strong>: Untergraphen interagieren häufig mit Daten, die in Smart Contracts auf der Blockchain gespeichert sind. Ein gutes Verständnis von Smart Contracts ist also immer gut. Als Subgraph-Entwickler müssen wir nicht den gesamten Smart Contract verstehen, sondern nur so viel, dass wir in der Lage sind, Daten für die Interaktion zu erfassen. Zu den wichtigsten Bereichen, auf die sich Subgraph-Entwickler beim Umgang mit Smart Contracts konzentrieren sollten, gehören:</p>
</li>
<li><p><strong>3 Auffinden des Kernvertrags</strong>: Dezentrale Anwendungen (DApps) bestehen in der Regel aus mehreren intelligenten Verträgen, die miteinander kommunizieren. In den meisten Szenarien gibt es einen zentralen Vertrag, der als Kern der Anwendung dient und für die Aktualisierung des Benutzerzustands und die Verwaltung wichtiger Funktionen verantwortlich ist. Das Verständnis und die Interaktion mit diesem Kernvertrag ist für Subgraph-Entwickler bei der Arbeit mit DApps entscheidend. Indem sie sich auf den Kernvertrag konzentrieren, können Subgraphen-Entwickler die relevanten Daten und Ereignisse, die für die Funktionalität ihres Subgraphen und die Integration mit der DApp erforderlich sind, effektiv erfassen und verarbeiten.</p>
</li>
<li><p><strong>Zustandsvariablen</strong>: Identifizieren Sie die Statusvariablen, die wichtige Informationen innerhalb des Vertrags enthalten. Diese Variablen können Salden, Eigentumsangaben oder andere wichtige Datenpunkte darstellen. Überlegen Sie, wie Sie sie in Ihrem Teilgraphen genau erfassen und darstellen können.</p>
</li>
</ul>
<ul>
<li><p><strong>Vertragsfunktionen</strong>: Verstehen Sie die verschiedenen im Vertrag definierten Funktionen. Achten Sie auf die Eingabeparameter, Rückgabewerte und den Zweck der einzelnen Funktionen. Dies wird Ihnen helfen, die relevanten Daten und Ereignisse zu identifizieren, die Sie in Ihrem Teilgraphen erfassen müssen.</p>
</li>
<li><p><strong>Ereignis-Emission:</strong> Suchen Sie nach Ereignissen, die vom Vertrag ausgegeben werden. Ereignisse sind entscheidend für die Erfassung wichtiger Zustandsänderungen und Aktualisierungen innerhalb des Vertrags. Analysieren Sie die Ereignisstrukturen, einschließlich ihrer Parameter und Datentypen.  </p>
</li>
<li><p><strong>Aktualisierbarkeit des Vertrags:</strong> Wenn der Vertrag Bestimmungen zur Aufrüstbarkeit oder zu Proxy-Mustern enthält, sollten Sie darauf achten, wie sich dies auf den Datenzugriff und die Speicherung auswirkt.Wenn Sie sich beim Lesen eines Smart Contracts auf diese Aspekte konzentrieren, können Sie ein umfassendes Verständnis seiner Struktur, Funktionalität und seines Datenflusses gewinnen. Dieses Wissen hilft Ihnen bei der genauen Erfassung und Darstellung der relevanten Daten in Ihrem Subgraph.</p>
</li>
</ul>
<p>Wenn Sie diese technischen Voraussetzungen erfüllen und die empfohlenen Quellen nutzen, sind Sie gut gerüstet, um Ihre Reise zur Entwicklung von Subgraphen zu beginnen und die Fähigkeiten von The Graph zur Indizierung und Abfrage von Daten aus dezentralen Anwendungen zu nutzen.</p>
<h3 id="heading-einrichten-ihrer-umgebung-fur-die-entwicklung-von-untergraphenhttpssubgraphdevhashnodedevbuilding-subgraphs-a-guide-to-understanding-and-creating-themheading-setting-up-your-environment-for-subgraph-development"><a target="_blank" href="https://subgraphdev.hashnode.dev/building-subgraphs-a-guide-to-understanding-and-creating-them#heading-setting-up-your-environment-for-subgraph-development"><strong>Einrichten Ihrer Umgebung für die Entwicklung von Untergraphen</strong></a></h3>
<p>Bevor wir mit der Erstellung unseres Subgraphen beginnen, müssen wir sicherstellen, dass wir die notwendigen Werkzeuge auf unserem lokalen Rechner installiert haben. Im nächsten Artikel werden wir Sie durch den Prozess der Entwicklung Ihres Subgraphen führen. Doch zunächst wollen wir uns auf die Installation der erforderlichen Tools konzentrieren, damit wir loslegen können. Wenn wir die erforderlichen Tools installiert haben, können wir effizient und effektiv arbeiten. Dadurch wird sichergestellt, dass wir einen qualitativ hochwertigen Teilgraphen ohne unnötige Verzögerungen oder Probleme erstellen können. Gehen wir also einen Schritt zurück und vergewissern uns, dass wir alles richtig eingerichtet haben, bevor wir mit der Erstellung unseres Teilgraphen beginnen.</p>
<p>Bevor Sie mit der Installation anderer für die Entwicklung von Subgraphen erforderlicher Tools fortfahren, sollten Sie unbedingt überprüfen, ob Node.js bereits auf Ihrem lokalen Rechner installiert ist. Wenn Sie Node.js noch nicht auf Ihrem lokalen Rechner installiert haben, können Sie die neueste Version von der <a target="_blank" href="https://nodejs.org/en/download">offiziellen Website</a> herunterladen und installieren. Nach der Installation können Sie überprüfen, ob Node.js richtig auf Ihrem Rechner installiert ist, indem Sie den folgenden Befehl in Ihrem Terminal ausführen:</p>
<pre><code class="lang-abap">node -v
</code></pre>
<p>Dieser Befehl zeigt die auf Ihrem Rechner installierte Version von Node.js an. Wenn eine Versionsnummer angezeigt wird, ist Node.js ordnungsgemäß auf Ihrem Rechner installiert und konfiguriert, und Sie können mit der Installation der anderen für die Entwicklung von Subgraphen erforderlichen Tools fortfahren.</p>
<p>Wenn Node.js nicht installiert ist oder eine Fehlermeldung angezeigt wird, müssen Sie Node.js herunterladen und installieren, bevor Sie mit der Entwicklung von Subgraphen fortfahren können. Indem Sie sicherstellen, dass Node.js korrekt installiert ist, können Sie sicherstellen, dass Sie eine stabile Grundlage für die Entwicklung von Subgraphen haben.</p>
<p>Sobald Sie Node.js und npm installiert haben, können Sie mit der Installation des Graph CLI-Tools fortfahren. Mit diesem Tool können Entwickler auf einfache Weise Subgraphen erstellen und verwalten. Sie können das Graph CLI installieren, indem Sie den folgenden Befehl in Ihrem Terminal ausführen:</p>
<p>So installieren Sie das <strong>Graph CLI</strong> mit npm:</p>
<pre><code class="lang-graphql">npm install -g <span class="hljs-meta">@graphprotocol</span>/graph-cli
</code></pre>
<p>So installieren Sie The Graph CLI mit yarn:</p>
<pre><code class="lang-graphql">yarn global add <span class="hljs-meta">@graphprotocol</span>/graph-cli
</code></pre>
<p>Um zu überprüfen, ob The Graph CLI auf Ihrem lokalen Rechner installiert ist, können Sie den folgenden Befehl in Ihrem Terminal ausführen. </p>
<pre><code class="lang-graphql">graph --version
</code></pre>
<p>Indem Sie überprüfen, ob The Graph CLI auf Ihrem lokalen Rechner installiert ist, können Sie sicherstellen, dass Sie Zugang zu den notwendigen Werkzeugen für die Entwicklung von Subgraphen haben. The Graph CLI ist ein wesentliches Werkzeug für die Entwicklung von Subgraphen, da es Ihnen ermöglicht, Subgraphen im The Graph Network zu erstellen, einzusetzen und zu verwalten.</p>
<p>Wir haben unsere lokalen Rechner erfolgreich eingerichtet und alle notwendigen Werkzeuge installiert, um unseren Subgraphen-Entwicklungsprozess in Gang zu setzen. Jetzt sind wir bereit, uns mit den praktischen Aspekten der Entwicklung von Subgraphen zu befassen. In unserem nächsten Artikel werden wir uns an die spannende Aufgabe machen, einen Subgraph für einen ERC20-Token zu erstellen. Diese praktische Erfahrung wird es uns ermöglichen, das erworbene Wissen anzuwenden und aus erster Hand die Leistungsfähigkeit und Vielseitigkeit von Subgraphen bei der Erfassung und Verarbeitung von Daten aus Smart Contracts zu erleben. Bleiben Sie dran und erleben Sie einen spannenden und aufschlussreichen Einblick in die Welt der Subgraphen Entwicklung!</p>
<p>Wenn Ihnen die Lektüre meines Blogs gefallen hat, würde ich mich sehr freuen, wenn Sie sich einen Moment Zeit nehmen würden, um Ihre Unterstützung zu zeigen, indem Sie den Blog liken und kommentieren. Ihr Feedback und Ihr Engagement sind unglaublich wertvoll für mich und helfen mir, mich weiter zu verbessern und Inhalte zu erstellen, die informativ und ansprechend sind. In den kommenden Tagen werde ich einige Inhalte für The Graph erstellen. Folgen Sie mir auf Twitter und Hashnode, um über meinen nächsten Artikel in dieser Reihe informiert zu werden. Im nächsten Artikel werden wir unseren ersten Subgraphen erstellen. Sie können mich auf allen Plattformen finden <a target="_blank" href="https://hashnode.com/@subgraphdev">@subgraphdev</a> </p>
<p>Deutsche Fassung:</p>
<p>Andy Schreiber /<a target="_blank" href="https://twitter.com/German_TheGraph">The Graph Germany</a> </p>
<p>Neben der Entwicklungsarbeit widme ich mich auch der Aufgabe, andere über The Graph zu informieren, Inhalte zu erstellen  und mein Wissen mit der breiten Community zu teilen. Ich glaube, dass Bildung für das Wachstum des Blockchain-Ökosystems von entscheidender Bedeutung ist, und bemühe mich, komplexe Konzepte für alle Lernstufen zugänglich zu machen mit der Unterstützung einiger der führenden Blockchain Entwickler aus aller Welt des The Graph Ökosystem.</p>
]]></content:encoded></item></channel></rss>