Tengo en algún lugar de mis discos duros algunas copias de billeteras antiguas que necesito analizar.
Mi idea era importarlos a blockchain.info, pero para hacer eso aparentemente necesitas descargarlos con pywallet.py, que es una de las peores piezas de software que he tenido en mis manos recientemente.
¿Hay alguna alternativa?
Es decir, un software que proporcione (a través de la línea de comandos) la ruta completa del archivo , volcará algo que blockchain.info puede importar, o algo que al menos le dé una billetera (nuevamente, la ruta completa a través de la línea de comandos) volcará todo el privado llaves.
PD: esto también tiene que funcionar para billeteras encriptadas, solicitando la contraseña en tiempo de ejecución (sería mejor) o en la línea de comando.
Esta es una vieja pregunta, pero solo para decir que el comando dumpwallet se ha agregado al núcleo de bitcoin. Esto le dará todas las claves privadas en formato de texto.
https://bitcointalk.org/index.php?topic=34028.180 También puedo proporcionar una dirección de correo electrónico si no tiene una cuenta de bitcointalk
Odio ser ese tipo, pero realmente deberías echar otro vistazo a pywallet. Sus problemas pueden ser específicos del pywallet de Joric, que no ha sido actualizado por un tiempo. Hay una bifurcación de pywallet mejor mantenida por JackJack.
Si esta era la versión que ya experimentaste, siempre puedes probar la interfaz web ejecutando: ./pywallet.py --web
y luego navegando a localhost:8989/ en un navegador web.
Sin embargo, solicitó una forma de línea de comandos para hacerlo, que con el pywallet de jackjack se vería así:
./pywallet.py --dumpwallet --datadir=DATADIR --wallet=WALLETFILE --passphrase=PASSPHRASE
la --passphrase
opción puede haber sido el problema que encontró con pywallet, ya que es necesario para manejar billeteras encriptadas, pero no está en el archivo Léame(No estoy muy seguro de por qué es eso).
De todos modos, pywallet realmente parece ser su mejor opción para lo que está tratando de hacer. Si tiene problemas para usarlo, no dude en incluir información sobre estos problemas.
--wallet
y --datadir
no funcionan: esperan que proporcione un directorio de datos completo, mientras que solo tengo el archivo wallet.dat. (y sí, estoy usando la versión de JackJack)./pywallet.py --dumpwallet --datadir=/mywalletfilefolder
donde mywallerfilefolder tenía un wallet.dat
. ¿Es posiblemente el cifrado el problema? ¿Qué resultado obtienes cuando lo intentas?wallet.dat
no es suficiente.Además de eso, no entiendo su problema con PyWaller, como sugiere Eyal, también puede usar el software estándar de Bitcoin para esto, aunque este método llevará un poco más de tiempo.
Sugiero hacer lo siguiente para cada wallet.dat
archivo que tenga:
wallet.dat
archivo actual.wallet.dat
en su directorio de Bitcoin.Abra una terminal y ejecute el demonio bitcoind:
bitcoind -daemon
Recupere una lista de todas las direcciones en la billetera:
bitcoind listaddressgroupings
Para cada dirección de la que desee la clave privada, descárguela:
bitcoind dumpprivkey <bitcoinaddress>
Detenga el demonio antes de cambiar el archivo wallet.dat:
bitcoind stop
Esto debería darle todas las claves privadas que necesita y puede importarlas a cualquier billetera que desee.
wallet.dat
todos modos, que es lo que estoy tratando de evitar en primer lugar. Tenga en cuenta que finge poder dar una ruta, pero en realidad no funciona: él quiere una ruta para un .bitcoind
directorio completo, mientras que yo solo tengo el archivo wallet.dat
.Como sugiere la otra respuesta. Puedes usar pywallet muy bien. Dado que necesita descargar muchas billeteras y le gustaría una solución CLI, entonces un simple script bash + pywallet funcionará bien.
Esto no está probado de ninguna manera (es decir, haga una copia de seguridad de todas las billeteras involucradas), pero debería funcionar bien:
#!/bin/bash
echo "Enter directory with all the wallet *.dat files live:"
read walletdir
echo "Enter passphrases for all the encrypted wallets in directory:"
read passphrase
for i in $walletdir/*.dat; do
pywallet.py --dumpwallet --datadir=$walletdir --wallet=$i --passphrase=$passphrase
done
@echo off
set /p walletdir=Wallet directory?:
set /p passphrase=Passphrase?:
for /r %%i in (*) do pywallet.py --dumpwallet --datadir=%walletdir% --wallet=%%i --passphrase=%passphrase%
Además, si desea aislar cualquier información dentro del volcado JSON, seguramente también puede hacerlo. No estoy exactamente seguro de la salida anticipada, --dumpwallet
ya que no soy un usuario de pywallet, pero creo que puede editar el código pywallet.py para cambiar
print json.dumps(json_db, sort_keys=True, indent=4)
a
print "\n".join(private_keys)
En conclusión, hacer esas 2 cosas imprimirá una larga lista de todas las claves privadas de todas las direcciones de todos los archivos de la billetera.
wallet.dat
archivo si no está ubicado en un directorio con la base de datos de bitcoin.Ejecute el pywallet.py de JackJack:
$ python2.7 pywallet.py --dumpwallet --datadir=/tmp | \
grep addr | sort | uniq | awk -F'"' '{print $4}' > \
~/tmp/wallet_dump.txt
Obtenga saldos de informes para cada dirección usando un script de web-scraping:
$ python3 addrep.py ~/tmp/wallet_dump.txt
resultados de ejemplo:
121a2C6kbqaPDrRDsbfZFNafcLBDZMum3p: 0 BTC
129oeaukHtXR8xiPqV8Mnb7p6hs9Ev3VwX: 0 BTC
12F9DRQRw2wmGrFUiZRQFk9cG2NtEBxYDv: 0 BTC
137wgZG4TSNw7Zqt4WrEHS7w2bgfeqXkkZ: 0 BTC
13PNjSy4b372f2jMVrHHLZnXXqgAArhwD8: 0 BTC
referencias:
https://github.com/jackjack-jj/pywallet/blob/master/pywallet.py https://github.com/joshuaburkhart/pywallet/blob/master/addrep.py
Si son menos de 10 monederos, simplemente cópielos en el directorio de configuración de bitcoin-qt uno a la vez y transfiera todos los bitcoins a un nuevo monedero. Tardarías unos 10 minutos en hacerlo.
kirian