Bitcoin Forum

Local => Primeiros Passos (Iniciantes) => Topic started by: silvio-btc on February 08, 2014, 12:52:28 AM



Title: Duvida com keypool
Post by: silvio-btc on February 08, 2014, 12:52:28 AM
boa noite

quais os cuidados a se tomar com backup da wallet.dat com relação ao keypool?


Title: Re: Duvida com keypool
Post by: algorista on February 08, 2014, 02:27:54 AM
Se vc está referindo ao parametro keypool que se coloca no arquivo conf, então o funcionamento dele é o seguinte:

O Bitcoin (e altcoins) sempre mantem 100 address pre-gerados no arquivo wallet.dat, de forma que toda vez que vc realiza um envio ele pega o primeiro address dessa pool e acrescenta mais um ao final, esse do final fica como reserva para uso no futuro.
Essa maneira de trabalhar com keypool permite que o backup do arquivo wallet.dat tenha validade de 99 transações de envio.

Transações de recebimento não geram novos address portanto não afetam a wallet.dat nem invalidam o backup de forma nenhuma.

O parametro keypool permite aumentar o tamanho da pool, aumentando também a vida util do backup.

Eu normalmente trabalho com keypool=5000, isso me permite praticamente nunca mais ter que me preocupar com o backup.

No arquivo wallet.dat são armazenados os address utilizados, o keypool, os rotulos dos address e uma copia das suas transações (aquela listagem acessivel pelo qt).

No backup vc teria os address (que é a parte importante), mas não teria os demais dados complementares.



Title: Re: Duvida com keypool
Post by: silvio-btc on February 08, 2014, 11:59:44 PM
Se vc está referindo ao parametro keypool que se coloca no arquivo conf, então o funcionamento dele é o seguinte:

O Bitcoin (e altcoins) sempre mantem 100 address pre-gerados no arquivo wallet.dat, de forma que toda vez que vc realiza um envio ele pega o primeiro address dessa pool e acrescenta mais um ao final, esse do final fica como reserva para uso no futuro.
Essa maneira de trabalhar com keypool permite que o backup do arquivo wallet.dat tenha validade de 99 transações de envio.

Transações de recebimento não geram novos address portanto não afetam a wallet.dat nem invalidam o backup de forma nenhuma.

O parametro keypool permite aumentar o tamanho da pool, aumentando também a vida util do backup.

Eu normalmente trabalho com keypool=5000, isso me permite praticamente nunca mais ter que me preocupar com o backup.

No arquivo wallet.dat são armazenados os address utilizados, o keypool, os rotulos dos address e uma copia das suas transações (aquela listagem acessivel pelo qt).

No backup vc teria os address (que é a parte importante), mas não teria os demais dados complementares.



Boa noite,

Algorista muito obrigado pelas informações, só pra ver se entendi corretamente quando eu utilizo uma keypool padrão se eu fizer 101 transações mesmo eu fazendo os backup da wallet.dat e posteriormente um restore esse 1 ficaria fora por causa dos 100 que é padrão correto?

grato pelo seu tempo.


Title: Re: Duvida com keypool
Post by: publicstalker on February 09, 2014, 12:08:18 AM
mas a única coisa que ia acontecer é que eu não veria transações recentes no aplicativo, ou seja, não afetaria em nada o balanço da minha wallet, estou correto?


Title: Re: Duvida com keypool
Post by: algorista on February 09, 2014, 02:59:48 AM
Boa noite,

Algorista muito obrigado pelas informações, só pra ver se entendi corretamente quando eu utilizo uma keypool padrão se eu fizer 101 transações mesmo eu fazendo os backup da wallet.dat e posteriormente um restore esse 1 ficaria fora por causa dos 100 que é padrão correto?

grato pelo seu tempo.

Exatamente.
Existe a possibilidade randomica de não invalidar o backup na transação 100, mas somente em alguma posterior, mas a margem de segurança é o numero 100, e como não há nem sequer um meio de medir isso então ficamos com a necessidade de estimar um valor seguro para calcular a vida do backup.


mas a única coisa que ia acontecer é que eu não veria transações recentes no aplicativo, ou seja, não afetaria em nada o balanço da minha wallet, estou correto?

Não é isso não, afeta o balanço sim, o que acontece é que quando vc faz um envio, o Bitcoin/altcoins tenta formar o valor juntando os saldos dos seus address, e quando não consegue fazer um valor "cheio" (quase nunca consegue), ele cria um novo address para receber o troco, esse address é o chamado "change". E esses address de "troco" vão consumindo sua keypool até esgotar os 100 pré-armazenados no backup.

https://en.bitcoin.it/wiki/Change



Title: Re: Duvida com keypool
Post by: publicstalker on February 09, 2014, 03:15:36 AM
ok, e depois que o limite for alcançado vai ser gerado automaticamente as novas address?
obrigado pela resposta



Title: Re: Duvida com keypool
Post by: Peao on February 09, 2014, 11:16:07 AM
Para evitar esse inconveniente pode-se utilizar alguma carteira com chave privada determinística, como o Armory - bitcoinarmory.com (http://bitcoinarmory.com).

Vc poderá fazer apenas um backup da wallet, sem se preocupar com a quantidade de chaves públicas criadas/usadas.



Title: Re: Duvida com keypool
Post by: algorista on February 09, 2014, 04:44:02 PM
Para evitar esse inconveniente pode-se utilizar alguma carteira com chave privada determinística, como o Armory - bitcoinarmory.com (http://bitcoinarmory.com).

Vc poderá fazer apenas um backup da wallet, sem se preocupar com a quantidade de chaves públicas criadas/usadas.

Bem lembrado, isso é verdade !.

Armory é o fino do fino em cripto-carteiras.


ok, e depois que o limite for alcançado vai ser gerado automaticamente as novas address?
obrigado pela resposta

Vai aumentando, pense por exemplo na carteira da pool enviando os saques automaticos, centenas por dia.
O wallet.dat da pool vai ficando imenso, mas ele sempre sustenta 100 address sem uso no final, sendo que o backup dele é valido por 99 saques, por isso tenho um cron fazendo backup do wallet.dat minuto a minuto.