Geth-Import vs. Kopieren von Kettendaten

Ich versuche, mein RPi 2 mit der Blockchain zu synchronisieren.

geth importläuft ziemlich langsam, sowie die Synchronisierung von Grund auf neu.

Was wäre das Problem, wenn man einfach den .ethereum/chaindataOrdner von einem anderen vollständig synchronisierten Ethereum-Knoten kopiert?

Antworten (7)

geth speichert seine internen Zustände für das Hauptnetzwerk im Chaindata-Verzeichnis. Sie finden es im Verzeichnis:

  • ~/.ethereum unter Linux
  • ~/Library/Ethereum unter OS X
  • ~/AppData/Roaming/Ethereum

Es verwendet die LevelDB-Datenbank. Sie können dieses Verzeichnis nur speichern, wenn geth gestoppt ist, um Beschädigungen zu vermeiden. Die Daten sind auf Linux , Windows und MacOS X portierbar (ich habe es überprüft). Aber Sie müssen bedenken, dass dies kein sicherer Weg ist. Verwenden Sie keine von anonym bereitgestellten Chaindata-Archive. Die Transaktionen werden nicht geprüft! Wenn geth startet, prüft es, ob alle Dateien vorhanden sind. Wenn eine .ldb-Datei fehlt, ist das Chaindata-Verzeichnis beschädigt und Sie müssen dieses Verzeichnis entfernen!

Der Import und Export von geth ist sicher, aber langsam, da alle Transaktionen überprüft werden und die Operation die gleiche ist wie bei geth ohne das Flag --fast. Auf meinem 3720qm werden dafür 5h und 19Go Plattenspeicher verwendet. Die einzige Einsparung ist der Netzwerk-Download (1.5Go). Es ist schneller, einen Geth zu machen – schnell!

Auf meinem Intel 3720qm Mac Mini (1 Gbit/s) erhalten einige Bänke 1.4:

__________________________________________________
| Operation   | Disk Used | Time | Disk Written  |
|-------------|-----------|------|---------------|
| geth        | 19.Go     | 5h00 | 1To           |
| geth import | 19.Go     | 4h50 | 1To           |
| geth --fast | 3.7Go     | 1h00 | 100Go         |
--------------------------------------------------

Auf meinem Intel 3720qm Mac Mini (1 Gbit / s) erhalten einige Bänke 1.5 (in Entwicklung):

__________________________________________________
| Operation   | Disk Used | Time | Disk Written  |
|-------------|-----------|------|---------------|
| geth --fast | 3.8Go     | 17m  | 25Go          |
| geth        | 19Go      | 2h   | 100Go         |
--------------------------------------------------

Fazit:

  • Ich verwende Chaindata-Archive nur zwischen meinen Computern.
  • Import ist sehr langsam, check all und speichert alle Zustände.
  • geth --fast ist schneller und speichert nur aktuelle Zustände.

Das Kopieren des .ethereum/chaindataOrdners ist eine gute Idee. Ich habe das auf meinem Rpi2 gemacht und alles hat gut funktioniert. Auch wenn es auf dem Originalcomputer nicht vollständig synchronisiert ist, beginnt der RPi2 einfach mit der Synchronisierung vom letzten Block im kopierten Chaindata-Ordner, wodurch viel Zeit gespart wird.

Beachten Sie, dass ich nie gelaufen bin geth import blockchain_db. Es war nicht nötig. Das Kopieren des chaindataOrdners war einfach und es funktioniert.

Hat das noch jemand probiert? Einfach die Dateien kopieren/einfügen?

Ich habe die vollständige Blockchain auf 1.088.000 Blöcken in 13 min exportiert. (1.00 GB) Um es auf einem Ubuntu 14.04-Rechner und nicht schlechter Hardware zu importieren, dauerte es über 8 Stunden! Importieren oder vollständig von Grund auf synchronisieren ist also kein großer Zeitunterschied. Das Starten der Konsole nach dem Import der Blockchain dauert wieder ca. 20 min.

Es funktioniert, aber beim nächsten Mal würde ich auf jeden Fall versuchen, das einfach zu kopieren, chaindatada es auch funktionieren und viel Zeit sparen sollte.

