Bitcoin Forum
May 05, 2024, 08:20:30 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Consulta sobre el archivo 'wallet.dat'  (Read 4544 times)
XG (OP)
Sr. Member
****
Offline Offline

Activity: 286
Merit: 250



View Profile
August 15, 2014, 11:12:51 AM
 #1

Hola,

Utilizo el cliente Bitoin-Qt y guardo siempre una copia del archivo wallet.dat en un pendrive cuando realizo alguna transacción nueva para tenerlo actualizado.

Me gustaría saber vuestra opinión sobre la seguridad que os merece guardar además este archivo en el Dropbox o en un correo electrónico que me autoenviaría cambiándole el nombre y la extensión, supongo que sólo necesitaría volver a renombrarlo correctamente para recuperarlo. ¿Alguien utiliza estre sistema?

Saludos.
1714940430
Hero Member
*
Offline Offline

Posts: 1714940430

View Profile Personal Message (Offline)

Ignore
1714940430
Reply with quote  #2

1714940430
Report to moderator
1714940430
Hero Member
*
Offline Offline

Posts: 1714940430

View Profile Personal Message (Offline)

Ignore
1714940430
Reply with quote  #2

1714940430
Report to moderator
1714940430
Hero Member
*
Offline Offline

Posts: 1714940430

View Profile Personal Message (Offline)

Ignore
1714940430
Reply with quote  #2

1714940430
Report to moderator
The Bitcoin software, network, and concept is called "Bitcoin" with a capitalized "B". Bitcoin currency units are called "bitcoins" with a lowercase "b" -- this is often abbreviated BTC.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714940430
Hero Member
*
Offline Offline

Posts: 1714940430

View Profile Personal Message (Offline)

Ignore
1714940430
Reply with quote  #2

1714940430
Report to moderator
1714940430
Hero Member
*
Offline Offline

Posts: 1714940430

View Profile Personal Message (Offline)

Ignore
1714940430
Reply with quote  #2

1714940430
Report to moderator
1714940430
Hero Member
*
Offline Offline

Posts: 1714940430

View Profile Personal Message (Offline)

Ignore
1714940430
Reply with quote  #2

1714940430
Report to moderator
roterdam
Hero Member
*****
Offline Offline

Activity: 640
Merit: 500


interested to BUY CASASCIUS


View Profile
August 15, 2014, 01:46:53 PM
 #2

Utiliza una clave para el wallet larga yo te aconsejo para ser un poco paranoico 25 caracteres incluyendo mayusculas minusculas simbolos y numeros completamente al azar y evitando que se repitan mas de una vez (tendras que guardar esta clave anotada en un par de  sitios pues no es facil de memorizar) y si es posible activa 2fa en la cuenta de correo o el cloud store. con esto yo estaria tranquilo para la cantidad de btc recomendable que puedas tener en un monedero online. para cantidades mas grandes planteate un almacenamiento offline.
Shawshank
Legendary
*
Offline Offline

Activity: 1623
Merit: 1608



View Profile
August 15, 2014, 03:42:54 PM
 #3

Me gustaría saber vuestra opinión sobre la seguridad que os merece guardar además este archivo en el Dropbox o en un correo electrónico que me autoenviaría cambiándole el nombre y la extensión, supongo que sólo necesitaría volver a renombrarlo correctamente para recuperarlo.

Tan seguro como almacenar la clave privada en tu Dropbox con un nombre de fichero ImportanteBitcoins.dat.

Si es importante, encriptar siempre en ordenador desconectado de internet con contraseña muy fuerte. El fichero desencriptado no toca nunca internet salvo para realizar los gastos, en cuyo caso, el cambio va a otro wallet, también encriptado que nunca toca internet. Y así sucesivamente.

Si son cantidades muy pequeñas, yo los tengo sin encriptar en mi PC, pero no me quitaría el sueño perderlo.

Lightning Address: shawshank@getalby.com
XG (OP)
Sr. Member
****
Offline Offline

Activity: 286
Merit: 250



View Profile
August 16, 2014, 05:34:17 AM
 #4

