Есть ли способ предоставить кошелек для биткойнов, не подвергая его воздействию на cmdline?

С биткойн 0.4.0 Я зашифровал свой кошелек. Теперь, когда я захочу использовать биткойны, единственный способ отправить деньги - сначала предоставить ключ дешифрования кошелька на линии cmd. Я не хочу этого делать, поскольку мой пароль будет отображаться в истории оболочки.

Есть ли способ дать биткойнам просить кодовую фразу кошелька?

20 голосов | спросил Peter Smit 3 +04002011-10-03T12:13:42+04:00312011bEurope/MoscowMon, 03 Oct 2011 12:13:42 +0400 2011, 12:13:42

4 ответа


12

Все, что вы можете сделать из командной строки, которую вы также можете использовать в JSON API, означает, что такую ​​же команду разблокировки можно было бы отправить из кода так же легко. Насколько я знаю, для этого нет готовой утилиты, но API достаточно прост, и я не могу себе представить, что очень сложно создать такой инструмент.


Изменить: Это было намного проще, чем ожидалось, сделать это в Python. Предполагая, что у вас установлен Python модуль JSON-RPC , просто используйте этот код:

from jsonrpc import ServiceProxy
from getpass import getpass
access = ServiceProxy("http://127.0.0.1:8332")
pwd = getpass("Enter wallet passphrase: ")
access.walletpassphrase(pwd, 60)

Аналогично вы можете вызвать access.walletlock(), чтобы заблокировать кошелек по требованию и walletpassphrasechange(old, new), чтобы изменить парольную фразу, не видя при этом ее команды линия.


Изменить 2: Я также отправил вопрос для разработчиков на github от вашего имени.

Изменить 3: Принят запрос на перенос, содержащий мои скрипты python. Загрузка источника биткойнов из github теперь включает в себя скрипты для этой цели в contrib /wallettools

Изменить 4: новый отчет об ошибке , чтобы запросить правильную работу встроенной команды.

ответил David Perry 3 +04002011-10-03T18:40:53+04:00312011bEurope/MoscowMon, 03 Oct 2011 18:40:53 +0400 2011, 18:40:53
9

Вы можете избежать появления пароля в истории оболочки следующим образом:

$ read x
password goes here
$ bitcoind walletpassphrase "$x" 60
$ x=
$ 

Команда read x считывает следующую строку текста, который вы вводите, и помещает в переменную оболочки x.

Команда x= перезаписывает переменную оболочки; иначе $ x будет удерживать ваш пароль, пока вы не выйдете из текущей оболочки.

Он появляется в истории следующим образом:

2032  read x
2033  bitcoind walletpassphrase "$x" 60
2034  x=
2035  history

Я ожидаю, что пароль появится в /proc /, пока выполняется команда bitcoind, но это должно быть только на долю секунды.

ответил Chris Moore 5 FebruaryEurope/MoscowbSun, 05 Feb 2012 22:48:28 +0400000000pmSun, 05 Feb 2012 22:48:28 +040012 2012, 22:48:28
1

Официальным ответом разработчиков является использование предоставленной оболочки python в contrib/bitrpc/bitrpc.py ( github ):

  

Он запрашивает пароль безопасным способом, например, если вы используете команду walletpassphrase. Планируется не добавлять интерактивные функции к bitcoin-cli.

и

  

bitcoin-cli останется как есть и не получит интерактивную функциональность.

Источник: # 2318

Разблокировать кошелек:

$ python bitrpc.py walletpassphrase

Изменить парольную фразу:

$ python bitrpc.py walletpassphrasechange

https://github.com/bitcoin/bitcoin/tree/master/вно /bitrpc

ответил Afri 31 WedEurope/Moscow2014-12-31T19:52:43+03:00Europe/Moscow12bEurope/MoscowWed, 31 Dec 2014 19:52:43 +0300 2014, 19:52:43
0

В командной строке нажмите ALT + F7 , чтобы удалить все команды, сохраненные в памяти для текущего буфера истории.

ответил Serith 3 +04002011-10-03T18:51:47+04:00312011bEurope/MoscowMon, 03 Oct 2011 18:51:47 +0400 2011, 18:51:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132