Geth ist eine in Go geschriebene, populäre Implementierung des Ethereum-Protokolls. Nun wurde Version 1.8.0 veröffentlicht, die deutlich weniger Daten auf die Festplatte schreibt und so performanter läuft.
Ein Flaschenhals der bisherigen Geth-Clients war die auf die Festplatte geschriebene Datenmenge. Lag sie in der Vergangenheit häufig im zweistelligen GByte-Bereich soll eine neue Datensparsamkeit das nun ändern. Status-Informationen über interne Trie-Nodes mit ohnehin kurzen Lebenszeiten sollen nun im Arbeitsspeicher aufbewahrt und nicht auf die Festplatte geschrieben werden.
Bei einem Benchmark mit einer HDD mit 5400 RPM verringerte sich die Größe der Datenbank von 26,5 (Geth 1.7.3) auf 4,2 GByte (Geth 1.8.0), der Plattendurchsatz von 716 auf 43 GByte. Das dürfte vor allem Ethereum-Nutzer mit älteren Festplatten freuen. State Pruning funktioniert dabei in allen “–syncmode”-Varianten, lässt sich aber für Archivierungsknoten über “–gcmode=archive” deaktivieren.
Mehr Sicherheit, neue Kommandos
Zur Sicherheit haben die Entwickler die HTTP/WS-RPC-Endpoints mit einem DNS-Rebind-Schutz versehen, was Nutzern hilft, die Namen anstelle von IP-Adressen für die Endpoints nutzen. Bei den Light Clients hat sich das Peer-Discovery-Protokoll verändert und verliert seine Rückwärtskompatibilität. Geth 1.8.0 erkennt also keine 1.7-LES-Server. Die Protokolle verwenden dabei standardmäßig UDP-Port 30303 und entfernen tote Knoten aggressiver. Um Nachrichten über das Whisper-Protokoll zu schicken, unterstützt Geth nun dessen Version 6.
Nicht zuletzt kommt mit Geth 1.8.0 ein neues “ethkey”-Kommando, um lokale Schlüssel zu handhaben, ein “admin.clearHistory()” löscht die Geth-Historie in der Konsole und “geth attach” akzeptiert die Parameter “–datadir”, “–rinkeby” und “–testnet” alternativ zum IPC-Pfad. Herunterladen lässt sich der neue Client auf Github, wobei mittlerweile eine Version 1.8.1 mit kleineren Fixes online steht.





