März 6, 2019

Ein Testnet ohne Coordinator

Ein Testnet ohne Coordinator

Wir freuen uns, die Einführung von znet, der ersten Iteration des Testnets ohne Coordinator, bekannt zu geben. Dieses Testnet lebt zwar schon seit mehreren Wochen, aber wir möchten es offiziell für die Beteiligung und den Beitrag der Gemeinschaft öffnen. Zu diesem Zweck laden wir Community-Mitglieder ein, an der Diskussion im Discord teilzunehmen, die Live-Visualisierung des znet Tangle zu überprüfen, Probleme und Code zum CLIRI Github Repo beizutragen und natürlich: CLIRI-Nodes erstellen und dem Netzwerk beizutreten.

CLIRI und der Coordinator

Lasst uns einen Schritt zurückgehen und besprechen, warum wir noch ein Testnetz brauchen und was CLIRI auszeichnet. CLIRI steht für "Coo-less IRI". Im Kern ist es eine Kopie von IRI, bei der alle Coo-Komponenten entfernt wurden. Ihr Zweck besteht darin, eine Testumgebung für das Betreiben eines IOTA-Netzwerks ohne Coordinator bereitzustellen. Dies ist ein notwendiger erster Schritt, um die Herausforderungen zu verstehen, denen ein Mainnet ohne Coo eines Tages begegnen wird.

Lasst uns zusammenfassen, was der Coordinator tatsächlich tut, um zu sehen, welche Änderungen wir in CLIRI programmieren mussten. In jeder Minute veröffentlicht der Coo einen Meilenstein, eine Transaktion, die von der IOTA Foundation signiert wurde. Alle Transaktionen, auf die ein Meilenstein verweist, gelten sofort als bestätigt.

Es scheint unkompliziert den Coo loszuwerden: Wir können einfach aufhören, diese Meilensteine zu senden oder CLIRI wird sie wie gewöhnliche Transaktionen behandelt und wir wären somit fertig. Leider kommen Meilensteine in verschiedenen Zusammenhängen wieder:

  • Startpunktauswahl. In IRI beginnt der Random Walk einige Meilensteine in der Vergangenheit. Da wir keine Meilensteine haben, brauchen wir eine alternative Methode, um zu entscheiden, wo der random Walk beginnt. Wir haben uns einen ziemlich groben heuristischen Algorithmus ausgedacht, der so funktioniert, dass er von einem letzten Tip aus zurückverfolgt wird, bis er einen Punkt mit genügend kumulativem Gewicht erreicht. Dieser Teil der Tip-Auswahl erweist sich als recht schwierig und weitere Überprüfungen wären willkommen.
  • Ledger-Statusberechnung. Meilensteine werden zur Optimierung der Ledgerberechnung verwendet. Anstatt den vollen Ledger-Status ausgehend vom Genesis zu berechnen, speichern wir einen Zwischenstatus für jeden Meilenstein.
  • Nodesynchronisation. Meilensteine sind hilfreich, um festzustellen, wann ein Node nicht mehr synchron ist. Wenn der letzte solide Meilenstein eines Nodes viel älter ist als der seines Nachbarn, hängt er wahrscheinlich hinterher.

Nullwert Testnet

Um die erste Iteration von CLIRI zu vereinfachen, haben wir uns entschieden, die Ledgervalidierung vollständig zu entfernen: Alle Transaktionen sind gültig, sofern sie die PoW-Anforderung erfüllen. Diese Version wird auf einem neuen Testnet ausgeführt, das wir als znet bezeichnen, was für "zero-value" steht. Unser Ziel ist es, diesen Code zu stabilisieren und seine Resilienz zu etablieren, bevor eine komplexere Validierungslogik implementiert wird.

Wir möchten auch mehr Analysen über die Leistung vom znet sammeln. Zum Beispiel haben wir eine neue getConfidence API eingeführt, die die Bestätigungssicherheit einer Transaktion berechnet, wie im Whitepaper definiert. Es wäre interessant das Vertrauensniveau im Zeitverlauf zu verfolgen, um zu sehen, wie viel Prozent der Transaktionen ein hohes Vertrauen erreichen und wie lange es dauert, bis es erreicht wird.

Wir freuen uns über eine Teilnahme seitens der Community. Ihr könnt helfen, indem ihr einen CLIRI-Node erstellt, Probleme identifiziert und an der Diskussion im #cliri-Diskussionskanal auf unserem Discord teilnehmt.


Quelle: https://blog.iota.org/a-coo-less-testnet-879ad17ca1af