Utiliza una clave para el wallet larga yo te aconsejo para ser un poco paranoico 25 caracteres incluyendo mayusculas minusculas simbolos y numeros completamente al azar y evitando que se repitan mas de una vez (tendras que guardar esta clave anotada en un par de  sitios pues no es facil de memorizar) y si es posible activa 2fa en la cuenta de correo o el cloud store. con esto yo estaria tranquilo para la cantidad de btc recomendable que puedas tener en un monedero online. para cantidades mas grandes planteate un almacenamiento offline.

Por supuesto que el 'wallet.dat' lo tengo encriptado, me refería solamente a cambiar el nombre del archivo y substituir wallet.dat por "pericodelospalotes".
Más que nada porque así no llama la atención para los rastreadores de correo electrónico.
roterdam
Hero Member
*****
Offline Offline

Activity: 640
Merit: 500


interested to BUY CASASCIUS


View Profile
August 16, 2014, 02:52:16 PM
 #5

pero creo que no te has fijado en lo importante . releelo
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
August 16, 2014, 03:31:22 PM
 #6

El punto es que no importa cómo se llame el archivo, ni la extensión que tenga siempre y cuando tenga una buena contraseña... claro, cambiarle el nombre tampoco le hace daño a nadie...

Utilizo el cliente Bitoin-Qt y guardo siempre una copia del archivo wallet.dat en un pendrive cuando realizo alguna transacción nueva para tenerlo actualizado.

Por cierto, no tienes que hacer un backup en cada transacción, el cliente oficial sólo genera nuevas direcciones de cambio cuando ya ha usado las que generó en el último "paquete", y creo que genera de a 100 en cada "paquete". Un backup al mes es mucho más que suficiente, a menos que seas un procesador de pagos o algo así con muchas transacciones diarias.
franckuestein
Legendary
*
Offline Offline

Activity: 1960
Merit: 1130


Truth will out!


View Profile WWW
August 16, 2014, 07:47:14 PM
 #7

Por mi parte no almacenaría el wallet.dat en Dropbox, pues nunca sabes los problemas de seguridad que puede llegar a tener un software de terceros. Además, algunos datos son accesibles desde Internet.

Una buena contraseña para la wallet y fichero encriptado y almacenado off-line debería ser suficiente si no tienes una cantidad elevada de BTC para holdear.

Si los vas moviendo, es mejor tenerlo seguro pero en tu propio ordenador, etc.

Un saludo!  Wink

[ AVAILABLE SIGNATURE SPACE ]
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
August 17, 2014, 07:53:48 PM
 #8

Si tienes una buena contraseña puedes publicar tu wallet en el sitio más lleno de piratas que se te ocurra y no va a pasar nada, en realidad no importa cómo llames al archivo, el e-mail al que lo envíes o el sistema de almacenamiento en línea al que lo envíes, tampoco importa lo corruptas que puedan ser las personas que trabajan ahí, lo único que importa es la contraseña, una laaarga, extraña y difícil contraseña... de esa forma es "imposible" que te quiten un satoshi así la wallet esté a disponibilidad del mundo entero.

Yo sí recomendaría tener una copia en línea de la billetera, ésto te cubre contra daños de hardware y otros desastres físicos y naturales ocurridos a las copias de tu casa... pero repito y repito: con una buena contraseña de cifrado, solo así no importa quién acceda al archivo de tu billetera.
XG (OP)
Sr. Member
****
Offline Offline

Activity: 286
Merit: 250



View Profile
August 18, 2014, 05:29:46 AM
 #9

Por cierto, no tienes que hacer un backup en cada transacción, el cliente oficial sólo genera nuevas direcciones de cambio cuando ya ha usado las que generó en el último "paquete", y creo que genera de a 100 en cada "paquete". Un backup al mes es mucho más que suficiente, a menos que seas un procesador de pagos o algo así con muchas transacciones diarias.

No sabía este detalle.

Así pues, si instalo un fichero wallet.dat de hace una semana con los cambios de la fecha correspondiente tendría igualmente la información actualizada?
franckuestein
Legendary
*
Offline Offline

