Предположим, что мой кошелек зашифрован фазой-паролем, и в настоящее время я не предоставил bitcoind
фразу-пароль для доступа к разделу закрытых ключей кошелька.
Если я ввожу:
bitcoind getnewaddress
Он печатает новый адрес, скажем [someaddress], но где он хранит закрытый ключ, который идет с ним?
Если я ввожу:
bitcoind dumpprivkey [someaddress]
Я получаю сообщение об ошибке, так как я не предоставил кодовую фразу кошелька.
Но если я сначала укажу кодовую фразу кошелька, а затем попытаюсь dumpprivkey
показать закрытый ключ.
Когда я попросил его получить новый адрес, я не предоставил кодовую фразу, так как же он хранит закрытый ключ?
Он получает его из пула ключей, который по умолчанию имеет 100 предварительно сгенерированных адресов. В следующий раз, когда вы введете свою парольную фразу, она пополнит пул новыми адресами.
Вот пример, показывающий, что пул заканчивается и пополняется при вводе пароля. Следующие команды были выполнены обученным профессионалом. Пожалуйста, не пытайтесь повторить это дома (особенно первые 2 команды):
$ cd ~/.bitcoin
$ rm wallet.dat
$ bitcoin-cli -daemon -keypool=5
bitcoin server starting
$ bitcoin-cli encryptwallet mypass
wallet encrypted; bitcoin server stopping, restart to run with encrypted wallet
$ bitcoin-cli -daemon -keypool=5
bitcoin server starting
$ bitcoin-cli getnewaddress
1Bf6TrgiBxzZhdtEWZuWuREkbfoAtmZ5xa
$ bitcoin-cli getnewaddress
1JzjmeH1LHzJ5JYzUu3wh36N7LWvfVeB2u
$ bitcoin-cli getnewaddress
1sjVdVJAAWB6JTsja4nEVezdnqiE6Ko3V
$ bitcoin-cli walletpassphrase mypass 3600
$ bitcoin-cli walletlock
$ bitcoin-cli getnewaddress
1DVZHRNbdBivqRKzas7iFT8emsb8EtcJT1
$ bitcoin-cli getnewaddress
1HBXkVkWCVhntzgkxdb9hnUxNeMdFqVssQ
$ bitcoin-cli getnewaddress
18n17UHshaufcufo5z1PBPAdErPWxesBhs
$ bitcoin-cli getnewaddress
1CofrGkqWrAmibBUgtLysknXdsBpDJARTs
$ bitcoin-cli getnewaddress
1NwWuba3khc31ebZU8fVAept2MDdnSndgV
$ bitcoin-cli getnewaddress
16QVdikDatH2FkQNkrRgGXrQ9LbEooHAPF
$ bitcoin-cli getnewaddress
error: {"code":-12,"message":"Error: Keypool ran out, please call keypoolrefill first"}
$ bitcoin-cli walletpassphrase mypass 3600
$ bitcoin-cli walletlock
$ bitcoin-cli getnewaddress
1BSDX4PiHKvdssjAzDLVACAAQvwiijmETV
$ bitcoin-cli getnewaddress
1JJphgnC5gqunLtbbLAwtN8LXRnCUYWARm
$ bitcoin-cli getnewaddress
17UJqrpuakgPPuxPTLa8LeeWVAKijZW66x
$ bitcoin-cli getnewaddress
16itq5LpuwyhtfbiHbQxVzJYYdGE7nQRoz
$ bitcoin-cli getnewaddress
1QA4EnXPUHquK9WBxBppicfBTD2gYTB9ic
$ bitcoin-cli getnewaddress
12bgaABsakRouK9NZyUAK1RAD9nmDtHQKa
$ bitcoin-cli getnewaddress
error: {"code":-12,"message":"Error: Keypool ran out, please call keypoolrefill first"}
$
производитель вещей7
Крис Мур