Wie lösche oder setze ich die Blockchain in Geth zurück? (OS X)

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
Ich habe geth auf v 1.3.5 aktualisiert, aber ich habe vor einiger Zeit auch eth installiert (v 1.1.0 / eth newtwork protocol version: 61). Ich habe beide nicht oft benutzt, nur ab und zu angezündet

Antworten (3)

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.

würdest du starten gethum die kette neu zu laden oder direkt mit geth --fast?
geth --fast --cache=512 consoleso würde ich persönlich geth anfangen :D
Ist es nicht vorsichtiger, stattdessen "geth removeb" zu verwenden? Es ist sein Zweck.
Für Mac OSXrm -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 --fastSie daran hindert debug.traceTransaction(...), die --fastheruntergeladenen 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? .

Wenn Ihr PC über mehr RAM verfügt, kann auch --cache=4024 ausgeführt werden. Und geth --fast kann nur verwendet werden, wenn die Blöcke-Datenbank leer ist. Wenn Sie die Blöcke bereits herunterladen, wird davon abgeraten, geth --fast zu verwenden

Für andere Betriebssysteme ist die Standardeinstellung datadir:

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

Löschen chaindataSie das gefundene Unterverzeichnis.

Führen Sie geth --fast --cache=1024einen empfohlenen Weg aus, um die Kette schnell zu synchronisieren (vergessen Sie nicht, einen größeren --cacheWert mit einem Wert wie 1024 zu verwenden, da sonst der Standardwert 16 ist und nicht so schnell synchronisiert wird).

youtube.com/watch?v=vPi3nMmaunY - zeigt, wie Sie Ihren %APPDATA%-Ordner in Windows 10 finden. Für mich: %AppData%/Roaming/Ethereum/geth/chaindata