Activity: 1960
Merit: 1130


Truth will out!


View Profile WWW
August 18, 2014, 01:17:05 PM
 #10

Si tienes una buena contraseña puedes publicar tu wallet en el sitio más lleno de piratas que se te ocurra y no va a pasar nada, en realidad no importa cómo llames al archivo, el e-mail al que lo envíes o el sistema de almacenamiento en línea al que lo envíes, tampoco importa lo corruptas que puedan ser las personas que trabajan ahí, lo único que importa es la contraseña, una laaarga, extraña y difícil contraseña... de esa forma es "imposible" que te quiten un satoshi así la wallet esté a disponibilidad del mundo entero.

Esto me recuerda al compañero de http://www.stealmywallet.com.
Es una página web donde una persona con 10.4634 BTC ofrece su wallet.dat para que lo descargues e intentes "obtener prestados" sus bitcoins  Cheesy

Evidentemente la contraseña será guapa guapa y se necesitarían bastantes años y potencia como para burlar la seguridad y obtener esa passphrase  Wink

Como tú comentas: una laaarga, extraña y difícil contraseña

[ AVAILABLE SIGNATURE SPACE ]
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
August 18, 2014, 02:48:47 PM
Last edit: August 18, 2014, 03:10:27 PM by fernarios
 #11

Por cierto, no tienes que hacer un backup en cada transacción, el cliente oficial sólo genera nuevas direcciones de cambio cuando ya ha usado las que generó en el último "paquete", y creo que genera de a 100 en cada "paquete". Un backup al mes es mucho más que suficiente, a menos que seas un procesador de pagos o algo así con muchas transacciones diarias.

No sabía este detalle.

Así pues, si instalo un fichero wallet.dat de hace una semana con los cambios de la fecha correspondiente tendría igualmente la información actualizada?

No sé si entiendo bien la pregunta, pero creo que aún no te han contado acerca del funcionamiento de la cadena de bloques, los "cambios" (transacciones) no se guardan en tu billetera, ahí sólo están las llaves privadas de tus direcciones y no hay transacciones ni saldo, ni nada más que las llaves privadas, el archivo wallet.dat es exactamente el mismo antes y después de todas las transacciones (excepto cuando se crea otro paquete de direcciones de cambio, lo amplío en el siguiente párrafo), todos los "cambios" se van a la cadena de bloques, están en la nube por así decirlo, en una nube P2P. Puedes importar un wallet de hace años, y cuando tu cliente se sincronice con la cadena de bloques se verá el saldo de las direcciones de esa wallet totalmente actualizados sin importar todas las transacciones que se hayan hecho en esos años.

Entonces sería necesario hacer solamente un backup en la vida, excepto que hay un detalle con las direcciones que contiene el archivo en el cliente oficial, el cliente oficial cuando hace una transacción escoge los fondos de las direcciones que cubrirán el monto de la transacción, y la diferencia (el cambio) la manda a otra dirección de tu wallet (dirección de cambio), ésto usualmente no escribe nada en el archivo de tu billetera pues (repito) todas las transacciones van a la cadena de bloques, pero cuando se han hecho muchas transacciones y todas las direcciones en tu wallet han sido usadas como direcciones de cambio o de entrada, el cliente crea otro paquete de direcciones para enviar ahí el cambio, así pues, si haces michas transacciones el archivo en algún momento tendrá más direcciones de cambio y en una transacción futura el saldo en las nuevas direcciones de cambio no lo tendrán las direcciones en el backup anterior.

¿Por qué crear más direcciones de cambio?, ¿por qué no enviar el cambio a la misma dirección en vez de usar una diferente en cada transacción?, es una medida para aumentar tu privacidad, si siempre usas las mismas direcciones para toda la vida, llegará un momento en el que alguien podría saber exactamente cuánto saldo tienes en todas las direcciones de tu billetera siguiendo el historial de transacciones que él sepa que te pertenecen, ésto no es deseable para muchos, por muchas razones.

Aquí hay algo más sobre el las direcciones de cambio (en Inglés): https://en.bitcoin.it/wiki/Change

