Der Geth-Knoten beginnt nach der schnellen Synchronisierung von Anfang an mit der Synchronisierung

--fastIch habe mit dem Befehl synchronisiert . Wie soll ich jetzt vorgehen?

Ich habe versucht, es zu stoppen und dann zu laufen geth --rpc, aber es sagt:

Last Header #1311471
Last Block #0
Fast Block #1310224

Was soll ich tun, um synchronisiert zu bleiben?

Hallo und willkommen bei Ethereum Stack Exchange. Was genau ist Ihre Frage. Wenn Sie auf einem schnell synchronisierten Geth-Client minen könnten?
Ich habe geth --fast und die verketteten Synchronisierungen bis fast zur aktuellen Nummer verwendet. Dann habe ich es gestoppt und den Befehl geth --rpc ausgegeben, um die Synchronisierung aufrechtzuerhalten, damit ich in einem anderen Terminal minen kann. Ich habe gesehen, dass die Kette wieder von vorne angefangen hat zu synchronisieren. Habe ich etwas falsch gemacht oder geth – schnell ist nichts fürs Mining? War irgendein anderer Schritt, den ich verpasst habe? Danke
Schlechte Idee: P Sie haben im Wesentlichen die ganze Arbeit, die Fast Sync geleistet hat, in den Müll geworfen: P Fast Sync verarbeitet nicht alle Blöcke, sondern lädt sie nur herunter und lädt, nachdem alle Blöcke vorhanden sind, den aktuellen Status des Netzwerks direkt herunter (dh nicht generieren, aber herunterladen). Sie haben es unterbrochen, bevor Sie ihm erlaubt haben, den aktuellen Status herunterzuladen, also haben Sie, obwohl Sie die Blöcke haben, nicht den tatsächlichen Status, in dem sich das Netzwerk befindet. Als Sie also neu gestartet haben, hatte es keine andere Wahl, als von vorne zu beginnen. Löschen Sie den Kettendatenordner, synchronisieren Sie erneut schnell und warten Sie tatsächlich, bis er fertig ist: P

Antworten (1)

Warum wird Fast Sync neu gestartet?

Wie im Péter Szilágyiobigen Kommentar von angegeben, müssen Sie warten, bis die --fastSynchronisierung abgeschlossen ist, andernfalls müssen Sie den Vorgang erneut starten. Die Meldung, die Sie auf Ihrer Konsole sehen sollten, wenn --fastdie Synchronisierung abgeschlossen ist, lautet „ Schnelle Synchronisierung abgeschlossen, automatische Deaktivierung “, wie unten gezeigt:

I0416 17:16:12.631667   30629 blockchain.go:1251] imported 195 block(s) 
  (0 queued 0 ignored) including 0 txs in 1.235990428s. #384 [d707e667 / d3d5d5c1]
 I0416 17:16:12.631825   30629 sync.go:180] fast sync complete, auto disabling
I0416 17:16:48.831757   30629 blockchain.go:1251] imported 4 block(s) (0 
  queued 0 ignored) including 0 txs in 12.933585ms. #388 [bbb506ab / 0ace7268]

Und um neu zu starten, müssen Sie Ihren Chaindata-Ordner löschen – siehe „Wie setze ich meine Blockchain zurück und starte geth – fast“ weiter unten.


Ethereum Mining nach Fast Sync

Synchronisieren Sie die Blockchain, und wenn Sie die neuesten Blöcke synchronisiert haben, können Sie den folgenden Befehl in Ihre Konsole eingeben:

miner.start(n)

wobei n die Anzahl der Threads ist, mit denen Ihre CPU minen soll.

Ich gehe hier davon aus, dass Sie die Blockchain mit einer normalen CPU und nicht mit einer Grafikverarbeitungseinheit (GPU) abbauen möchten. Vielleicht möchten Sie sich auf Ist CPU-Mining überhaupt den Ether wert beziehen? .

Wenn Sie eine GPU auf Ihrem Computer haben, sollten Sie zuerst diese Website nach „Mining“-Fragen und -Antworten durchsuchen oder eine separate Frage stellen, wenn Sie keine Antwort finden. Hier ist eine Frage und Antwort – Wie kann ich Ether unter GNU + Linux abbauen? .

Beachten Sie, dass Sie zunächst ein Konto erstellen müssen, auf das Ihre Mining-Belohnungen eingezahlt werden. Siehe „Aber ich habe eine GPU und möchte damit minen“ weiter unten.


Wie soll ich vorgehen?

Einzelheiten siehe unten.


Was soll ich tun, um synchronisiert zu bleiben?

