Ich habe eine defekte Blockchain und möchte die Kette hart zurücksetzen. Was muss ich löschen, um mit dem Herunterladen der Kette von Grund auf neu zu beginnen?
Ich weiß, dass es 2 Ethereum-Ordner gibt (ich bin auf OSX):
$home/.ethereum
$home/Libary/Ethereum
Ich habe Geth kürzlich auf "Homestead" 1.3.5 aktualisiert und bekomme im Terminal Fehler wie:
E0306 ... 3211 trie.go:309] Dangling hash node ref 3c6233326.... leveldb: not found
und manchmal erhalte ich eine Bad-Block-Warnung:
Bad block #1102797
Löschen Sie für Geth $home/Libary/Ethereum/chaindata
. Das sollte die Blockchain selbst auslöschen und Sie von Grund auf synchronisieren lassen. Außerdem möchten Sie wahrscheinlich danach eine schnelle Synchronisierung durchführen, um schnell wieder auf die Kette zu kommen --fast
.
geth
um die kette neu zu laden oder direkt mit geth --fast
?geth --fast --cache=512 console
so würde ich persönlich geth anfangen :Drm -R ~/Library/Ethereum/geth/chaindata/
geth removedb
Sie können auch verwenden geth removedb
, um die Blockchain- und Zustandsdatenbanken zu entfernen.
geth removedb
Remove local database? [y/N]
Führen Sie nach dem Entfernen der alten Datenbanken geth --fast --cache=1024
(siehe Antwort auf diese Frage von @eth
) aus.
Beachten Sie, dass die Verwendung geth --fast
Sie daran hindert debug.traceTransaction(...)
, die --fast
heruntergeladenen Blöcke zu verwenden. Einige weitere Informationen in So überprüfen Sie den VM-Trace mit Geth? und Wie kann der Transaktionsstatus aus einem ausgelösten Fehler erkannt werden, wenn das Gas genau dasselbe sein kann wie das Gas, das für eine erfolgreiche Transaktion verwendet wird? .
Siehe auch Was ist die „schnelle“ Synchronisierung von Geth und warum ist sie schneller? .
Für andere Betriebssysteme ist die Standardeinstellung datadir
:
Mac: ~/Library/Ethereum
Linux: ~/.ethereum
Windows: %APPDATA%/Ethereum
Löschen chaindata
Sie das gefundene Unterverzeichnis.
Führen Sie geth --fast --cache=1024
einen empfohlenen Weg aus, um die Kette schnell zu synchronisieren (vergessen Sie nicht, einen größeren --cache
Wert mit einem Wert wie 1024 zu verwenden, da sonst der Standardwert 16 ist und nicht so schnell synchronisiert wird).
xpnimi