Pero no hay que complicarse la vida, simplemente haces un backup cada pocos meses y estarás tranquilo.

(Debería haber alguna alerta en el cliente oficial, en donde recomiende renovar los backups cuando agrega un paquete de nuevas llaves al wallet.dat).
Nubarius
Sr. Member
****
Offline Offline

Activity: 310
Merit: 253


View Profile
August 18, 2014, 09:09:32 PM
 #12

(...) pero cuando se han hecho muchas transacciones y todas las direcciones en tu wallet han sido usadas como direcciones de cambio o de entrada, el cliente crea otro paquete de direcciones para enviar ahí el cambio, (...)

Creo que esto no es exactamente así. Las direcciones no se crean en tandas, sino que Bitcoin Core crea una nueva dirección oculta cada vez que se utiliza una de esa reserva de claves/direcciones (keypool en inglés), bien como dirección de cambio o bien como dirección normal de recepción. De esa manera, siempre hay un número constante de direcciones disponibles en reserva, independientemente de las operaciones que hayamos efectuado. Es decir, que con el valor predeterminado de 100, la copia del wallet.dat solamente dejará de ser una copia de seguridad completa a partir del momento en que se utilice la 101ª dirección nueva posterior a la copia.

Quien haga operaciones muy frecuentes puede cambiar ese valor de las direcciones de reserva mediante la opción de línea de "comandos" -keypool. Por ejemplo, ejecutando "bitcoin-qt -keypool=1000" se crearía un total de 1000 direcciones de reserva.
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
August 18, 2014, 10:27:16 PM
Last edit: August 19, 2014, 03:28:28 PM by fernarios
 #13

Gracias Nibarus, no estaba seguro de eso del paquete de 100 direcciones, estoy seguro de haberlo leído hace unos años, supongo que lo cambiaron o lo leí en alguna página que estaba equivocada...

y creo que genera de a 100 en cada "paquete"

Interesante, no le había prestado atención a ese comando keypool, entonces si ejecuto bitcoin con -keypool=100000 podría hacer un backup que me dure para toda la vida.... aunque encontré un post donde Satoshi dice que cada key en la keypool ocuparía 1K: https://bitcointalk.org/index.php?topic=1414.0 no sé si ésto sigue vigente, en el caso de 100000 sería un backup de 100 MB...  Tongue y supongo que se va a demorar un buen rato generándolas...  queda pesado el backup, pero no tanto, considerando que no me tendría que preocupar por renovarlo hasta dentro de 100.000 transacciones (o generaciones de nuevas direcciones de pago), sería como 27 años si asumimos un uso exagerado (para una billetera personal) de 10 transacciones por día.
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
August 19, 2014, 06:57:04 AM
 #14

Las direcciones no se crean en tandas, sino que Bitcoin Core crea una nueva dirección oculta cada vez que se utiliza una de esa reserva de claves/direcciones (keypool en inglés), bien como dirección de cambio o bien como dirección normal de recepción. De esa manera, siempre hay un número constante de direcciones disponibles en reserva, independientemente de las operaciones que hayamos efectuado.

Pero esto es porque cada vez que hacemos una transacción, tenemos que poner la contraseña para firmarla, y es gracias a eso que bitcoin core puede rellenar el disponible. Si gastamos direcciones sin meter la contraseña (por ejemplo, ejecutando muchas veces 'bitcoin-cli getnewaddress') llega un punto donde vacías el cubo y bitcoin core te da un error. Entonces metemos la contraseña ('bitcoin-cli walletpassphrase') y bitcoin core genera las que le faltan para llenar el cubo, que normalmente son 100.

O sea, normalmente no se generan en tandas porque bitcoin core ya puede ir teniendo el disponible siempre a tope, gracias a que metemos la contraseña regularmente. Pero si no la metiéramos durante un tiempo, entonces tan pronto fuera posible sí se generaría una tanda de golpe hasta llenar el cubo.
Nubarius
Sr. Member
****
Offline Offline

Activity: 310
Merit: 253


View Profile
August 19, 2014, 09:06:45 PM
 #15

