Gibt es einen schnelleren Weg als geth --fast, um die Ethereum-Blockchain herunterzuladen?

Ich hatte den Mist-Client installiert, aber er war seit ein paar Wochen nicht mehr aktualisiert worden, also habe ich versucht, den chaindataOrdner umzubenennen (anstatt ihn zu löschen) und die Blockchain mit herunterzuladen geth --fast, da das angeblich schneller ist. Ich habe den Download vor ungefähr drei Tagen bei einer sehr langsamen Internetverbindung gestartet, und jetzt habe ich immer noch nur 188 MB Daten im chaindataOrdner. Gibt es eine andere, schnellere Möglichkeit, die Blockchain herunterzuladen? Soll ich einfach den Mist-Chaindata-Ordner wiederherstellen und versuchen, über den Mist-Client zu synchronisieren, da ich bereits einen großen Teil der Blockchain hatte?

Die Antwort darauf ist die Verwendung der Option --fast, ich suche nach schneller als nur --fast.
Sie können die berühmte Option --faster-than-fast-I-cant-wait verwenden.

Antworten (6)

Dies ist ein Community-Wiki, in der Hoffnung, dass es von der Community aktualisiert werden kann, wenn Entwicklungen stattfinden.

Hier ist das Neueste vom Ethereum Core-Entwickler Péter:

Karalabe [Ethereum] - Péter Szilágyi

Hallo, das stabile Geth hat nicht viele schwache Peers berücksichtigt, was die Synchronisierung selbst für gut vernetzte Peers ziemlich schwierig macht. Ein Vorschlag ist, die neueste Entwicklerversion auszuprobieren, die dem Stable-Zweig Lichtjahre voraus ist ( https://gitter.im/ethereum/go-ethereum?at=57526dc7e8163f872c4de23c ), oder wenn es Ihnen nichts ausmacht, Geth zu bauen Führen Sie für sich selbst diese aggregierende PR ( https://github.com/ethereum/go-ethereum/pull/2657 ) aus, die eine Menge Korrekturen für vollständige Importe und Verbindungen mit höherer Latenz einführt. Dieser letztere PR sollte am Montag eingemischt und hoffentlich auch in den Stable-Zweig gebracht werden, sodass Sie ihn als sicher betrachten können :)

Sie sollten in der Lage sein, darauf zu aktualisieren, wenn die nächste Version, Geth 1.4.6, laut Péter in Kürze verfügbar ist. (Geth 1.5 wird später veröffentlicht.)


--cache=1024sollte normalerweise zusätzlich zu angegeben werden --fast, ansonsten verwendet der Standard einen viel kleineren Cache ( --cache=16). Eine Geschwindigkeitssteigerung von 50 % ist nur durch Erhöhen des Caches möglich.

Wenn Sie anhalten geth --fast, können Sie ausführen geth --cache=1024, ohne etwas löschen zu müssen.

Die Flaggen --jitvmund --jitcachekönnen auch eine Geschwindigkeitserhöhung geben.

Sie können auch versuchen, --jitvm und --jitcache zu verwenden, um die Dinge zu beschleunigen
Kann ich die Cache-Größe ändern, wenn ein Teil der Blockchain bereits mit geth --fast heruntergeladen wurde? Oder muss ich zuerst den Chaindata-Ordner löschen? Ich werde später heute eine bessere Internetverbindung haben und werde es dann ausprobieren.
Wenn Sie anhalten geth --fast, können Sie ausführen geth --cache=1024, ohne etwas löschen zu müssen.
Der Standard-Cache ist 128 MB auf dem 1.4-Zweig :) Aber vielleicht ist es am besten, auf 1.4.6 zu warten, da ich es jetzt jeden Moment veröffentlichen werde ;)
@PéterSzilágyi Wenn es Ihnen nichts ausmacht, können Sie dieses Wiki gerne bearbeiten, vereinfachen oder komplett neu schreiben, wenn Sie Zeit haben. Es könnte so einfach sein wie "Führen Sie Geth 1.4.6 mit diesen Schaltern aus ..." Es wäre gut, nützliche Kommentare einzufügen, da ich versuchen werde, einige dieser Kommentare zu bereinigen. Vielen Dank
Beeinflusst ein höherer Cache die Geschwindigkeit der Synchronisierung neuer Blöcke, nachdem die Blockchain synchronisiert wurde? Ich baue etw. die darauf angewiesen ist, Vertragsereignisse so schnell wie möglich zu erhalten.
@AndiGiga Meine Vermutung ist nein: Einmal synchronisiert, hat der Cache nicht so viel Einfluss. Du könntest auch versuchen, eine neue Frage zu posten.

