Демон Dogecoin (dogecoind) не отвечает на запросы RPC

У меня есть демон dogecoin, успешно работающий в Ubuntu, запущенный с помощью этой команды:

dogecoind -daemon

Он прослушивает порт 22556, что подтверждается netstat.

Я также могу передавать ему команды напрямую через терминал Ubuntu, например:

dogecoind getinfo

Однако передача ему RPC-запросов через HTTP не работает. Демон не отказывается от соединения (и я могу убедиться, что он отказывается от соединения, если я использую порт, отличный от 22556); вместо этого соединение зависает, и данные не отправляются клиенту, выполняющему HTTP-запрос. Прямое подключение к

http://a:b@127.0.0.1:22556/

заставляет веб-браузер сидеть и ждать данных. Точно так же выполнение запроса RPC через PHP-скрипт, а затем доступ к этому скрипту в браузере заставляет браузер ждать 30 секунд, прежде чем PHP выдает ошибку, указывающую, что максимальное время выполнения 30 секунд было превышено.

У меня есть файл ~/.dogecoin/dogecoin.conf как таковой:

server=1
rpcuser=a
rpcpassword=b

(Я знаю, что имя пользователя и пароль, которые я ввел там, небезопасны; они временные, пока я не смогу хотя бы установить соединение.)

Я пробовал добавить строку

rpcallowip=127.0.0.1

в конец конфигурационного файла, но это никак не повлияло на поведение.

Что я делаю неправильно — почему мой демон Dogecoin не принимает RPC-запросы (или любые HTTP-запросы из реального браузера, если уж на то пошло)?

редактировать : Кроме того, я могу убедиться, что демон догнал блокчейн.

rpcallowiip=0.0.0.0 Это небезопасная конфигурация, если вы прослушиваете общедоступное IP-адресное пространство. Карта адресов 0.0.0.0 — это сокращение для разрешения соединений со всех хостов. Если вы работаете в среде NAT, на данный момент все может быть в порядке, если вы не делите сеть с какими-либо неизвестными хостами. (т.е. сеть комнат общежития) Кейси
@unklStewy: А, спасибо, что указали на это. Я обязательно поменяю его перед запуском в производство.

Ответы (1)

Догадаться. Это было связано с добавлением строк rpcallowip в файл конфигурации. Добавление этих трех строк решило это:

rpcallowip=127.0.0.1
rpcallowip=192.168.1.*
rpcallowip=0.0.0.0

Последняя строка - это то, что в конечном итоге позволило ему работать. Я не уверен, почему, но netstat сказал, что прослушивает 0.0.0.0:22556, поэтому добавление 0.0.0.0 в список rpcallowip решило эту проблему.

Это потому, что 0.0.0.0 на сетевом языке по сути означает «все IP-адреса». Таким образом, вы фактически разрешили всем IP-адресам подключаться к вашему RPC-серверу.
Спасибо за информацию. С тех пор я удалил его, чтобы убедиться, что уязвимости не существует. Что касается фактического исправления, я не уверен, в чем была проблема. Запустив новую установку на другом сервере, я не столкнулся с проблемой, о которой писал изначально.