Ich war begeistert, dass es eine Importfunktion gibt - nur um jetzt deprimiert zu sein, dass ich ewig brauchen werde. Warum gibt es in Gottes Namen überhaupt eine Importfunktion?!
"Ich würde auf jeden Fall versuchen, einfach die Kettendaten zu kopieren, da dies auch funktionieren und viel Zeit sparen sollte" - Ich hatte das gleiche Problem, als ich versuchte, meinen Knoten schnell zu starten. Ich habe versucht, den Chaindata-Ordner von irgendwo herunterzuladen und mit der Synchronisierung fortzufahren, aber niemand teilt ihn über das Internet. Nachdem ich dieses Problem verstanden hatte, beschloss ich, meine eigene Lösung zu erstellen und anderen zu helfen, ihren Geth-Knoten schnell zu starten. Und jetzt kann jeder den Geth-Chaindata-Ordner hier herunterladen: chaindata.club

Führen Sie eine schnelle Synchronisierung durch, dafür wurde es entwickelt :) Löschen Sie Ihr vorhandenes chaindataund führen Sie es mit --fastaus. Versuchen Sie möglicherweise, den zugewiesenen Cache ein wenig zu erhöhen --cache 128. Es sollte einen himmelweiten Unterschied machen.

Der Export des Blocks 9389279 dauert weniger als 1 Stunde.

Ich habe den Befehl verwendet:

docker run -d --rm -v $PWD/full-ethereum-node:/root/.ethereum ethereum/client-go export /root/.ethereum/geth/chaindata/9389270.backup 0 9389270

Aber das Importieren der gesamten 9389270.backup-Datei ist so langsam, dass es gleich ist, den Knoten vom Genesis-Block mit dem Netzwerk zu synchronisieren.

Die Testumgebung war: Intel I9 (10 Kerne), 64 GB RAM und SSD

Ich habe den Ethereum Geth-Knoten auf meinem Raspberry PI 4B 8 GB mit 2 TB SSD synchronisiert, das über USB 3.0 angeschlossen ist. Es hat mehr als 3 Monate gedauert! Danach habe ich eine Lösung erstellt , die jedem helfen kann, schnell einen Ethereum Geth-Knoten zu starten. Laden Sie einfach den Ordner geth chaindata über HTTP herunter und synchronisieren Sie weiterhin Ihren eigenen Knoten mit dem definierten Schlüssel mit--datadir dem vorab heruntergeladenen Ordner.

Wenn Sie Ihre Ethereum-Installation auf einen anderen Computer verschieben oder beispielsweise eine Kopie auf einem anderen System für Solo-Mining haben möchten, möchten Sie neben einer Kopie der Wallet-Datei möglicherweise auch eine Kopie der Blockchain erstellen, damit die Der Geth-Client muss das Ganze nicht erneut aus dem Netzwerk herunterladen.

So können Sie die Ethereum-Blockchain auch exportieren und dann importieren, falls dies erforderlich sein sollte.

Exportieren und importieren Sie die Ethereum-Blockchain:

– Run: geth export blockchain_backup
– Copy the blockchain_backup file to the new system
– On the new system run: geth import blockchain_backup

Sie können die Blockchain-Daten auch aus einem Geth-Konsolenmodus exportieren und importieren, aber es scheint, dass es viel langsamer ist, wenn es innerhalb der Konsole ausgeführt wird als die obige Methode. Die Befehle für die Javascript-Konsole sind admin.exportChain('blockchain_backup')und admin.importChain('blockchain_backup'), Sie können es also auch damit versuchen, aber das erste Beispiel sollte schneller sein.

von cryptomining-blog.com

OP hat bereits Geth-Import versucht, aber die Frage ist, was der Unterschied zwischen dem und dem einfachen Kopieren des Ordners .ethereum/chaindata ist
@MrChico, ich habe beide Optionen in der Antwort hinzugefügt. Es gibt keine Änderung, ob es kopiert oder importiert wird, konstruktionsbedingt.
das macht in meinem Fall keinen Unterschied. Herunterladen dauert ewig - Importieren dauert ewig.^^
@Gewure hängt von der Maschinenkonfiguration ab, es wird einige Zeit dauern.
@niksmac stimmt dat. Ich war viel besser dran, die Kettendaten zu kopieren. Sonst hätte es 48 Stunden gedauert..