Wie in Wie viel schneller ist die Synchronisierung mit --jitvm gesagt? , Cache und Jitvm ändern die Leistung wahrscheinlich aufgrund meiner SSD nicht.

Wenn Sie sehr schnell synchronisieren möchten, verwenden Sie die Version 1.4.6 (nicht die Version 1.4.5 oder älter) oder die Version 1.5. Mit der 1.5-Version oder der 1.4.6 konnte ich in 22 Minuten mit dem --fast-Flag synchronisieren. Die Version 1.4.5 war > 1h. Während der Synchronisierung verwende ich eine Bandbreite von bis zu 4 MB/s.

https://bintray.com/karalabe/ethereum/geth-develop/1.5.0-unstable-828e1e3/view

Bevor Sie --fast verwenden, entfernen Sie bitte Ihre db (verwenden Sie geth removeb oder entfernen Sie das Chaindata-Verzeichnis)

Ich habe die Optionen --cache=1024 und --jitvm ausprobiert, aber seit Tagen heruntergeladen und immer noch nicht die vollständige Blockchain erhalten. Mein Laptop hat auch SSD, also verbessert --jitvm nur die Leistung auf normalen HDDs? Wenn ich wieder zu Hause bin, werde ich es mit geth 1.5 versuchen. Ich habe den Chaindata-Ordner entfernt, bevor ich die Option --fast verwendet habe.
die 1.4.6 ist draußen. Diese Version hat den letzten Patch und sollte wahrscheinlich schneller synchronisiert werden. Der jitvm wird in Zukunft interessant sein, wenn wir sehr komplexe Smart Contracts verwenden.

Wenn Sie einen anderen Computer haben, dem Sie vertrauen und auf dem die Blockchain bereits heruntergeladen wurde, können Sie die Datenbank von dort exportieren und wie hier beschrieben in Ihren aktuellen Computer importieren . Auf diese Weise geht der Download nicht über das Netzwerk und sollte sehr schnell sein. Beachten Sie, dass Sie dieser Maschine vertrauen müssen, sonst leben Sie möglicherweise auf einer anderen Blockchain.

Leider habe ich keine andere Maschine mit einer vollständigen Blockchain. Ich habe versucht, über Mist und über Geth auf meinen Arbeitscomputer herunterzuladen, aber es sieht so aus, als ob das Netzwerk diesen Datenverkehr blockiert, da ich überhaupt keine Blockierungen erhalte.

--fast ist sehr schnell, aber wenn die Datenbank nicht leer ist, funktioniert es nicht. Sie sollten die Datenbank leeren und es erneut versuchen.

Für mich war das die "beste" Lösung für die letzten 50.000:

geth --cache=512 --ipcdisable --vmodule=downloader=6
Könnten Sie das näher erläutern? Wie beschleunigt das Deaktivieren der RPC-Schnittstelle und das Erhöhen der Ausführlichkeit der Protokollierung die Blocksynchronisierung?
Entfernt sudo. Führen Sie geth nicht als root aus.

Sicher, mit parity --warp dauert es ungefähr 5 Minuten, um einen Schnappschuss der letzten 30.000 Blöcke zu erhalten, und danach wird die Blockchain in weiteren 2-3 Stunden synchronisiert.

Sie können den Knoten jedoch bereits nach wenigen Minuten verwenden.