^ Tienes razón. No me había fijado en que ese es el comportamiento cuando tienes cifrado el monedero. Cuando el monedero no está cifrado, en cambio, la generación de una nueva dirección sí que hace que se cree una nueva dirección de inmediato y el "cubo" se mantiene siempre lleno.

Tenía la idea de que la generación de nuevas direcciones requería desbloquear el monedero para evitar este tipo de cosas, pero no es así. Se ve que los desarrolladores decidieron reducir al mínimo las situaciones que requieren desbloqueo, a costa de perder la garantía de que el numero de direcciones de reserva se mantenga constante.
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
August 25, 2014, 07:39:18 PM
Last edit: August 25, 2014, 07:56:24 PM by fernarios
 #16

Quería agregar que probé bitcoin-qt con la opción -keypool=10000 para generar una nueva wallet donde no me toque preocuparme por un backup por algunos años (sé que hacer un backup no es la gran cosa, pero sí es una preocupación que me quito de encima Tongue )... 10.000 me pareció racional, pues el backup queda de un tamaño bastante manejable, y 10.000 transacciones (o peticiones de nuevas direcciones) es suficiente para mi, uso muy poco mi wallet de escritorio, en un uso promedio de una transacción (o petición) diaria me duraría unos 27 años, así que con mi nivel de actividad actual no tendría que preocuparme por un nuevo backup en por lo menos una década...

El tamaño inicial sin cifrar fue de 6.2 MB, se demoró creándola unos 10 minutos...  cifrándola se demoró unos 13 minutos y finalmente quedó de 4.1 MB, bastante pequeña en realidad (podría haberla hecho de 20000, 30000 o más Tongue), el tamaño de la wallet no pareció influir en el tiempo de inicio de bitcoin-qt, tampoco al momento de descifrarla para hacer una transacción, tampoco hubo problema en el tiempo de actualización del saldo, por lo que por ahora no hay un impacto perceptible en el rendimiento.

En algunos años crearé una nueva wallet y transferiré todo el saldo ahí para disfrutar de otro periodo sin preocuparme.

Me preocuparé antes si mi actividad diaria aumenta mucho y sé que me acerco a un tamaño de wallet en donde me deba preocupar (6 MB tal vez sea un tamaño prudencial para comenzar a preocuparme en éste caso). También podría necesitar una nueva wallet si quiero cambiarme a una versión del cliente donde el formato actual del archivo no se pueda importar (ésto es muy improbable supongo, pues aunque hagan algún cambio en la estructura del wallet.dat, supongo que se conservarán las funciones de importación del formato anterior).

El procedimiento es muy sencillo, una vez estoy seguro del PC en donde la voy a generar sólo tengo que instalar btcoin-qt, ejecutarlo con el comando "bitcoin-qt -keypool=10000", esperar, cifrar, esperar y listo.

P.D.: Aproveché para cifrar la nueva wallet con una contraseña generada de forma aleatoria con más de 30 caracteres, y le agrego otra buena cantidad de caracteres añadiendo una contraseña que sólo tengo en mi cabeza, tal vez el cifrado se demore menos con una contraseña de un tamaño menos paranoico xD .

P.D.2: Mi preocupación en el tamaño final del archivo era con el objetivo de enviar mi wallet a backups a la nube sin ningún problema, quería un archivo de menos de 10 MB, tal vez hubiese podido hacer una wallet de 30.000 direcciones y conservar éste límite, pero por ahora me conformo con 10.000 Tongue .

P.D.3: Para generar la contraseña aleatoria (y conservarla) usé el gestor de contraseñas KeePassX y subí su respectivo backup cifrado a la nube.
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
August 25, 2014, 08:24:35 PM
 #17

en un uso promedio de una transacción (o petición) diaria me duraría unos 27 años, así que con mi nivel de actividad actual no tendría que preocuparme por un nuevo backup en por lo menos una década...

[…]

En algunos años crearé una nueva wallet y transferiré todo el saldo ahí para disfrutar de otro periodo sin preocuparme.

