Предположения по моей части:
1) Bitcoind требует шифрования бумажник, чтобы быть разблокирована, чтобы REFIL в keypool.
2) кошелек будет выполнять это пополнение прозрачно (без уведомления пользователя) в любое время бумажник разблокирован для какой-либо причины.
3) Если бумажник никогда не разблокирован keypool в конечном итоге будет исчерпан.
4) Если кошелек истощается и заблокирован, запрос на новый адрес (вызов RPC getnewaddress) будет всегда терпит неудачу и адрес не будет возвращен.
Эти предположения были проверены и создать ситуацию, в которой мы можем обеспечить открытые ключи на кошельке не изменяются. Мы делаем это за счет расширения keypool, запирая бумажник, и не открывая его. Веб-сервер просто "не знает" ключевая фраза необходимо, чтобы разблокировать его бумажник и, таким образом, keypool будет состоять из известных ключей, пока не закончится и нужно заменить, это "смотреть бумажник", Имея еще одну копию того же кошелька в автономном режиме с безопасной известной парольной фразы мы можем потратить монеты, которые мы получаем, если / когда это необходимо, это "расходы бумажник",
Случайный метод ключевой фразы для создания "смотреть бумажник" используя bitcoind:
2) Сделайте резервную копию форума бумажника и ключевой фразы = "расходы бумажник"
3) Изменение шифрования фразы для случайной битовой строки 256 (64 шестнадцатеричных цифр) = "смотреть бумажник"
4) В целях безопасности, выбросьте и не записывают случайную фразу в любом месте.
5) Передача "смотреть бумажник" для бумажника сервера.
На данный момент у вас есть два идентичных копий одного и того же кошелька (в том числе и той же последовательности частных ключей в keypool). "смотреть бумажник" имеет неизвестную и неразрывную случайную ключевую фразу, потеря бумажника сервера не скомпрометирует закрытые ключи.
Pywallet метод для клона создавая "смотреть бумажник" для использования с bitcoind
В это время возможность клонировать смотреть копии доступна только в бета-версии Pywallet (v2.1.0b2 или более поздней версии).
Pywallet будет работать с зашифрованной копией файла бумажник, не имеет доступа к приватным ключам и не требует кодовой фразы.
BETA ОТКАЗ: Бета программное обеспечение должно быть использовано только для развития, а не для производства.
Pywallet 2.1.0b2
1) Закрепите "расходы бумажник",
Вам потребуется копия кошелька, который может быть использован, чтобы тратить монеты, как смотреть бумажник не хватает для закрытых ключей, необходимых. Мы начнем с обеспечения у нас есть хорошие "расходы бумажник", Я рекомендую начинать с новым кошельком (начать Bitcoin, не wallet.dat и будет создавать новый). Вы должны шифровать бумажник, установив пароль. Прежде чем идти дальше, убедитесь, ключевая фраза установлена правильно, разбудив бумажник. Это также хорошее время, чтобы надежно регистрировать автономную ключевую фразу в резервной копии бумаги. Сильная криптография является отличным инструментом, но потерять / забыли кодовую фразу, и вы поймете, кошмар, насколько сильно он на самом деле. Бумажник у вас есть в настоящее время является "расходы бумажник", Он должен быть надежно храниться в автономном режиме или на защищенном (непубличной) компьютера. Расходы бумажник никогда не должны быть на том же сервере, что и смотреть бумажник, как поражения цели.
2) Расширение keypool (при необходимости)
Поскольку новые ключи добавляются в keypool случайно, наблюдавший бумажник будет оставаться постоянно заперто, так что никакие новые ключи не добавлены. Это важно, потому что новые ключи являются случайными, так что если смотреть бумажник расширяется, то это не будет соответствовать "расходы бумажник", Ведя наблюдение бумажника статическими мы можем гарантировать, что нет никакой потери ключей. Недостатком является то, что в конечном итоге смотреть бумажник keypool будут исчерпаны (0 доступные новые ключи) и вам нужно будет повторить этот процесс. По умолчанию keypool в bitcoind относительно невелика при 100 будущих ключей поэтому для большинства приложений, которые вы хотите, чтобы расширить keypool к чему-то большему.
Для расширения keypool Bitcoin (GUI клиента) или bitcoind (демон) должен быть запущен с --keypool аргумент. Это может быть сделано только при запуске нет вызова RPC доступен.
Код:
bitcoind -keypool = XXXX <--- для запуска deamond
Bitcoin -keypool = XXXX <- для запуска графического интерфейса клиента
Bitcoin -keypool = XXXX <- для запуска графического интерфейса клиента
ХХХЙ желаемое количество частных ключей в keypool (т.е. keypool = 1000 будет увеличить keypool до 1000 ключей). Значение, указанное в новом размере keypool не как большой, чтобы развернуть его. На новом бумажнике с использованием keypool = 1000 добавят больше 900 ключей в общей сложности 1000 не 1000 новых ключей в общей сложности 1,100. Команда только информирует клиента он должен расширить keypool, когда он имеет доступ. Клиент не может расширить зашифрованный кошелек, если он заблокирован. Вы можете заставить бумажник, чтобы временно разблокировать с помощью команды walletpassphrase RPC.
Код:
walletpassphrase ="<пароль>" <время оставить бумажник разблокирован в секундах>
walletpassphrase ="азбука" 120
walletpassphrase ="азбука" 120
Для больших keypools это может занять несколько минут, чтобы создать и хранить ключи зависят от производительности вашей системы, и программа не будет предоставлять никаких признаков прогресса. Просто подожди.
Производительность Примечание: бумажники с большим количеством ключей (более 5K до 10K в зависимости от системы) могут быть вялыми в ответ на команды RPC. Кроме того, потребуется больше ресурсов для сканирования blockchain для входящих транзакций. Постарайтесь сбалансировать размер keypool с ожидаемым количеством клавиш и вычислительной мощностью доступна. Если ваши потребности сайта <10 новые ключей в день и работают на маломощных VPS делает бумажник с 20000 ключевыми keypool, скорее всего, не будут производить хорошие результаты, но с другой стороны, если вам нужно в среднем 200 ключей в день и иметь специальные решения сервера keypool 250 будет нуждаться в безостановочную освежать.
3) Убедитесь, что keypool установлен правильно.
Чтобы проверить размер keypool, используйте получить данные RPC вызов.
Код:
> получить данные
...
"keypoolsize" : 301,
...
Это бумажник имеет 301 ключей в keypool.
4) Сделайте резервную копию
Сделайте резервную копию текущего wallet.dat. Это резервная копия "расходы бумажник", Я рекомендую вам назвать резервную описательным, чтобы избежать путаницы с наблюдающей бумажника копии (т.е. "wallet.spending.dat", На данный момент расходов бумажник должен иметь расширенный keypool и быть зашифрован с сильной ключевой фразой.
Если вы потеряете копию расходов кошелька, вы будете не в состоянии потратить свои монеты.
Если ключевая фраза для вашего кошелька расходов вы будете не в состоянии потратить свои монеты.
Смотреть бумажник копию мы будем делать дальше, не в состоянии тратить монеты, чтобы иметь резервную копию или ваш кошелек и пароль.
Весь смысл наблюдающего бумажника для того, чтобы быть unspendable, вы должны понимать, что означает undspenable unspendable. Там нет хака или трюка или бэкдора, который позволит восстановить доступ к вашей монете. Смотреть бумажник копию не следует рассматривать в качестве резервной.
Резервное копирование бумаги закрытых ключей (опция)
Для обеспечения дополнительной безопасности можно экспортировать и печатать секретные ключи, используя дамп из pywallet, хранить в безопасном месте вне офиса (несгораемый сейф).
Код:
pywallet.py --dumpwallet > dump.encrypted.txt
или
pywallet.py --passphrase ="проходить" --dumpwallet > dump.decrypted.txt
или
pywallet.py --passphrase ="проходить" --dumpwallet > dump.decrypted.txt
Dumpwallet команда сбросит весь кошелек (историю Ой, keypool заказ, этикетка и т.д.). Для краткости можно напечатать только "ключи" Секция (она включает в себя ключи в keypool). Вам не нужно "бассейн" раздел как он содержит только порядок keypool. Если включить ключевую фразу ключи будут расшифрованы. Если вы не включили ключевую фразу ключи будут оставлены в зашифрованном виде. Я использую зашифрованный вариант для печати аварийного восстановления (а резервное копирование для резервного копирования) копии всех компаний закрытых ключей, которые хранятся с местом в огнестойком сейфе. Да, я немного параноик о резервных копиях, но не потеряли Satoshi еще.
5) Клонирование резервной копии "расходы бумажник" чтобы произвести "смотреть бумажник" используя pywallet
Вам понадобится pywallet (и питон и необходимая зависимость) установлено. Установка выходит за рамки данного руководства:
Только бета-версия pywallet (2.1.0b2 или выше) имеет поддержку только наблюдать клоны.
http://pastebin.com/raw.php?i=2FtQDj3v] Pywallet 2.1.0b2
Мы будем использовать pywallet создать "смотреть только" клон существующего зашифрованного кошелька. Для обеспечения смотреть бумажник не может быть использована для проведения существующих ключей будут перезаписаны со случайными заполнителей. Pywallet не может просто удалить закрытые ключи, как bitcoind не в состоянии справиться бумажник без значения для закрытого ключа, так он использует случайное значение в качестве заполнителя. Смотреть бумажник должен оставаться постоянно заперт, как будто он разблокирован keypool освежит с новыми случайными ключами, не содержащихся в расходах бумажника. Pywallet защищает от случайного пользователя отпирания, установив ключевую фразу на наблюдающий бумажнике неизвестной случайной величины.
Так что в итоге:
Вор не может украсть личные ключи, потому что они не существуют в наблюдающем бумажнике.
Пользователь не может случайно открыть кошелек, потому что они не знают, ключевую фразу.
Команда для создания часов копии кошелька с помощью pywallet является:
Код:
pywallet_2.1.0b2.py --clone_watchonly_from /path/towallet/wallet.dat --clone_watchonly_to /path/to/clone/wallet.watching.dat
Экстрагируют пару ключей сбрасывали из кошелька до клонирования.
Код:
{
"адр": "1FHiDfisR6fysDtQnYouVXrmjZZmp7neBx",
"сжатый": правда,
"encrypted_privkey": "d37ea90b1d6f5c33a087c24caa45ca2ff688ece354356a6d86f4d89a44b64ca829996e669c20207947588f738daf4b7c",
"Публичных": "032101fb87879f540d9496f744e3b159eea5243d766a0540a7d67cb5e3eaa50868",
"резерв": 1
}
"адр": "1FHiDfisR6fysDtQnYouVXrmjZZmp7neBx",
"сжатый": правда,
"encrypted_privkey": "d37ea90b1d6f5c33a087c24caa45ca2ff688ece354356a6d86f4d89a44b64ca829996e669c20207947588f738daf4b7c",
"Публичных": "032101fb87879f540d9496f744e3b159eea5243d766a0540a7d67cb5e3eaa50868",
"резерв": 1
}
То же пара ключей сбрасывали из клонированных часов только копии.
Код:
{
"адр": "1FHiDfisR6fysDtQnYouVXrmjZZmp7neBx",
"сжатый": правда,
"encrypted_privkey": "06a858fc422cd20c4dd92017592c3b878b2973496bf0ed5e6cb25711d90e32d7fcd809325a7c9c747eb38534b6091f88",
"Публичных": "032101fb87879f540d9496f744e3b159eea5243d766a0540a7d67cb5e3eaa50868",
"резерв": 1
}
"адр": "1FHiDfisR6fysDtQnYouVXrmjZZmp7neBx",
"сжатый": правда,
"encrypted_privkey": "06a858fc422cd20c4dd92017592c3b878b2973496bf0ed5e6cb25711d90e32d7fcd809325a7c9c747eb38534b6091f88",
"Публичных": "032101fb87879f540d9496f744e3b159eea5243d766a0540a7d67cb5e3eaa50868",
"резерв": 1
}
Вы можете сохранить резервную копию, наблюдая бумажник в том же месте, что и расходы бумажник. Там нет риски потерять деньги, если смотреть кошелек потерян / украдены / повреждено, однако имея резервное копирование позволяет избежать необходимости reclone покупательного бумажника. Настоятельно рекомендуется пометить файлы надлежащим образом (т.е. wallet.spending.dat & wallet.watching.dat).
6) Загрузить часы только скопировать на общедоступном сервере.
Загрузите часы только копию кошелька на общедоступном веб-сервере. Убедитесь, что вы загружаете правильный. При необходимости переименовать бумажник wallet.dat. Перезапустите bitcoind. После того, как синхронизируются текущего блока, если клиент все еще показывает неправильный баланс, перезапуск с помощью "--rescan" командная строка варианты.