Convertir una clave eth en una clave geth

Necesito convertir mi clave eth en una clave geth.

eth puso la clave %appdata%\roaming\Web3\keysy la veo como un .jsonarchivo. Si muevo eso al %appdata%\roaming\Ethereum\keystoredirectorio, geth todavía no lo reconoce. Si trato de hacer geth account import keyname.json, eso falla con:

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

También intenté alterar el archivo .json para que se pareciera más a la clave geth agregando "dirección":"[dirección]" sin éxito.

Trasfondo: Creé una cuenta usando eth, moví algo de éter (verificado usando etherchain.org), pero mi instalación de eth siempre estaba rota, no se conectaba con compañeros, etc., así que quiero mover la cuenta a geth. La cuenta se generó a partir de eth 0.9.41. Todavía no he intentado reinstalar eth en caso de que haya algo que deba conservarse para continuar. Seguridad primero...

Respuestas (3)

Es posible pero no recomendado y, por lo tanto, una característica no documentada.

  1. Obtenga el UUID de la cuenta:

     ~ $ ethkey listbare
    8766c082-432f-5548-608c-6eec600757f9
    
  2. Mostrar la clave privada:

     ~ $ 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. Importe la clave simple en 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. No olvide eliminar la clave simple del disco nuevamente:

     ~ $ rm -f delete-me.prv 
    

Después de investigar un poco, encontré un comentario de Stephan Tual , que afirma que está diseñado para evitar que extraigas las claves privadas (sin cifrar), y nunca las expone al usuario. La idea es que esto elimine el riesgo de dejar las claves en una memoria USB, por ejemplo.

Lo mejor sería generar nuevas claves en geth y simplemente transferir los fondos a la nueva cuenta.

No hay absolutamente ninguna necesidad de crear nuevas claves. Todavía puede importar la clave secreta a geth a través de ethkey.
No pude averiguar cómo. ¿Te importaría publicar una respuesta?
Muchas gracias. Me salvó 5 eth de una mala instalación de eth con una base de datos problemática.

La manera de hacer esto es arriesgada, pero es factible. Implica mostrar su clave privada en la pantalla, lo que generalmente es MUY malo.

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

Así que digamos que este es su archivo de clave json. Entonces harías:

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

Y ethkeydebería mostrarte la clave privada.

¿Es esa la razón por la que está indocumentado?
Supongo que sí. El cliente c++ tiene un soporte mínimo en este momento en comparación con geth.
Lefteris: ¡gracias por todo el arduo trabajo actual en Raiden Network! :) Me di cuenta de que en el sitio web de Raiden las transacciones serán confidenciales, ¿significa esto que, hasta cierto punto, también serán esencialmente anónimas/privadas?
¡hola! Vamos por favor comentarios pertinentes al tema. Para raiden pregúntame en twitter/gitter/github. La respuesta corta es no :)
¿Cómo puedo correr ethkey? El comando no está disponible en mi geth console.

Los archivos json que usa eth no son los mismos que los archivos de almacén de claves (json) que usa geth. Para cambiar con éxito entre clientes, debe volver a importar las cuentas a través de la clave privada sin cifrar.

1. Haz una copia de seguridad... por si acaso

El primer paso es hacer una copia de seguridad de sus archivos eth JSON, en caso de que algo salga mal. Estos ya deberían estar respaldados externamente, como en una unidad USB, pero si no lo están, tómese el tiempo para hacerlo ahora.

2. Obtenga su clave privada sin cifrar para sus cuentas eth.

Consulte las respuestas de StackExchange que se encuentran en este hilo.

3. Importe estas nuevas claves privadas sin cifrar a geth.

Utilice las instrucciones que se encuentran en este hilo.

4. Confirme que sus cuentas se hayan transferido con éxito a la nueva cuenta geth

$ geth account list

5. Haga una copia de seguridad de sus nuevos archivos de almacén de claves geth.

Personalmente, mantendría la copia de seguridad antigua de eth... por si acaso. Tíralo en una carpeta "old_eth_backup" y llámalo un día. Los archivos del almacén de claves geth se encuentran en las siguientes ubicaciones. Haga una copia de seguridad de estos archivos.

Mac: ~/Library/Ethereum/keystore

Linux: ~/.ethereum/keystore

Windows: %APPDATA%/Ethereum/keystore

6. Elimine las claves privadas no cifradas de donde las haya guardado.

Ahora que hemos realizado correctamente la copia de seguridad de los archivos del almacén de claves geth, que están cifrados, es hora de deshacerse de las claves privadas no cifradas. ¡Hurra!