Sie sollten nur zum geth --fast consoleersten Mal laufen müssen. Die --fastOption synchronisiert die Blöcke nach dem ersten Mal nicht schneller. --fastSie können die Parameter in nachfolgenden Ausführungen von weglassen geth.

Wenn Sie gethzum ersten Mal ohne --fastParameter laufen, gethkann es einige Tage dauern, bis Sie die Blockchain von anderen Computern über das Internet heruntergeladen haben – diese Zeit hängt von der Geschwindigkeit Ihrer Netzwerkverbindung und Ihrer Computer-CPU ab.

Wenn Sie es geth --fastzum ersten Mal in Ihrer Neuinstallation verwenden, geth --fastdauert das Herunterladen der Blockchain mehrere Stunden - dies hängt wiederum von Ihrer Netzwerkverbindung und Ihrer CPU ab.

Nach Ihrem ersten Download der Blockchain mit verwenden geth --fastSie nur noch gethohne --fastParameter. Die Synchronisierung wird jetzt schnell sein, da nur die neuen Blöcke von anderen Ethereum-Knoten über das Internet heruntergeladen werden müssen und sie mit einer durchschnittlichen Rate von etwa einem Block alle 14 bis 15 Sekunden produziert werden.

Wenn Sie Ihre Blockchain zurücksetzen und die Blockchain mithilfe von erneut herunterladen möchten, lesen Sie --fastden Abschnitt unten „Wie setze ich meine Blockchain zurück und führe sie aus geth --fast“.


Habe ich etwas falsch gemacht oder geth --fastist das nicht fürs Mining?

geth --fastwird verwendet, um ZUERST eine Kopie der aktuellen Blockchain von anderen Ethereum-Knoten über das Internet herunterzuladen. Wie in Was ist Geths "schnelle" Synchronisierung beantwortet, und warum ist sie schneller? :

Anstatt die gesamte Blockchain Link für Link zu verarbeiten und alle Transaktionen wiederzugeben, die jemals in der Geschichte stattgefunden haben, lädt die schnelle Synchronisierung die Transaktionsbelege entlang der Blöcke herunter und ruft eine vollständige aktuelle Statusdatenbank ab.

geth --fastist NICHT für den Bergbau. Dies ist nur der erste Schritt zum Herunterladen einer Kopie der Blockchain. Sie benötigen anschließend eine kontinuierlich synchronisierende Kopie der Blockchain, wenn Sie minen möchten.


Gab es noch einen anderen Schritt, den ich übersehen habe?

Nicht, dass ich das sagen könnte. Es ist ungewöhnlich, dass Ihre Kette von Anfang an mit der Synchronisierung beginnt, es sei denn, sie wurde nicht korrekt abgeschlossen oder es liegen einige Konfigurationsprobleme vor. Versuchen Sie, Ihr chaindataVerzeichnis zu löschen und Ihre Blockchain erneut zu synchronisieren. Sie sollten danach nicht von Grund auf neu synchronisieren müssen.



Die Details

Ich gehe davon aus, dass Sie den Synchronisierungsbefehl in einem Fenster (#1) ausführen und eine andere gethKonsole in einem anderen Fenster (#2) anhängen möchten. Und wenn Sie Ihre Konsole verlassen möchten, verwenden Sie die Tastenkombination Strg-D (^D). Wenn Sie mehrmals Control-C drücken oder den Prozess auf andere Weise beenden ( killin Linux oder Mac oder im Task-Manager in Windows), können Ihre Blockchain-Daten beschädigt werden (nur sehr selten - ist mir einmal passiert).


Zum ersten Mal synchronisieren

Führen Sie in Fenster Nr. 1 den Befehl aus:

geth --fast console

Führen Sie in Fenster Nr. 2 den folgenden Befehl aus, um eine Verbindung zur geth --fast consoleobigen Instanz herzustellen:

geth attach

Sie benötigen die --rpcFlags dafür nicht, da die Kommunikation zwischen diesen beiden gethInstanzen über das IPC-Protokoll erfolgt. Das IPC-Protokoll läuft nur innerhalb des lokalen Computers über einen Dateideskriptor. Das RPC-Protokoll kann für die Kommunikation zwischen verschiedenen Computern verwendet werden.


Synchronisierung nach dem ersten Mal

Führen Sie in Fenster Nr. 1 den Befehl aus:

geth console

Führen Sie in Fenster Nr. 2 den folgenden Befehl aus, um eine Verbindung zur geth consoleobigen Instanz herzustellen:

geth attach

Unterschied zwischen Konsolennachrichten --fastund normaler Synchronisierung

Die folgenden Meldungen werden auf dem geth --fast consoleBildschirm angezeigt - beachten Sie die Kopfzeile(n) und die Quittung(en) :

I0416 13:35:53.497422   30629 blockchain.go:889] imported 192 header(s) 
  (0 ignored) in 71.941018ms. #6336 [2edbbc3f… / b80c9ac3…]
