April 15, 2019

Stateful-Clientbibliotheken: Teil 1

Stateful-Clientbibliotheken: Teil 1

Heute veröffentlichen wir offiziell die Betaversionen unserer neuen Stateful-Client-Bibliotheken, die ein sogenanntes 'Account-Modul' enthalten. Der Name wird diesem sehr umfangreichen Update nicht gerecht. Daher werden wir versuchen, die Änderungen in den beiden Blogbeiträgen zusammenzufassen, die wir bezüglich der Bibliotheken veröffentlichen werden. Hier ist der 1. Teil.

Client-Bibliotheken waren schon immer ein wichtiger Teil um IOTA Anwendungen zu erstellen. Sie sollen die Umsetzung eurer Ideen in der Sprache eurer Wahl vereinfachen.

Die IOTA Foundation pflegt seit geraumer Zeit die Java-, JavaScript- und Golang-Versionen von Client-Bibliotheken. Und obwohl wir sehen, dass ihr mit den Bibliotheken bereits großartige Dinge erstellt, waren wir uns immer bewusst, dass dies alles andere als eine ideale Umgebung für Entwickler ist, die wir gerne für euch hätten.

Vor ein paar Monaten machten wir uns daher daran, die Client-Bibliotheken komplett neu zu gestalten und auf diese Weise so  viele komplizierte Vorgänge wie möglich auszugrenzen. Entwickler müssen sich jetzt nur noch darum kümmern, was ihnen wirklich wichtig ist: Das Senden und Empfangen von Transaktionen. Alles, ohne die komplizierten Kleinigkeiten des IOTA-Protokolls verstehen zu müssen, was ein vertieftes Wissen über das IOTA-Protokoll erfordert.

Was machen die neuen Bibliotheken?

Bei der Arbeit mit unseren Client-Bibliotheken mussten die Entwickler viele Komponenten von Grund auf selbst implementieren. Dies erforderte ein fortgeschrittenes Wissen über viele IOTA-Konzepte. Zum Beispiel musste man mit folgenden Sachen vertraut sein:

  • Transaktionen
  • Bundles und wie man sie aufbaut
  • Wissen, welche Adressen sicher für eine Einzahlung verwendet werden können und welche für die Auswahl der Eingänge verwendet werden können
  • Promoten und Reattachen ausstehender Transaktionen
  • und vieles mehr

Da die Clientbibliotheken keinen Zustand hatten, musste der Entwickler das Netzwerk verwalten, oder sich vollständig darauf verlassen. Sogar Operationen wie das Abrufen von Transaktionsdaten erforderten eine Netzwerkabfage, und die Bereinigung alter Datenbanken durch Snapshots musste berücksichtigt werden.

All dies machte das Bauen auf IOTA unnötig kompliziert. Dieser Aufwand, den ihr vor dem Senden einer Transaktion hattet, war ein echtes Problem.

Vor allem, wenn ihr bei einfachen Anwendungen mit IOTA experimentieren wolltet. Mit den neuen Bibliotheken werden jetzt die meisten untergeordneten Aspekte abstrahiert. Ein Entwickler kann ein Konto erstellen und Transaktionen mit viel weniger Aufwand beginnen zu senden.

Die neuen Clientbibliotheken speichern die Kontoinformationen lokal, so dass Nodes nicht mehr nach Informationen wie Adress Status, oder Guthaben abgefragt werden müssen. Sie sind auch widerstandsfähig gegen Snapshots. Die Bibliotheken heute...

  • speichern die Kontoinformationen und Einstellungen lokal. Du kannst auch vorhandene Konten exportieren und importieren.
  • speichern ausstehende Transaktionen lokal.
  • bewältigen das Promoten und Reattachen von ausstehenden Transaktionen über eine vordefinierte Strategie. Du kannst auch deine eigene Strategie definieren. Die Funktion zum Reattachen und Promoten wird über ein Plug-In unterstützt. Du kannst eigene Plug-Ins entwickeln, die die Bibliotheksfunktionalität erweitern.
  • Haben eine Vorstellung davon, welche Adressen von dir auf deinem Konto hinterlegt und von dort ausgegeben wurden und welche für eine Zahlung verwendet werden sollten. Wenn du also eine Einzahlung beantragst, tust du dies auf sichere Weise.
  • Einführung eines Konzepts von bedingten Einzahlungsadressen (Conditional Deposit Addresses, CDAs), die jetzt das wichtigste Kommunikationsmittel für Einleger sind. Dies ist eine sehr wichtige Funktion, auf die wir im nächsten Post eingehen werden.

Weitere Informationen zu den Client-Bibliotheken findest du in unserer Dokumentation. Oder holen dir die Bibliotheken aus ihren jeweiligen Repositories:

Teil 2 dieses Beitrags.

‌                 ‌

Quelle: https://blog.iota.org/stateful-client-libraries-part1-30b334372a37