Демон Litecoin не отвечает на вызовы API

Буквально за несколько часов я установил биткойн-демон на своем сервере Ubuntu и протестировал его с помощью API, и он очень хорошо реагирует. Теперь я установил демон litecoin на тот же сервер и использовал скопированные те же файлы php с небольшими изменениями синтаксиса, такими как изменение имени пользователя, пароля и номера порта, но он не отвечает ни на какие вызовы API.

Содержание litecoin.conf:

server=1
daemon=1
rpcuser=my_username
rpcpassword=mypassword
rpcport=9332

Содержимое litecoin.php

<?php
include_once('jsonRPCClient.php');
$variable = $_GET['variable'];
$litecoin = new jsonRPCClient('http://my_user:my_password@127.0.0.1:9332/');
if($variable=='getnewaddress')
{
echo $litecoin->getnewaddress();
}
else if($variable=='getinfo')
{
print_r($litecoin->getinfo());
}
else
{
echo "hello";
}
?>

Любая помощь в том, что я делаю неправильно здесь?

Я пытался понять, почему файл php не выдает никаких ошибок, если они есть, затем я обнаружил, что error_reporting в файле php.ini отключен после его включения. Я получил следующую ошибку при выполнении litecoin.php в браузере:

Предупреждение: fopen( http://...@myserveraddress.com:9332/ ): не удалось открыть поток: HTTP-запрос не выполнен! HTTP/1.1 403 Запрещено в /var/www/jsonRPCClient.php в строке 132

Неустранимая ошибка: необработанное исключение «Исключение» с сообщением «Невозможно подключиться к http://myuser:mypassword@myserveraddress.com:9332/ » в /var/www/jsonRPCClient.php:140 Трассировка стека: #0 /var/www /litecoin.php(12): jsonRPCClient->__call('getinfo', Array) #1 /var/www/litecoin.php(12): jsonRPCClient->getinfo() #2 {main} добавлено в /var/www /jsonRPCClient.php в строке 140

Вы используете HTTP, поэтому вы можете использовать анализатор IP-пакетов, чтобы увидеть, что происходит. Ваше соединение принимается сервером? Отвечает ли сервер каким-либо ответом HTTP?
@GregHewgill Я использовал тот же файл с биткойн-демоном с другими параметрами, и он работает нормально. Но лайткоин не работает
Да, вы уже сказали, что это не работает, но вы не предоставили никакой информации, которая позволила бы угадать причину. Я предлагаю вам способ провести диагностику, чтобы выяснить, почему он не работает.
Попробуйте убрать server=1параметр из вашего litecoin.conf. Если значения rpcuserи rpcpasswordявляются буквальными в приведенной выше конфигурации (чего я не ожидаю), они должны совпадать с вашей $litecoinстрокой (чего нет). Запустите ifconfig -a | grep 9332, чтобы увидеть, есть ли прослушивающий порт для 127.0.0.1 (0.0.0.0 недостаточно).

Ответы (2)

Сначала добавьте эту строку вlitecoin.conf

rpcallowip=127.0.0.1

Затем убедитесь, что вы добавили команду litecoin в свой путь.

sudo cp litecoind /usr/bin/litecoind

и что вы запускаете демон litecoin

litecoind -daemon

и протестировать с

litecoind getinfo

если все это работает, то JSON RPC должен работать нормально.

Если ничего из этого не работает, попробуйте настроить клиент, следуя этому руководству .

Также убедитесь, что ваши usernameи passwordсогласуются с вашим PHP и litecoin.confпотому что их нет в вашем примере.

Я выяснил, что error_reporting был отключен в моем файле php.ini, поэтому он не показывал никаких ошибок, теперь, когда я включил их при запуске litecoin.php на моем сервере, отображается следующая ошибка:

Иногда эта ошибка возникает из-за передачи слишком большого количества символов в качестве rpcuser или rpcpassword в файле конфигурации. Я решил эту проблему, уменьшив длину rpcuser и пароля и удалив специальные символы.