I0416 13:35:54.263134   30629 blockchain.go:1044] imported 192 receipt(s) 
  (0 ignored) in 55.447062ms. #6336 [2edbbc3f… / b80c9ac3…]
I0416 13:35:54.683682   30629 blockchain.go:889] imported 192 header(s) 
  (0 ignored) in 73.050377ms. #6528 [8ab9a7af… / f2ffecac…]

Und die folgenden Meldungen werden auf dem geth consoleBildschirm angezeigt - beachten Sie die Blöcke :

I0416 13:32:23.331906   30581 blockchain.go:1251] imported 256 block(s) (0 
  queued 0 ignored) including 0 txs in 979.938402ms. #6366 [66dcf4c1 / c5d009a1]
I0416 13:32:24.169955   30581 blockchain.go:1251] imported 256 block(s) (0 
  queued 0 ignored) including 0 txs in 836.388044ms. #6622 [e11a3fa9 / d211c2e1]
I0416 13:32:24.974790   30581 blockchain.go:1251] imported 256 block(s) (0 
  queued 0 ignored) including 0 txs in 803.457715ms. #6878 [c9f9ae12 / 238493b8]

Hier ist der Übergang, wenn die --fastSynchronisierung abgeschlossen ist und die normale Synchronisierung beginnt:

I0416 17:16:12.631667   30629 blockchain.go:1251] imported 195 block(s) 
  (0 queued 0 ignored) including 0 txs in 1.235990428s. #384 [d707e667 / d3d5d5c1]
I0416 17:16:12.631825   30629 sync.go:180] fast sync complete, auto disabling
I0416 17:16:48.831757   30629 blockchain.go:1251] imported 4 block(s) (0 
  queued 0 ignored) including 0 txs in 12.933585ms. #388 [bbb506ab / 0ace7268]

Wie setze ich meine Blockchain zurück und laufegeth --fast

Die Blockchain-Daten werden standardmäßig an den folgenden Orten gespeichert (Referenz Backup & Restore ):

  • Mac: ~/Library/Ethereum/chaindata
  • Linux: ~/.ethereum/chaindata
  • Windows: %APPDATA%\Ethereum\chaindata

Löschen Sie den Inhalt des obigen Verzeichnisses oder verschieben Sie es an einen anderen Ort. Wenn Sie Ihre Daten erfolgreich synchronisiert haben, löschen Sie die alte Kopie.

Sobald die Daten im chaindataVerzeichnis entfernt wurden, sollten Sie wieder --fastsynchronisieren können.


Aber ich habe eine GPU und möchte damit minen

In diesem Fall benötigen Sie eine andere Anwendung ethminer, die die Mining-Operationen auf der GPU durchführt. Die Kommunikation zwischen gethund ethminerfunktioniert nicht über IPC. Sie müssen die RPC-Kommunikation aktivieren mit:

geth --rpc console

gethverwendet die Vorgabe --rpcaddr 127.0.0.1und --rpcport 8545. Starten Sie Ihre ethminermit dem folgenden Befehl

ethminer -F http://127.0.0.1:8545 -G

Der -GParameter ist die Anweisung ethminer, die Mining-Berechnungen mit Ihrer GPU durchzuführen.

Bevor Sie die obigen Befehle zum Minen ausführen können, müssen Sie ein Konto erstellen, auf das alle Mining-Belohnungen eingezahlt werden. Führen Sie den folgenden Befehl aus

geth account new

Sie werden zweimal nach einem Passwort gefragt, dann können Sie die obigen Befehle ausführen.


Verwandte Fragen

Die Moderatoren können diese Frage als Duplikat markieren, da es mehrere Fragen auf dieser Seite gibt, die möglicherweise verwandt sind:

Aber ich hoffe, dass dies eine vollständigere Anleitung ist, um Sie an Ihren Synchronisierungsproblemen vorbeizubringen.

Meine gethsynchronisiert seit einer Woche mit --fastOption und ist immer noch nicht fertig. Es hat die vollständige Synchronisierung mit der Gesamtzahl der Blöcke einmal durchgeführt und dann vom ersten Block neu gestartet, um sie zu verarbeiten. Dieser zweite Prozess ist extrem langsam. Gibt es eine Möglichkeit, die Blockchain zu torrent, ohne wochenlang nur synchronisieren zu müssen?
Danke für die Antwort. If you want to mine one cannot use --fastJetzt muss ich wieder von vorne anfangen, da ich das letzte Mal mit --fast aufgehört habe zu synchronisieren