Scylla IOTA deutsch

In diesem Beitrag wird untersucht, wie die IOTA Foundation Scylla in ihre permanente Software, Chronicle, integriert hat, um reale Anwendungen auf dem Tangle zu unterstützen.

Einführung in IOTA

IOTA ist eine Open-Source-Distributed-Ledger-Technologie (DLT), die den reibungslosen Daten- und Wertetransfer auf dem Tangle unterstützt.

Das Tangle ist das verteilte Ledger, das von allen Knoten in einem IOTA-Netzwerk gemeinsam genutzt wird. Jeder Client, überall auf der Welt, ist in der Lage, Transaktionen an jeden beliebigen Knoten zu senden, und diese Transaktion wird validiert und über das restliche Netzwerk repliziert, um eine Version der Wahrheit zu bilden.

iota deutsch scylla

Unterschiede zwischen dem Tangle und Blockketten

Blockchains und das Tangle fallen beide in dieselbe Kategorie auf höchster Ebene: DLT. Der Hauptunterschied zwischen dem Tangle und einer Blockkette liegt in der Datenstruktur, die dem Tangle die folgenden einzigartigen Merkmale verleiht:

  • Keine Transaktionsgebühren
  • Keine Bergleute

Die Blockketten-Datenstruktur besteht aus einer Kette von aufeinanderfolgenden Blöcken, wobei jeder Block eine begrenzte Anzahl von Transaktionen enthält. Folglich können Sie neue Transaktionen nur an einer Stelle anhängen: Einem Block am Ende der Kette.

Um das Netzwerk gegen Angriffe zu sichern, muss jeder Block in einer Blockkette vermint werden. Der Abbau erfordert viel Rechenleistung, weshalb die Minenarbeiter durch Transaktionsgebühren und Blockbelohnungen einen Anreiz erhalten.

Aufgrund dieser Blockbegrenzung, die als Blockketten-Engpass bezeichnet wird, kommt es bei Blockketten-Netzwerken häufig zu langsamen Bestätigungszeiten und hohen Transaktionsgebühren.

blockchain bottleneck

Die Tangle-Datenstruktur ist ein gerichteter azyklischer Graph (DAG), bei dem jede Transaktion zwei vorhergehende genehmigt.

Anstatt auf einen einzigen Ort für das Anhängen neuer Transaktionen beschränkt zu sein, kannst du Transaktionen überall im Tangle anhängen, was die Begrenzung der Bestätigungszeiten drastisch reduziert.

iota deutsch dag

Anstatt Bergleute zu haben, wird das Gewirr durch eine temporäre Finalität, den so genannten Koordinator, gesichert, der entscheidet, welche Teile des Gewirrs gültig sind und bestätigt werden sollten.

Security deutsch iota

Dieses Gerät soll in einem Projekt namens Coordicide entfernt werden, um das Tangle vollständig zu dezentralisieren.

Die IOTA-Stiftung

Die IOTA-Stiftung ist eine gemeinnützige Organisation, die mit der IOTA-Gemeinschaft und ihren Partnern zusammenarbeitet, um eine nachhaltige Wirkung in der realen Welt zu erzielen.

Die Ziele der IOTA-Stiftung sind

  • Erforschung und Umsetzung des IOTA-Protokolls
  • Standardisierung des Protokolls, um seine breite Annahme zu gewährleisten
  • Produktionsreife Open-Source-Software entwickeln
  • Andere über IOTA-Technologien aufklären und ihre Anwendungsfälle fördern

Die IOTA-Gemeinschaft

Die IOTA-Gemeinschaft besteht aus 250.000 Mitgliedern, die eine aktive Rolle bei der Entwicklung und Einführung der IOTA-Technologie spielen.

Zu ihnen gehören einige bemerkenswerte Gemeinschaftsprojekte:

  • Ein Tutorial zur Automatisierung von IOTA-Zahlungen in Autos
  • Eine Fahrzeug-Ladestation
  • eHealth-Anwendungen

Über Permanentmoden

Permanentoden sind Geräte, die dazu bestimmt sind, die gesamte Geschichte des Tangle zu speichern. Um dies zu tun, validieren sie keine Transaktionen. Stattdessen besteht ihr einziges Ziel darin, Transaktionen von IOTA-Knoten zu übernehmen und sie in einer separaten verteilten Datenbank zu speichern, die von anderen abgefragt werden kann.