Tienes tu estimación hecha y tal, todo perfecto, vale, pero ¿se podría saber cuándo has usado las 10.000? Así a bote pronto no se me ocurre ninguna manera…
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
August 25, 2014, 10:11:02 PM
Last edit: August 25, 2014, 10:56:32 PM by fernarios
 #18

No, indagué un poco y no encontré una manera en la que pueda directamente saber exactamente cuándo me acerco a usar las 10.000, mencioné que decidí preocuparme cuando el archivo tenga unos 6 MB, pues asumo que es lo que más o menos pesa una wallet con unas 15.000 direcciones, no estoy asegurando que la proporción sea exactamente 2 MB por cada 5.000 pues parece que el tamaño resultante no se puede determinar, (hice otra prueba de otra wallet de 10.000 y al final obtuve 3.5 MB), por eso no propuse esperar a 8 MB, creí que 6 era lo suficientemente prudente...

Sin embargo hay otra forma menos descuidada:

Usando la opción "listreceivedbyaddress 0 true" de bitcoind me va a imprimir una lista de todas las direcciones que se crearon para recibir transacciones:
Code:
./bitcoind listreceivedbyaddress 0 true

Para contar el número de éstas direcciones (en linux) solo tendría que combinarlo con el comando grep y wc:
Code:
./bitcoind listreceivedbyaddress 0 true | grep -o "{" | wc -l
(cuenta el número de apariciones del caracter "{" pues es el que se usa para separar cada dirección en la lista de direcciones)

Para el obtener el número de transacciones de salida se usaría el comando:
Code:
./bitcoind listtransactions | grep -o "{" | wc -l

Para sumarlos automáticamente haría falta un pequeño script:

Code:
#!/bin/bash
rec=$(./bitcoind listreceivedbyaddress 0 true | grep -o "{" | wc -l)
out=$(./bitcoind listtransactions | grep -o "{" | wc -l)
echo $((rec+out))


Si se quiere se puede hacer un script para ejecutar bitcoind en el mismo:
Code:
#!/bin/bash
./bitcoind -daemon
while ! ./bitcoind getinfo > /dev/null 2>&1
do
   echo "Esperando por bitcoind.."
   sleep 5
done
rec=$(./bitcoind listreceivedbyaddress 0 true | grep -o "{" | wc -l)
out=$(./bitcoind listtransactions | grep -o "{" | wc -l)
echo $((rec+out))
./bitcoind stop

(El tiempo de espera es para que bitcoind termine de cargar)

(Recordar que bitcoind requiere la creación del archivo bitcoin.conf con la variable rpcpassword)
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
August 26, 2014, 07:40:03 AM
 #19

mencioné que decidí preocuparme cuando el archivo tenga unos 6 MB, pues asumo que es lo que más o menos pesa una wallet con unas 15.000 direcciones, no estoy asegurando que la proporción sea exactamente 2 MB por cada 5.000 pues parece que el tamaño resultante no se puede determinar, (hice otra prueba de otra wallet de 10.000 y al final obtuve 3.5 MB), por eso no propuse esperar a 8 MB, creí que 6 era lo suficientemente prudente...

Es que el wallet no solo almacena claves privadas, sino también transacciones. Puedes enviar coins indefinidamente reutilizando direcciones (sin añadir claves privadas nuevas) y verás que el tamaño del wallet crece.


Usando la opción "listreceivedbyaddress 0 true" de bitcoind me va a imprimir una lista de todas las direcciones que se crearon para recibir transacciones:
Code:
./bitcoind listreceivedbyaddress 0 true

¿Y no te interesa más hacer 'listreceivedbyaddress 0 false'? Entiendo que quieres las direcciones que ya has utilizado, de las 10k originales. Una vez este número se aproxime a 10k, es hora de renovar el backup.


Para contar el número de éstas direcciones (en linux) solo tendría que combinarlo con el comando grep y wc:
Code:
./bitcoind listreceivedbyaddress 0 true | grep -o "{" | wc -l
(cuenta el número de apariciones del caracter "{" pues es el que se usa para separar cada dirección en la lista de direcciones)

