Wenn ein neuer Knoten dem Spacemesh-Netzwerk beitritt, muss er sich zunächst mit den übrigen Knoten vertraut machen. Dieser Vorgang wird als „Synchronisierung“ bezeichnet und ist eine Voraussetzung für die Ausführung eines vollständigen oder Smashing-Knotens. In der Vergangenheit war es für Smesher schwierig, ihre Knoten erfolgreich zu synchronisieren, da der Synchronisierungsprozess sehr zeitaufwändig war. Die Synchronisierung umfasst in erster Linie das Herunterladen und unabhängige Überprüfen aller Blöcke, Transaktionen, ATXs und einiger anderer Daten sowie die Rekonstruktion des aktuellen Status von Grund auf. Das kostete den durchschnittlichen Smesher natürlich viel Zeit. Als Reaktion auf die zunehmende Schwierigkeit, einen neuen Knoten zu synchronisieren, haben wir eine Möglichkeit vorbereitet, den Synchronisierungsprozess zu beschleunigen. Wir stellen vor: Quicksync.
Anstatt alle oben genannten Synchronisierungsaktionen durchzuführen und den Netzwerkstatus anhand der Genesis zu berechnen, muss man mit Quicksync lediglich den aktuellen Status von einem vertrauenswürdigen Peer wie dem Spacemesh-Entwicklerteam oder einem anderen Knoten herunterladen. Obwohl dies im Widerspruch zur Web3-Philosophie „Nicht vertrauen, sondern überprüfen“ steht, glauben wir, dass dies eine Option sein könnte, an der einige Smesher angesichts der hohen Synchronisierungsprobleme interessiert sein könnten. Darüber hinaus hindert einen Smesher nichts daran, diesen Status nach dem Herunterladen im Hintergrund zu überprüfen.
Der heruntergeladene Status (auch Archiv genannt) liegt in Form einer state.sql-Datei vor und kann entweder automatisch mit Smapp oder manuell mit dem Dienstprogramm quicksync-rs heruntergeladen werden.
Anweisungen zur Verwendung von quicksync-rs zum Herunterladen des neuesten Stands finden Sie unten. Beachten Sie, dass, wenn Sie die neueste Version von Smapp verwenden, automatisch angeboten wird, Quicksync zum Abrufen des neuesten Status zu verwenden.
quicksync-windows-vX.XXzip aus dem GitHub-Release-Bereich herunter.quicksync.exe aus der in Schritt 1 heruntergeladenen ZIP-Datei.quicksync.exe in Ihren spacemesh Ordner. Standardmäßig befindet sich dieser Ordner unter: C:Users{USERNAME}spacemesh .state.sql in Ihrem Node-Data-Ordner sehen (im spacemesh -Verzeichnis und standardmäßig node-data genannt), löschen Sie sie. Andernfalls fahren Sie mit Schritt 5 fort.spacemesh -Verzeichnis, in dem sich die Datei quicksync.exe befindet. Sie können dies tun, indem Sie die Umschalttaste gedrückt halten, mit der rechten Maustaste klicken und die Option „Powershell hier öffnen“ auswählen..quicksync.exe --help ein und drücken Sie die Eingabetaste. Dadurch werden Ihnen die verfügbaren Optionen angezeigt..quicksync.exe download --node-data .node-data ein. Hier ist .node-data der Pfad zum Knotendatenordner.quicksync-rs lädt herunter, entpackt es und überprüft den heruntergeladenen Status.state.sql Datei enthalten. quicksync-linux-vX.XXzip aus dem GitHub-Release-Bereich herunter.quicksync Datei aus der in Schritt 1 heruntergeladenen ZIP-Datei.quicksync Datei mit diesem CLI-Befehl ausführbar: chmod +x quicksync . Jetzt haben Sie die ausführbare quicksync Datei.quicksync Datei in das spacemesh -Verzeichnis (standardmäßig unter ~/spacemesh ).state.sql in Ihrem Node-Data-Ordner sehen (im spacemesh -Verzeichnis und standardmäßig node-data genannt), löschen Sie sie. Andernfalls fahren Sie mit Schritt 6 fort.spacemesh -Verzeichnis, in dem sich die ausführbare quicksync Datei befindet, und führen Sie diesen Befehl aus: ./quicksync download --node-data ./node-data . Hier ist ./node-data der Pfad zum Knotendatenordner.quicksync-rs lädt herunter, entpackt es und überprüft den heruntergeladenen Status.state.sql Datei enthalten. quicksync-macos-vX.XXzip (oder quicksync-macos-arm64-vX.XXzip wenn Sie einen Mac der M-Serie haben) aus dem GitHub-Release-Bereich herunter.quicksync Datei aus der in Schritt 1 heruntergeladenen ZIP-Datei.quicksync Datei mit diesem CLI-Befehl ausführbar: chmod +x quicksync . Jetzt haben Sie die ausführbare quicksync Datei.quicksync Datei in das spacemesh -Verzeichnis. (standardmäßig unter ~/spacemesh zu finden).state.sql in Ihrem Node-Data-Ordner sehen (im spacemesh -Verzeichnis und standardmäßig node-data genannt), löschen Sie sie. Andernfalls fahren Sie mit Schritt 6 fort.spacemesh -Verzeichnis, in dem sich die ausführbare quicksync Datei befindet, und führen Sie diesen Befehl aus: ./quicksync download --node-data ./node-data . Hier ist ./node-data der Pfad zum Knotendatenordner.quicksync-rs lädt herunter, entpackt es und überprüft den heruntergeladenen Status.state.sql Datei enthalten. Nachfolgend sind die Exit-Codes und ihre Bedeutung aufgeführt:
0 – Alles gut.1 – Das Herunterladen des Archivs ist innerhalb der maximalen Wiederholungsversuche fehlgeschlagen (beliebiger Grund).2 – Archiv kann nicht entpackt werden: nicht genügend Speicherplatz.3 – Archiv kann nicht entpackt werden: aus einem anderen Grund.4 – Ungültige Prüfsumme der heruntergeladenen state.sql .5 – Die Prüfsumme kann aus irgendeinem Grund nicht überprüft werden.6 – Es kann keine Sicherungsdatei erstellt werden.7 – Ungültige Prüfsumme des Archivs.8 – Die Prüfsumme des Archivs kann nicht validiert werden. Es ist auch möglich, Delta-basiertes Quicksync herunterzuladen und anzuwenden. Unter der Annahme, dass state.sql bereits vorhanden ist, lohnt es sich darüber nachzudenken, darüber hinaus nur Deltas anzuwenden. Bitte beachten Sie, dass die Synchronisierung großer Teile mit vollständigem Quicksync schneller geht. Wenn Sie jedoch bereits synchronisiert sind und nur den neuesten Stand abrufen müssen, ist Incrementa Quicksync die richtige Wahl.
Beim inkrementellen Quicksync wird die neueste verifizierte Ebene in der Datenbank überprüft, dann kleine Dateien (normalerweise etwa 50 MB, aber bis zu 200 MB) heruntergeladen und auf die vorhandene state.sql angewendet. Jede Charge kann unterbrochen werden.
Das zweimalige Wiederherstellen desselben Batches gilt als No-Op und hat keine Auswirkungen auf die Datenbank.
Die Liste der verfügbaren Befehle für das quicksync Dienstprogramm ist unten aufgeführt. Beachten Sie, dass diese Befehle für Linux gelten. Ändern Sie einfach ./quicksync in .quicksync.exe für die Windows-Befehle.
./quicksync download : Lädt die neueste state.sql Datei herunter../quicksync check : Überprüft, ob die aktuelle state.sql aktuell ist../quicksync help : Zeigt alle Vorgänge an, die quicksync ausführen kann../quicksync incremental : Ermöglicht die Arbeit mit Delta-basiertem Quicksync../quicksync --version : Zeigt die Quicksync-Version an.cargo run -- help : Zeigt hilfreiche Befehle zum Ausführen des Pakets an. Relevant für Entwickler.