Über Compass

Compass ist ein Open-Source-Koordinator, der als temporärer Sicherheitsmechanismus fungiert, bis die Mehrheitstransaktionen in einem IOTA-Netzwerk ehrlich sind. Um das Netzwerk zu schützen, werden IRI-Knoten eingerichtet, um jede Transaktion als bestätigt zu erkennen, wenn sie von einem vertrauenswürdigen Compass-Meilenstein referenziert wird.

Ein IOTA-Netzwerk ist darauf angewiesen, dass Clients einen Großteil der ehrlichen Transaktionen an IRI-Knoten senden. Je weniger Transaktionen in einem IOTA-Netzwerk gesendet werden, desto einfacher ist es für einen Angreifer, die meisten unehrlichen Transaktionen an IRI-Knoten zu senden. Infolgedessen kann ein Angreifer möglicherweise die Ausgabenmarker verdoppeln und Angriffe durchführen, die das Netzwerk aufteilen.

Um das Netzwerk vor diesen Angriffen zu schützen, sendet Compass in regelmäßigen Abständen Bündel ehrlicher Transaktionen an IRI-Knoten. Diese Pakete enthalten eine signierte Transaktion ohne Wert, die als Meilenstein bezeichnet wird. Die IRI-Knoten in einem IOTA-Netzwerk betrachten eine Transaktion nur dann als bestätigt, wenn sie direkt oder indirekt von einem Meilenstein referenziert wird.

Compass besteht aus drei Hauptphasen:

  • Merkle Baum Generation
  • Konfiguration
  • Start

Merkle Baum Generation

Bevor Compass mit dem Erstellen von Meilensteinen beginnen kann, wird ein Merkle-Baum erstellt. Dieser Merkle-Baum stellt sicher, dass jeder Meilenstein direkt oder indirekt auf die feste Adresse von Compass verweist, die jedem IRI-Knoten im IOTA-Netzwerk bekannt ist.

Als Ergebnis des Merkle-Baums sind Meilensteine ​​nur gültig, wenn sie mit dem Seed vom Compass generiert werden, da IRI-Knoten die Merkle-Wurzel (feste Adresse) eines bestimmten Blattes (Meilenstein) überprüfen können.

Die Anzahl der Meilensteine, die Compass senden kann, basiert auf der folgenden Formel: 2depth . Eine Tiefe von 16 ist also 216, was maximal 65536 Meilensteine ​​ergibt. Wenn Compass Meilen pro Minute sendet, kann er 2 Minuten bis zum Erreichen der Meilensteine ​​laufen. Daher muss die Tiefe hoch genug sein, damit der Test abgeschlossen werden kann.

Je höher die Tiefe, desto länger dauert die Erzeugung des Merkle-Baums.

Bei einer Tiefe von 24 würde Compass über 31 Jahre Meilensteine ​​senden können, aber es würde viel CPU-Stunden dauern, um diesen Merkle-Baum zu generieren. Wenn Sie nicht 15 bis 30 Minuten warten möchten, um den Merkle-Baum zu generieren, können Sie eine Tiefe von 8 wählen. Dies dauert nur einige Sekunden, aber Compass kann Meilensteine ​​nur für ein paar Stunden senden.

Die Setup-Phase

Während der Einrichtungsphase fragt Compass den IRI-Knoten, mit dem es verbunden ist, nach dem neuesten Meilenstein. Wenn das -bootstrap Flag während des Setups übergeben wird, überprüft Compass, ob ein Meilenstein auf dem IRI-Knoten vorhanden ist.

Compass erhält dann den neuesten Meilensteinindex vom IRI-Knoten und speichert ihn. Wenn kein neuer Meilenstein vorhanden ist, verwendet Compass den Index aus der Konfigurationsdatei.

Die Startphase

Während der Startphase tritt Compass in eine unbestimmte while Schleife ein und beginnt, Meilensteine zu senden.

Wenn das bootstrap Flag während des Setups übergeben wurde, erstellt Compass eine Kette von vier Meilensteinen, die aufeinanderfolgend auf den vorherigen Meilenstein verweisen.

Compass sendet Meilensteine auf folgende Weise:

  • Fragen Sie den IRI-Knoten nach Tipptransaktionen (Tippauswahl)
  • Bitten Sie den IRI-Knoten, den Meilenstein zu senden
  • Schlaf bis zum nächsten Tick
Anmerkung:

Der Inhalt kann durch die Übersetzung verfälscht sein. Im Zweifel gilt das englische Original der IOTA Foundation.

Quelle: https://docs.iota.org/docs/compass/0.1/concepts/about-compass/

  • Zuletzt geändert: 2019/02/10 15:01
  • von thoralf