Entiendo que grepear por "address" es más robusto que usar una llave, y vas más al grano (son las direcciones, o sea privkeys, lo que te interesa mirar). Además, tienes 'grep -c' Wink:

Code:
$ bitcoin-cli listreceivedbyaddress 0 false |grep -cw address
297


Para el obtener el número de transacciones de salida se usaría el comando:
Code:
./bitcoind listtransactions | grep -o "{" | wc -l

No entiendo por qué necesitas esto.
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
August 26, 2014, 12:25:44 PM
Last edit: August 26, 2014, 01:07:57 PM by fernarios
 #20

Es que el wallet no solo almacena claves privadas, sino también transacciones. Puedes enviar coins indefinidamente reutilizando direcciones (sin añadir claves privadas nuevas) y verás que el tamaño del wallet crece.

 Shocked tienes razón:

Quote from: en.bitcoin.it/wiki/Wallet
The original Bitcoin client wallet file is named wallet.dat and contains[1]:

  • keypairs for each of your addresses
  • transactions done from/to your addresses
  • user preferences
  • default key
  • reserve keys
  • accounts
  • a version number
  • Key pool
  • Since 0.3.21: information about the current best chain, to be able to rescan automatically when restoring from a backup.

Ok, xD lo de los 6MB era un mal plan desde el principio xD, eso se notaba a leguas xD.

¿Y no te interesa más hacer 'listreceivedbyaddress 0 false'? Entiendo que quieres las direcciones que ya has utilizado, de las 10k originales. Una vez este número se aproxime a 10k, es hora de renovar el backup.

No, listreceivedbyaddress sólo me va a dar las direcciones que solicité para recibir monedas, (cuando le doy click a 'Recibir' y 'Solicitar pago', el equivalente por interfaz a getnewaddress supongo), ni con false ni con true me va a dar todas las direcciones en la wallet (con true incluye direcciones que pedí pero que no han recibido nada, con false sólo las que han recibido algo).

Entiendo que grepear por "address" es más robusto que usar una llave, y vas más al grano (son las direcciones, o sea privkeys, lo que te interesa mirar). Además, tienes 'grep -c' Wink:

Code:
$ bitcoin-cli listreceivedbyaddress 0 false |grep -cw address
297

Sí, puede ser, gracias, no había usado el grep -c, pero insisto en el true, y parece que te faltó borrar el "w", el comando entonces quedaría algo así:
Code:
./bitcoind listreceivedbyaddress 0 true | grep -c "\"address\" :"
(Agregué comillas y " :" por si alguien tiene la palabra "address" en el nombre de una de sus cuentas xD )

Para el obtener el número de transacciones de salida se usaría el comando:
Code:
./bitcoind listtransactions | grep -o "{" | wc -l

No entiendo por qué necesitas esto.

Dado que listreceivedbyaddress sólo me da las direcciones que pedí por 'Solicitar pago', necesito incluir las direcciones de cambio creadas automáticamente cuando hago una transacción de salida. Pero ahora que lo pienso, ésta lista también incluye las transacciones de entrada, alguien podría tener muchas transacciones de entrada pero pocas de salida por lo que la estimación no sería adecuada, quedaría mas exacto si mejor hago grep -c "\"category\" : \"send\""

Si estás de acuerdo el script (con llamada a bitcoind incluida) quedaría:
Code:
#!/bin/bash
./bitcoind -daemon
while ! ./bitcoind getinfo > /dev/null 2>&1
do
   echo "Esperando por bitcoind..."
   sleep 5
done
rec=$(./bitcoind listreceivedbyaddress 0 true | grep -c "\"address\" :")
out=$(./bitcoind listtransactions | grep -c "\"category\" : \"send\"")
echo $((rec+out))
./bitcoind stop


Gracias por las correcciones y el interés dserrano5... si tienes algo más soy todo oídos.


----------------------------------------------
Encontré que sí hay un impacto en la importación de una private key... se demora bastante (unos 12 minutos para mi), supongo que tiene que cifrar de nuevo todo (?), menos mal no tenía yo que importar muchas... así que no lo recomendaría si quieres después importar un montón de llaves.
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!