Wandeln Sie einen eth-Schlüssel in einen geth-Schlüssel um

Ich muss meinen Eth-Schlüssel in einen Geth-Schlüssel umwandeln.

eth hat den Schlüssel in %appdata%\roaming\Web3\keys, und ich sehe es als .jsonDatei. Wenn ich das in das %appdata%\roaming\Ethereum\keystoreVerzeichnis verschiebe, erkennt Geth es immer noch nicht. Wenn ich es versuche geth account import keyname.json, schlägt das fehl mit:

Fatal: Could not create the account: encoding/hex: invalid byte: U+007B '{'"

Ich habe auch versucht, die .json-Datei so zu ändern, dass sie eher wie der Geth-Schlüssel aussieht, indem ich "Adresse": "[Adresse]" ohne Erfolg hinzugefügt habe.

Hintergrundgeschichte: Ich habe ein Konto mit eth erstellt, etwas Ether hineingeschoben (überprüft mit etherchain.org), aber meine eth-Installation war immer kaputt, konnte keine Verbindung zu Peers herstellen usw., also möchte ich das Konto zu geth verschieben. Das Konto wurde ab eth 0.9.41 erstellt. Ich habe noch nicht versucht, eth neu zu installieren, falls etwas erhalten bleiben muss, um fortzufahren. Sicherheit zuerst...

Antworten (3)

Es ist möglich, aber nicht empfohlen und daher eine nicht dokumentierte Funktion.

  1. Rufen Sie die UUID des Kontos ab:

     ~ $ ethkey listbare
    8766c082-432f-5548-608c-6eec600757f9
    
  2. Zeigen Sie den privaten Schlüssel an:

     ~ $ ethkey inspectbare --show-me-the-secret 8766c082-432f-5548-608c-6eec600757f9
    Enter passphrase for key 8766c082-432f-5548-608c-6eec600757f9: 
    Key 8766c082-432f-5548-608c-6eec600757f9:
      ICAP: XE871TJEHQTCYKGJ2ETMECEX4AVZLMG4MZ
      Raw hex: 006ed403807ae87b9f958f25c33862927ba1b57b
      Secret: 7b275146cbb8da08xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe10da42934fa2f01
    
  3. Importieren Sie den einfachen Schlüssel in Geth:

     ~ $ echo 7b275146cbb8da08xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe10da42934fa2f01 > delete-me.prv
     ~ $ geth account import delete-me.prv 
    Your new account is locked with a password. Please give a password. Do not forget this password.
    Passphrase: 
    Repeat passphrase: 
    Address: {006ed403807ae87b9f958f25c33862927ba1b57b}
    
  4. Vergessen Sie nicht, den einfachen Schlüssel wieder von der Festplatte zu entfernen:

     ~ $ rm -f delete-me.prv 
    

Nach einigem Suchen habe ich einen Kommentar von Stephan Tual gefunden , der besagt , dass er Sie daran hindern soll, die (unverschlüsselten) privaten Schlüssel zu extrahieren, und sie dem Benutzer niemals preisgibt. Die Idee ist, dass dadurch das Risiko beseitigt wird, die Schlüssel zum Beispiel auf einem USB-Stick zu lassen.

Das Beste wäre, neue Schlüssel in Geth zu generieren und das Geld einfach auf das neue Konto zu überweisen.

Es besteht absolut keine Notwendigkeit, neue Schlüssel zu erstellen. Sie können den geheimen Schlüssel weiterhin über ethkey in geth importieren.
Ich konnte nicht herausfinden, wie. hast du etwas dagegen, eine Antwort zu posten?
Danke vielmals. Hat mir 5 eth aus einer schlechten eth-Installation mit einer problematischen Datenbank gespart.

Der Weg dorthin ist riskant, aber machbar. Es geht darum, Ihren privaten Schlüssel auf dem Bildschirm anzuzeigen, was im Allgemeinen eine WIRKLICH schlechte Sache ist.

ethkey listbare 
462352b14-0121-0454-5a4f-15f791233f1a

Nehmen wir also an, dies ist Ihre JSON-Schlüsseldatei. Dann würden Sie tun:

./ethkey inspectbare --show-me-the-secret 462352b14-0121-0454-5a4f-15f791233f1a

Und ethkeysollte Ihnen den privaten Schlüssel zeigen.

Ist das der Grund, warum es undokumentiert ist?
Das nehme ich an. Der C++-Client hat im Moment im Vergleich zu Geth nur minimale Unterstützung.
Lefteris – danke für all die derzeitige harte Arbeit am Raiden Network! : ) Ich habe auf der Raiden-Website bemerkt, dass Transaktionen vertraulich sind. Bedeutet dies, dass sie bis zu einem gewissen Grad auch im Wesentlichen anonym/privat sind?
hallo! Lassen Sie uns bitte Kommentare zum Thema relevant. Für raiden fragt mich in twitter/gitter/github. Kurze Antwort ist nein :)
Wie kann ich laufen ethkey? Der Befehl ist auf meinem nicht verfügbar geth console.

Die von eth verwendeten json-Dateien sind nicht mit den von geth verwendeten Keystore-Dateien (json) identisch. Um erfolgreich zwischen Clients zu wechseln, müssen Sie die Konten über den unverschlüsselten privaten Schlüssel erneut importieren.

1. Erstellen Sie ein Backup ... nur für den Fall

Der erste Schritt besteht darin, eine Sicherungskopie Ihrer eth JSON-Dateien zu erstellen, falls etwas schief geht. Diese sollten bereits extern gesichert sein, z. B. auf einem USB-Laufwerk, aber wenn dies nicht der Fall ist, nehmen Sie sich bitte die Zeit, dies jetzt zu tun.

2. Holen Sie sich Ihren unverschlüsselten privaten Schlüssel für Ihre eth-Konten.

Bitte beziehen Sie sich auf die StackExchange-Antworten in diesem Thread.

3. Importieren Sie diese neuen, unverschlüsselten privaten Schlüssel in Geth.

Bitte verwenden Sie die Anweisungen in diesem Thread.

4. Bestätigen Sie, dass Ihre Konten erfolgreich auf das neue Geth-Konto übertragen wurden

$ geth account list

5. Erstellen Sie eine Sicherungskopie Ihrer neuen Geth-Keystore-Dateien.

Persönlich würde ich das alte eth-Backup behalten ... nur für den Fall. Werfen Sie es in einen "old_eth_backup"-Ordner und nennen Sie es einen Tag. Die Geth-Keystore-Dateien befinden sich an den folgenden Orten. Sichern Sie diese Dateien.

Mac: ~/Library/Ethereum/keystore

Linux: ~/.ethereum/keystore

Windows: %APPDATA%/Ethereum/keystore

6. Löschen Sie die unverschlüsselten privaten Schlüssel von dort, wo Sie sie gespeichert haben.

Nachdem wir die verschlüsselten Geth-Keystore-Dateien erfolgreich gesichert haben, ist es an der Zeit, die unverschlüsselten privaten Schlüssel loszuwerden. Yay!