Переключатель -server заменяется -rpcpw =<пароль>, Который также используется с bitcoind.
Bitcoin -rpcpw =<пароль> - работает с JSON-RPC порт открытым
bitcoind -rpcpw =<пароль> - демон с паролем
Если у вас есть лучшее представление для имени коммутатора, дайте мне знать, но имейте в виду, что есть в конечном итоге будет пароль для шифрования базы данных тоже. Я не уверен, но я думаю, что они могут захотеть использовать разные пароли для двоих.
Это дает предупреждение, если вы не установите пароль.
Все команды теперь требуют пароля в качестве первого параметра. Он скажет вам, что если вы запустите "bitcoind помощь",
Центральный код:
// Проверка пароля
если (params.size () < 1 || Титулы [0] .type ()! = str_type)
бросить runtime_error ("Первый параметр должен быть пароль.");
если (PARAMS [0] .get_str ()! = strRPCPassword)
{
если (strRPCPassword.size () < 15)
Сон (50);
начинаются = strRequest.end ();
Е ("ThreadRPCServer неправильного пароля попытки \ п");
бросить runtime_error ("Неверный пароль.");
}
Любые комментарии по этим решениям?
1) если (strRPCPassword.size () < 15) Сон (50); - это означает, что, если это короткий пароль, он будет ждать 50ms после каждой попытки. Это может быть использовано как атака DoS, но я понял, если это короткий пароль, это более важно для защиты от грубой силы проверки пароля. Это может сказать аутсайдерам ли пароль меньше 15 символов, но меньше 15 не все, что следует отметить, что большинство паролей меньше чем 15. Если вы хотите, чтобы закрыть возможность DoS, просто использовать пароль из 15 символов или более.
2) начинают = strRequest.end (); - если это один запрос с несколькими вызовами, я выбрасываю остальное, если один имеет плохой пароль. Это так что вы не можете наполнить его с миллионами попыток ввода пароля в одном пакете. Как вы думаете, это правильно делать? (Множественный вызов, вероятно, почти никогда не используется в любом случае)
Я также установил две дублирующие команды, перечисленные в помощь:
getaddressesbylabel
getbalance
getblockcount
getblocknumber
getconnectioncount
getdifficulty
getgenerate
получить данные
getlabel
getnewaddress
getreceivedbyaddress
getreceivedbylabel
Помогите
listreceivedbyaddress
listreceivedbylabel
sendtoaddress
setgenerate
setlabel
стоп