Unterschied zwischen Bitcoin-Blockchain und Ripple-Ledger?

Die Bitcoin-Blockchain speichert den Verlauf von Transaktionen. Blockchain-Blöcke sind über einen Zeiger auf den vorherigen Hash miteinander verbunden.

In der Zwischenzeit speichert das Ripple-Ledger anstelle von Transaktionen Kontoinformationen wie Salden. Das Ripple-Ledger hat eine Ledger-Nummer.

Speichert das Ripple-Ledger die Historie der Ledger 0 bis N oder speichert es nur N? Speichert jedes Ripple-Ledger alle Kontoinformationen oder nur Konten, auf denen kürzlich Transaktionen stattgefunden haben?

Antworten (2)

Ripple Ledger speichert den Verlauf der Ledger 0 bis N oder speichert es nur N?

Das ist nur eine Frage der Definition. Sie können das Hauptbuch als einen einzigen Zustand des Netzwerks mit einer einzigen Sequenznummer definieren. Oder Sie können das Hauptbuch auch als jeden vergangenen Zustand des Netzwerks definieren.

Am häufigsten verwenden wir den Begriff „Ledger“, um auf einen einzelnen Zustand des Netzwerks zu einem bestimmten Zeitpunkt zu verweisen.

Jedes Ripple-Ledger speichert alle Kontoinformationen oder nur Konten, auf denen kürzlich Transaktionen stattgefunden haben?

Das ist wiederum nur eine Frage der Definition. Am häufigsten verwenden wir den Begriff „Hauptbuch“, um auf alle Statuseinträge (Konten, Angebote, Vertrauenslinien usw.) zu verweisen, die zu einem bestimmten Zeitpunkt verbunden waren.

Das Ledger-Design ist passiv. Das heißt, ein bestimmter Eintrag kann sich in den Hauptbüchern 10.000.000 bis 20.000.000 befinden, ohne dass ihm etwas Besonderes passiert und ohne dass eine Verarbeitung erforderlich ist, da er nur im Hauptbuch steht und nichts tut.

Wenn ein neuer gerippter Server ohne Daten startet, beginnt er nicht mit der Verarbeitung, bis er einen Punkt erreicht, an dem er jeden einzelnen derzeit gültigen/erreichbaren Ledger-Eintrag kennt. Das dauert in der Regel etwa zwei Minuten (weil die Struktur des Ledgers speziell darauf ausgelegt ist, dies effizient zu machen). An diesem Punkt kann es Transaktionen verarbeiten und normale Funktionen ausführen, obwohl es keinen Netzwerkverlauf hat. Natürlich kann es Ihnen nicht sagen, was in der Vergangenheit passiert ist.

Ich denke, die Frage hier bezieht sich auf die Replikation von Informationen aus dem vorherigen Hauptbuch in das neue Hauptbuch. Jedes Mal, wenn eine neue Konsensrunde abgeschlossen ist, ändert sich die Ledger-Höhe von N auf N+1. Meine Frage (und ich glaube die ursprüngliche Frage) lautet: Die angehängten und gespeicherten Informationen enthalten nur die neuen Transaktionen oder enthalten außer dem Verweis auf den vorherigen Höhenhash auch Verweise auf frühere Salden und Konten? Das geht aus der Antwort nicht hervor.
Es enthält auch Verweise auf frühere Salden und Konten, da sich diese nicht geändert haben und daher immer noch vorhanden sind. Es schließt sie weiterhin passiv ein.
Danke David für die Antwort, aber es ist immer noch nicht klar. Ich denke, die richtige Frage ist: Wird der "Zustandsbaum" in jedem neuen Ledger über das Netzwerk übertragen oder nur der Hash des Wurzelknotens des Zustandsbaums? Vielleicht ist es Gegenstand einer anderen Frage.
Jeder Knoten, der synchron ist, baut das neue Ledger selbst auf. Sie bestätigen den Hash des Ledger-Headers, der den Hash des Wurzelknotens des Zustandsbaums enthält. Jeder Server, der dieses Ledger aus irgendeinem Grund nicht erstellen konnte, es aber möchte, muss den Ledger-Header nach Hash abrufen, dann die Statusbaumwurzel nach Hash und so weiter. Wenn sie ein aktuelles Hauptbuch haben, führen die Baumzweige schnell zu einem Knoten, den sie bereits haben, wenn sie die geänderten Knoten abrufen.

Nach meinem Verständnis besteht der Hauptunterschied darin, dass Ripple-Server mit jedem neuen Hauptbuch eine Merkle-Baum-Hash-Wurzel des gesamten "Kontostatus" (jedes Konto, Guthaben usw.) einschließlich der neuen Transaktionen bereitstellen. Auf diese Weise können Knoten den Merkle-Baum-Hash vergleichen und sicherstellen, dass sie das aktuelle Ledger haben.

Da das aktuelle Ledger von den Validierern validiert wird, die den Root-Hash signieren, ist kein Serverknoten erforderlich, um jedes Ledger von 0 bis N zu speichern (es sei denn, Sie möchten das Ledger prüfen).

Da der Merkle-Baum-Hash alle Konten enthält, erhalten die Serverknoten nur die neuen Transaktionen und aktualisieren die Konten lokal. Dann generieren sie den Root-Hash und vergleichen ihn mit den empfangenen, um sicherzustellen, dass sie den aktuellen Status haben.

Ich frage mich, wie intensiv es ist, in jeder Runde einen Hash des gesamten Ledgers zu generieren. Gutes Thema für eine neue Frage.
Hier kommt die im vorherigen Kommentar erwähnte Frage ( bitcoin.stackexchange.com/q/69258/59247 ). Noch keine Antworten.