Ich verwende Geth (neueste Version) seit ungefähr 12 Stunden und es ist immer noch nicht fertig.
Die Eingabeaufforderung zeigt dies:
INFO [05-21|12:05:00] Imported new chain segment blocks=1 txs=9 mgas=0.748 elapsed=40.047ms mgasps=18.687 number=3742904 hash=f8fd6e…fce9f8
INFO [05-21|12:05:29] Imported new chain segment blocks=1 txs=2 mgas=0.044 elapsed=16.018ms mgasps=2.741 number=3742905 hash=04b0be…3d64cd
INFO [05-21|12:05:38] Imported new chain segment blocks=1 txs=66 mgas=2.851 elapsed=95.126ms mgasps=29.971 number=3742906 hash=157014…c50cc5
Übrigens, meine Internetgeschwindigkeit ist gar nicht so schlecht, schau mal
Ist das normal ? Sollte ich versuchen, einen anderen Client wie Parity zu verwenden?
PS: Ich habe Geth mit dieser Befehlszeile ausgeführt:geth --fast --cache=1024
Führen Sie die folgenden Schritte aus, um den Synchronisierungsstatus zu überprüfen:
1.) Öffnen Sie eine neue Geth-Instanz und geben Sie sie ein. geth attach
2.) Geben Sie jetzt eineth.syncing
Dies zeigt Ihnen den "aktuellen Block" und den "höchsten Block".
100 * eth.syncing.currentBlock / eth.syncing.highestBlock
, um den abgeschlossenen Prozentsatz zu erhalten. Wenn es fast 100 ist, sind Sie synchronisiert.eth.blockNumber
mit einem Block-Explorer überprüfen, wenn Sie es noch einmal überprüfen möchten. Quellegeth attach
ist eigentlich eine komplette JavaScript-Umgebung! Wenn Sie den Prozentsatz wiederholt in einer zeitgesteuerten Schleife ausdrucken möchten, können Sie einfach laufen(function percentage() { console.log(100* eth.syncing.currentBlock / eth.syncing.highestBlock); setTimeout(percentage, 10000); } ());
Angenommen, Sie verwenden ein Linux-Betriebssystem, können Sie auch den Synchronisierungsstatus überprüfen (führen Sie dies als der Benutzer aus, unter dem Geth ausgeführt wird):
$ geth --exec eth.syncing.currentBlock attach
3991639
Wenn es nicht synchronisiert, wird nur „false“ angezeigt.
Oder, wenn Sie ein wenig ausgefallener werden und sehen möchten, wie viele Blöcke / Sekunde synchronisiert werden, ist hier eine Idee:
A=$(geth --exec eth.syncing.currentBlock attach)
while true; do
echo "Currently at block ${A}"
sleep 1
B=$(geth --exec eth.syncing.currentBlock attach);
echo "Reached block ${B}"
echo "$B-$A"|bc; A=$B
done
Ich denke, Sie sollten die Frage so bearbeiten, dass sie lautet: "Woher weiß ich, wann Geth mit der Synchronisierung fertig ist?"
Die Frage, die Sie gestellt haben, war vage, aber ich glaube, das ist die Antwort, die Sie gesucht haben:
Geth wird für immer weiterlaufen. Sobald es "fertig" ist, sitzt es einfach da und wartet auf den nächsten Block. Die "Zahlen", auf die Sie sich beziehen, sind Blocknummern, und sie werden in alle Ewigkeit hochgezählt. Sobald Ihr aktueller Block den höchsten Block erreicht, sind Sie alle synchronisiert. Wie von 5chdn erwähnt, kann der höchste Block durch Überprüfen an einem Ort wie etherscan.io bestimmt werden.
Ich ließ Geth stundenlang laufen und dachte, ich würde darauf warten, dass es "fertig" wird, obwohl es eigentlich schon lange fertig war. Zum jetzigen Zeitpunkt ist der höchste Block 3854270
Danke an den Kommentar von 5chdn, der wirklich der Schlüssel zur Antwort war.
Wenn Sie geth mit "--verbosity 5" starten, wird es eine Reihe von Debug-Informationen ausgeben. Es wird die Dinge nicht beschleunigen, aber es wird Sie wissen lassen, dass Geth nicht aufgehängt ist.
Ich denke, die Leute laufen Geth. Es fängt an, etwas zu brummen. Sie warten und warten. Und dann töten sie Geth, weil es erhängt zu sein scheint. Wenn Sie das tun, muss Geth diesen langen Prozess nur noch einmal von vorne beginnen, was die Synchronisierung noch viel länger dauert.
Ausführlichkeit 5 lässt Sie die Geduld haben, es laufen zu lassen, bis es fertig ist, weil Sie sehen können, dass es nicht aufgehängt ist.
INFO [05-22|08:14:16] Imported new chain segment blocks=1 txs=2 mgas=0.067 elapsed=11.000ms mgasps=6.104 number=3745188 hash=9b8973…920c7e
Läuft seit ca 32 Stunden. Ran Geth mitgeth --rpc --fast -cache=1024
Größe des Ethereum-Ordners: 17,9 GB
--syncmode
ist der neue Schalter für das Sync-Verhalten.Ich persönlich bevorzuge die Verwendung von Parity wegen der Snapshot-Funktion, die sie haben. Mit einer GCE-Cloud-Instanz konnte ich die gesamte Kette in 30 Minuten synchronisieren.
Hier ist eine Erklärung, wie es funktioniert: https://github.com/paritytech/parity/wiki/Warp-Sync-Snapshot-Format
q9f
J. Doe
q9f
Arefe
geth attach
heute nicht funktioniert. Also, ich habe es versuchtgeth --fast --cache=1024
und das funktioniert.llllllllllll
--syncmode=full --gcmode=archive
. Nach etwa 18 Stunden erreichte ich Block 2702327. Der höchste Block ist 6799556.