Der Fall für einen Permanode

Bei IOTA-Knoten mit begrenztem Speicherplatz können die Tangle ihre Datenbank schnell auffüllen. Dies stellt ein Problem für mobile Geräte und mehr noch für das Internet der Dinge dar, wo IOTA an der Integration mit Geräten auf niedriger Ebene und mit eingeschränkten Ressourcen arbeitet. Um dieses Problem zu bekämpfen, verfügen die Knoten über eine Funktion namens lokale Momentaufnahmen, die es ihnen ermöglicht, alte Transaktionen zu löschen und ihre lokale Kopie des Tangle klein zu halten.

Für viele geschäftliche Anwendungsfälle müssen die Daten in Transaktionen jedoch für lange Zeiträume gespeichert werden. Beispielsweise müssen Finanzdaten in einigen Fällen 10 Jahre lang gespeichert werden, und Identitätsdaten müssen mindestens für die gesamte Lebensdauer der Identität aufbewahrt werden (in einigen Fällen muss deine Identität möglicherweise sogar über deine Lebenszeit hinaus bestehen bleiben).

Um diese geschäftlichen Anwendungsfälle zu ermöglichen, ohne die Knotenpunkte zu belasten, entwickelte die IOTA-Stiftung eine Permanente mit dem Namen Chronik.

Warum Scylla

Chronicle verwendet Scylla als Standard-Speicherlösung, weil es die folgenden wichtigen Funktionen bietet:
Fehlertoleranz: Benutzer können eine Replikationsstrategie festlegen, um festzulegen, wie Daten repliziert werden sollen, um einen Single-Point-of-Failure zu vermeiden.

  • Datenkonsistenz: Benutzer können eine Konsistenzstufe einstellen, um zu bestimmen, ob eine Lese- oder Schreiboperation erfolgreich ist
  • Schnelle und effiziente Datenabfragen: Scylla verwendet LSM-basierten Speicher mit hohem Schreibdurchsatz
  • Zeit zu leben: Benutzer können die Lebensdauer ihrer Daten definieren
  • Niedrige Betriebskosten: Lizenzen (einschließlich freier und Unternehmenslizenzen) und Betriebskosten sind im Vergleich zu anderen Lösungen sehr günstig

Wie sich Scylla in Chronicle integriert

Chronicle ist ein Rahmen für den Aufbau permanenter Dienste, die Transaktionen von einem IOTA-Netzwerk empfangen und in einem Scylla-Cluster speichern. Ursprünglich in Elixir geschrieben, wurde es jetzt vollständig nach Rust portiert, um die Interoperabilität mit anderen IOTA-Projekten, wie Bee, zu unterstützen und eine sicherere Programmierumgebung zu schaffen.

Um Chronicle erweiterbar zu machen, ist es in die folgenden Komponenten unterteilt:

scylla iota deutsch

Dashboard

Bei dieser Komponente handelt es sich um eine Anwendung zur Verwaltung und Überwachung von Komponenten wie das Hinzufügen oder Entfernen von Scylla-Knoten ohne Ausfallzeit oder die Verbindung zu neuen IOTA-Knoten im Chronicle Broker.

Chronicle-Broker

Diese Komponente empfängt und verarbeitet Transaktionen von IOTA-Knoten über eine Ereignis-API wie MQTT und bietet nützliche Hilfsprogramme zum Import historischer Daten.

Gegenwärtig verwendet Chronicle Broker MQTT, um Transaktionen zu empfangen und zu persistieren, wobei die Shard-aware-Strategie im Chronicle Storage verwendet wird.

Chronicle-Speicherung

Diese Komponente ermöglicht den Zugriff auf die Datensätze und die physischen Scylla-Knoten in einem Cluster, einem so genannten Ring.

Chronicle Storage beginnt mit der Initialisierung des Dashboards und der Query Engine.

Die Abfrage-Engine besteht aus Stufen, die Anfragen für Transaktionen von jedem Shard in einem bestimmten Scylla-Knoten bearbeiten. Die Stufen werden von Stufenüberwachern kontrolliert, die wiederum von Knotenüberwachern kontrolliert werden, die die Cluster-Topologie pflegen.

