У меня есть стандартный клиент (клиент QT на OSX) с зашифрованным кошельком. Я пытался импортировать ключи с помощью pywallet, но, хотя он утверждал, что импортирует их, когда я снова запустил биткойн-клиент, он сказал, что wallet.dat был поврежден (да, клиент не работал, когда я импортировал).
Я предполагаю, что pywallet не знает о шифровании и не позаботился о том, чтобы проверить, все ли в порядке, прежде чем импортировать их.
Итак, как мне сделать этот импорт?
Попытка запустить клиент командной строки приводит к следующей ошибке через несколько секунд после его запуска (конечно, с опцией -daemon):
EXCEPTION: NSt8ios_base7failureE
CDataStream::read() : end of data
bitcoin in AppInit()
Запуск QT-клиента с этой -server
опцией через некоторое время тоже вылетает (видимо, и без нее работает корректно).
Начиная с версии 0.6.0 импорт/экспорт ключей доступен в самом клиенте, но только через RPC. Команды называются dumpprivkey
и importprivkey
. Например (в тестовой сети):
$ ./bitcoin получить новый адрес
n2JjZgLeCUgfubsswxDm9zAaBGSLLHSLdNv
$ ./bitcoind dumpprivkey n2JjZgLeCUgfubsswxDm9zAaBGSLLHSLdNv
cR4RtpaeAZY8MwrNvTQGX9PZ9pdCgFoLxuo4Pkwqx61broC4Gb4y
И на другом кошельке:
$ ./bitcoind importprivkey R4RtpaeAZY8MwrNvTQGX9PZ9pdCgFoLxuo4Pkwqx61broC4Gb4y
$ ./bitcoind validateaddress n2JjZgLeCUgfubswxDm9zAaBGSLLHSLdNv
{ "isvalid" : true, "address" : "n2JjZgLeCUgfubswxDm9zAaBGSLLHSLdNv", "ismine" : true, "pubkey" : "029e3a934cfc9f89d7a1c15f99b98479cabc81964f4972e7b8fa3989a788261695", "trueis" ac, "true" ac: сжато, "trueis"}
priv_sipa
или -5 «Неверный закрытый ключ», если я пытаюсь добавитьpriv
о0'.