Я запускаю узел биткойн тестовой сети и выполняю вызовы RPC на порту по умолчанию 18332.
Я добавил эту строку в ~/.bitcoin/bitcoin.conf:
rpcport=19832
И перезапустил службу биткойн. Я даже перезапустил всю машину.
Но по какой-то причине он все еще принимает вызовы RPC на порту 18332, а попытка сделать то же самое на порту 19832 дает «отказ в соединении».
Это определенно использует настройки в bitcoin.conf, например, если я изменю rpcuser
или rpcpassword
(и перезапущу снова) мне придется использовать новый пользователь + пароль в вызовах RPC, старые больше не работают.
Но как-то порт меняется.
Я делаю что-то неправильно? Настройка называется как-то иначе, чем rpcport=xxx
?
Я знаю, что, вероятно, я также могу определить порт вручную в строке cmd (используя bitcoind -rpcport=xxx
или что-то еще) при запуске bitcoind, но я хочу, чтобы все было настроено в bitcoin.conf (где оно принадлежит) и чтобы все это запускалось автоматически.
PS Подключаюсь на localhost, т.е. на самой машине. Я также использую брандмауэр ufw, и он настроен на прием соединений как на 19832, так и на 18832 (так что это определенно не брандмауэр, который блокирует здесь).
(редактировать) К вашему сведению, вот полный файл bitcoin.conf:
testnet=1
server=1
daemon=1
txindex=1
rpcuser=XXXXXXXXXXXXXXXXXXXXXXX
rpcpassword=XXXXXXXXXXXXXXXXXXX
rpcallowip=127.0.0.1
rpcport=19832
onlynet=ipv4
zmqpubrawblock=tcp://127.0.0.1:28332
zmqpubrawtx=tcp://127.0.0.1:28333
А вот как я выполняю команды RPC:
curl http://XXXXXXXXX:XXXXXXXXX@localhost:18332 -H 'content-type:text/plain;' --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getwalletinfo","params":[]}'
Это работает нормально, хотя обратите внимание, что он подключается к 18332. Если я перехожу localhost:18332
на localhost:19832
него, он больше не работает (отказ в соединении).
Если моя версия актуальна, результат getwalletinfo
содержит "walletversion": 169900
.
Решение найдено: rpcport должен находиться в разделе [test]
Пожалуйста, обновите исходный файл конфигурации, чтобы он читался следующим образом:
тестовая сеть = 1 сервер=1 демон=1 тхиндекс=1 rpcuser=XXXXXXXXXXXXXXXXXXXXXXXX rpcpassword=XXXXXXXXXXXXXXXXXXXXX rpcallowip=127.0.0.1 только сеть = ipv4 zmqpubrawblock=tcp://127.0.0.1:28332 zmqpubrawtx=tcp://127.0.0.1:28333 [тест] рппорт = 19832
И перезапустите демон. Также взгляните на Невозможно указать rpcport для тестовой сети для связанных изменений в других параметрах. Нас предупреждали, что делать в лог-файле. ~/.bitcoin/testnet3/debug.log
включает в себя строкуWarning: Config setting for -rpcport only applied on test network when in [test] section.
Мы могли бы справиться с этим быстрее, если бы (мы прочитали файл журнала! И если бы) в примере bitcoin.conf было упомянуто, что теперь требуются разделы.
Было бы здорово, если бы вы могли вместо этого сделать это отмеченным галочкой решением!
Это похоже на ошибку: я воспроизвел такое же поведение на своей машине, используя текущую версию, Bitcoin Core Daemon version v0.17.99.0-g2945492424934fa360f86b116184ee8e34f19d0a
только что загруженную с github. Однако я заметил, что @Зелёный выше не смог воспроизвести это, так что, возможно, ошибка находится в библиотеке, которой вы и я пользуемся, а он нет, а не в биткойнах. Конечно, там нет нерешенных вопросов, которые кажутся актуальными.
Я собираюсь просмотреть источник, чтобы увидеть, смогу ли я определить, что происходит. В зависимости от того, что я найду, я могу открыть с ними проблему. Дайте мне знать здесь, и я обновлю вас.
А пока я бы предложил добавить -rpcport=19832 в вашу командную строку - здесь это всегда соблюдалось!
-rpcport=19832
в командной строке (я добавил его в /etc/systemd/system/bitcoind.service
) 👍
Филидор
bitcoind
собой? Не могли бы вы также попробовать запустить только этот файл конфигурации? pastebin.com/mKWmKs00 , также попробуйте127.0.0.1
вместоlocalhost
командыcurl
.Ракетные орехи
sudo systemctl start bitcoind
илиsudo systemctl restart bitcoind
. Попробовал ваш файл bitcoin.conf (и изменил имя пользователя и пароль на что-то новое, поэтому я уверен, что этот файл .conf используется) и перезапустил службу, но, к сожалению, тот же результат: он разрешает подключение на 18332 (с использованием нового пользователя и pasw), но не на 19832. Тоже пробовал127.0.0.1
вместоlocalhost
сcurl
но опять без разницы. Странно да?Филидор
systemctl cat bitcoind.service
.Ракетные орехи
systemctl cat bitcoind.service
: pastebin.com/raw/JQS0yuJH Большое спасибо за ваши попытки помочь. Просто чтобы быть уверенным, вы также тестируете с помощью тестовой сети? (не основная сеть?)Филидор
Ракетные орехи
getwalletinfo
тоже 169900?Филидор
Ракетные орехи
Алистер Манн
Алистер Манн
Ракетные орехи
sudo systemctl status bitcoind
чтобы быть на 100% уверенным, что она остановлена) и последующем запуске вручную результатlsof
тот же (ну, другие идентификаторы процессов, но три порта прослушивания одинаковы.Алистер Манн