Jede Stufe umfasst die folgenden leichtgewichtigen Prozessoren:

scylla shard deutsch

Arbeiter repräsentieren Anfragen wie z.B. von API-Aufrufen oder dem MQTT-Arbeiter.

Wenn ein Arbeiter eine Anfrage erhält, sendet er sie an den entsprechenden Reporter des Shards.

Der Reporter sendet die Anfrage dann an den Absender, der die Anfrage an den Shard-Socket weiterleitet.

Der Empfänger nimmt dann die Antworten aus dem Shard und leitet sie an den Reporter weiter, der sie an den Arbeiter zurückgibt, um sie an den Client weiterzuleiten.

Um Chronicle Storage zu verwenden, müssen Anwendungen die Worker-Eigenschaft implementieren und auf den lokalen Ring zugreifen, um Anfragen an die entsprechende Stufe zu senden.

Der Ring bietet eine Teilmenge nützlicher Methoden der Sendestrategie:

  • send_local_random_replica(token, request) Wählt eine zufällige Stufe innerhalb desselben Rechenzentrums aus
  • send_global_random_replica(token, request) Wählt eine zufällige Stufe in einem beliebigen Rechenzentrum aus

CQL-Schemata

Das aktuelle Chronicle-Datenmodell verwendet die folgenden Tabellen:

Transaktionstabelle: Speichert Transaktionshashes und Felder

CREATE TABLE IF NOT EXISTS mainnet.transaction ( hash varchar, payload varchar, address varchar, value varchar, obsolete_tag varchar, timestamp varchar, current_index varchar, last_index varchar, bundle varchar, trunk varchar, branch varchar, tag varchar, attachment_timestamp varchar, attachment_timestamp_lower varchar, attachment_timestamp_upper varchar, nonce varchar, milestone bigint, PRIMARY KEY(hash, payload, address, value, obsolete_tag, timestamp, current_index, last_index, bundle, trunk, branch, tag, attachment_timestamp, attachment_timestamp_lower, attachment_timestamp_upper, nonce) );

scylla deutsch

CREATE TABLE IF NOT EXISTS mainnet.hint ( vertex varchar, kind varchar, year smallint, month tinyint, milestone bigint, PRIMARY KEY(vertex, kind, year, month) ) WITH CLUSTERING ORDER BY (kind DESC, year DESC, month DESC);

scylla iota

Datentabelle: Speichert die Beziehungen zu einer Transaktion und kann nur verwendet werden, wenn wir die Sharing-Informationen für einen gegebenen Vertex haben, die von der Hinweis-Tabelle abgefragt werden können.

CREATE TABLE IF NOT EXISTS mainnet.data ( vertex varchar, year smallint, month tinyint, kind varchar, timestamp bigint, tx varchar, value bigint, milestone bigint, PRIMARY KEY((vertex,year,month), kind, timestamp, tx, value) ) WITH CLUSTERING ORDER BY (kind DESC, timestamp DESC);

scylla iota dlt

Wie geht es weiter?

Der Fahrplan von Chronicle enthält einige aufregende Verbesserungen:

Ein UI-Dashboard zur Verwaltung der Chronicle-Komponenten
Transaktionsverfestigung, damit Chronicle wissen kann, ob im Tangle irgendwelche Transaktionen fehlen
Selektiver Permanentmodus-Dienst zum Speichern nur der Transaktionen, an denen du interessiert bist
In der Zwischenzeit finden Sie in der Dokumentation Schritte für den Einstieg in die Chronik.

Wenn du etwas beisteuern möchtest, ist der Quellcode komplett Open Source, also wirf einen Blick auf die folgenden Ressourcen:

Chronicle GitHub Repository für den Chronicle-Quellcode
X-Teams GitHub-Repository für die Teilnahme an Chronicle-Projekten mit anderen Gemeindemitgliedern
Zwietracht für Diskussionen mit Chronicle-Entwicklern und anderen Mitgliedern der Gemeinschaft

Original Übersetzt von Louay Kamel: https://www.scylladb.com/2020/08/13/iota-using-scylla-for-distributed-storage-of-the-tangle/

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.