Я читал аналогичный пост, на который не было ответа в этом месте . Я пытаюсь использовать биткойн-кли с хоста, отличного от хоста, на котором работает биткойн. Я также был бы рад использовать curl для отправки запросов rpc. Мне удалось заставить bitcoind и bitcoin-cli обмениваться данными на одном хосте, но активация порта rpc для внешней связи оказалась слишком сложной, если не невозможной, и я ищу вашей помощи.
Я запустил bitcoind со следующим конфигурационным файлом:
server=1
rpcuser=jared
rpcpassword=1234
rpcport=8332
rpcallow=192.168.*.*
gen=0
prune=600
(Обратите внимание, пароль будет изменен после того, как система заработает)
Я подтвердил, что система работает на локальном компьютере с помощью bitcoin-cli, чтобы получить следующее:
{
"version" : 110200,
"protocolversion" : 70002,
"blocks" : 183745,
"timeoffset" : -1,
"connections" : 8,
"proxy" : "",
"difficulty" : 1583177.84744401,
"testnet" : false,
"paytxfee" : 0.00000000,
"relayfee" : 0.00005000,
"errors" : ""
}
И с другого хоста в сети я использовал nmap для сканирования портов для отображения:
Starting Nmap 6.47 ( http://nmap.org ) at 2015-12-19 15:20 PST
Nmap scan report for c161.attlocal.net (192.168.1.68)
Host is up (0.0014s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
8333/tcp open unknown
В упомянутом выше вопросе пользователь смог открыть порт rpc, удалив строки rpcallow из своего файла конфигурации. Он их закомментировал, и проблема решилась сама собой. Я также пробовал это, и мне не повезло.
Я также пытался использовать rpcallow из «192.168.1.*», «192.168.0.0/16», «192.168.1.0/24» и однажды попытался использовать rpcbind, который, по-видимому, связан со старой версией биткойн, как это больше не указан на справочных страницах для bitcoin.conf.
Моя система работает под управлением следующей ОС:
Distributor ID: Ubuntu
Description: Ubuntu 15.10
Release: 15.10
Codename: wily
Любая помощь приветствуется! С уважением и спасибо.
Две мысли:
Синтаксис подстановочных знаков больше не поддерживается. Вместо 192.168.*.*
используйте 192.168.0.0/16
. Вместо 192.168.1.*
используйте 192.168.1.0/24
.
В качестве дополнительного шага отладки попробуйте запустить netstat -antlp | grep 8332
. Если это приводит к выводу, как показано ниже, это означает, что он привязан к порту.
tcp 0 0 0.0.0.0:8332 0.0.0.0:* LISTEN
netstat
, как выясняется, что мой биткойн-узел прослушивает порт 18332, а не 8332.Помимо разрешения диапазона сетевых адресов для клиентов, вам необходимо также указать rcpbind=server_ip_address
для сервера (где работает ваше биткойн-ядро).
Значение по умолчанию равно rcpbind
, 127.0.0.0
и оно позволяет RPC прослушивать только , localhost
а не 0.0.0.0
.
Чтобы иметь возможность подключаться с локального хоста и из сети, добавьте параметр дважды, как показано в примере :
server=1
rpcuser=bitcoin
rpcpassword=yourpassword
[main]
rpcbind=127.0.0.1
rpcbind=192.168.0.10
rpcallowip=127.0.0.1
rpcallowip=192.168.0.0/16
РЕДАКТИРОВАТЬ: В качестве альтернативы вместо того, чтобы вводить конкретный адрес сервера, вы можете просто использовать rcpbind=0.0.0.0
его, чтобы заставить RPC прослушивать файлы 0.0.0.0
. Это более гибко, но тогда вы полагаетесь исключительно на то rpcallowip
, чтобы разрешать только локальные соединения.
Ник Оделл
netstat -antlp | grep 8332
говорит?Джаред Клеменс