Tengo un cliente estándar (cliente QT en OSX) con una billetera encriptada. Intenté importar claves con pywallet, pero aunque decía que las estaba importando, cuando volví a ejecutar el cliente de bitcoin, dijo que wallet.dat estaba dañado (sí, el cliente no se estaba ejecutando cuando hice la importación).
Supongo que pywallet no conoce el cifrado y no se preocupó lo suficiente como para verificar que todo estuviera bien antes de importarlos.
Entonces, ¿cómo hago esta importación?
Al intentar ejecutar el cliente de la línea de comandos, aparece el siguiente error unos segundos después de iniciarlo (con la opción -daemon, por supuesto):
EXCEPTION: NSt8ios_base7failureE
CDataStream::read() : end of data
bitcoin in AppInit()
Ejecutar el cliente QT con la -server
opción también falla después de un tiempo (aparentemente funciona correctamente sin eso).
Desde 0.6.0, la importación/exportación de claves está disponible en el propio cliente, aunque solo a través de RPC. Los comandos se llaman dumpprivkey
y importprivkey
. Por ejemplo (en testnet):
$ ./bitcoin obtener nueva dirección
n2JjZgLeCUgfubswxDm9zAaBGSLLHSLdNv
$ ./bitcoind dumpprivkey n2JjZgLeCUgfubswxDm9zAaBGSLLHSLdNv
cR4RtpaeAZY8MwrNvTQGX9PZ9pdCgFoLxuo4Pkwqx61broC4Gb4y
Y en otra billetera:
$ ./bitcoind importprivkey R4RtpaeAZY8MwrNvTQGX9PZ9pdCgFoLxuo4Pkwqx61broC4Gb4y
$ ./bitcoind validar dirección n2JjZgLeCUgfubswxDm9zAaBGSLLHSLdNv
{ "isvalid": verdadero, "dirección": "n2JjZgLeCUgfubswxDm9zAaBGSLLHSLdNv", "ismine": verdadero, "pubkey": "029e3a934cfc9f89d7a1c15f99b98479cabc81964f4972e7b8fa3989a788261695", "iscompressed": verdadero, "cuenta" }
priv_sipa
o -5 "Clave privada no válida" si intento agregarpriv
o0'.