Приложение Java: проблема с подключением к частному узлу биткойн - PullRequest
0 голосов
/ 28 февраля 2019

Вот контекст, Java-проект, запущенный на моем хосте в Eclipse.Virtual Box установлен на этом хосте и запускает виртуальную машину, которая является частным узлом биткойнов.

Java-приложение пытается подключиться к узлу биткойнов, используя такие параметры, как:

port =18444 ip = . . ***. 58 rpcuser = bitcoinrpc rpcpassword = MotDePasse blockchain = цепочка биткойнов = regtest

Если я попытаюсь подключиться через telnet измой хост к узлу биткойн ip на порту 184444 работает.

Команда netstat на узле биткойн дает следующее:

Локальный адрес Proto Recv-Q Send-Q Внешний адрес Состояние PID / Имя программы
tcp 0 0 127.0.0.1:184430.0.0.0:* LISTEN 1154 / bitcoind
tcp 0 0 0.0.0.0:18444 0.0.0.0:* LISTEN 1154 / bitcoind
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 576 . . . : 22 * ​​1026 *. . .: 38772 УСТАНОВЛЕНО -
tcp6 0 0 :: 1: 18443 ::: * LISTEN 1154 / bitcoind
tcp6 0 0 ::: 18444 ::: * LISTEN 1154 / bitcoind
tcp6 0 0::: 22 ::: * LISTEN -

Ошибка Java из консоли:

eb 27, 2019 16:58:40 org.apache.http.impl.client.DefaultRequestDirector execute INFO: Запрос на повторную попытку. Целевой сервер не ответил org.apache.http.NoHttpResponseException: целевой сервер не смог ответить

Есть идеи ??

Спасибо

1 Ответ

0 голосов
/ 01 марта 2019

Что касается информации, которую вы предоставляете в 1-м и 2-м постах, я постараюсь предоставить вам некоторые технические данные, которые, я надеюсь, вы сможете найти проблему для этого устранения неполадок.

Сначала вы используете протокол RPC(Удаленный вызов процедур)

Техническое представление RPC

Этот протокол предоставляет механизм, который позволяет клиенту (например, программе) запрашивать у сервера выполнение определенной процедуры.это обеспечивается ему параметрами, отправляемыми клиентом.

RPC - это протокол ответа на запрос.

enter image description here

Поскольку выпытаясь пройти проверку подлинности, вы должны знать:

Для проверки подлинности клиент-сервер RPC определяет только проверку подлинности, а не контроль доступа к службе.Каждый сервис должен реализовывать свою собственную политику доступа.Существует другая форма аутентификации, которая может быть связана с клиентами RPC.

Вызов удаленного метода Java (Java RMI) - это API, обеспечивающий некоторые полезные методы и реализацию для протокола RPC.

Проверка завершенаtuto ЗДЕСЬ

В заключение:

Ваша проблема заключается в том, что вы пытаетесь установить связь с протоколом RPC, используя протокол Http, который не обеспечивает те же процедуры реализации.Поскольку Telnet поддерживает связь с протоколом RPC, вы получите ожидаемые ответы.

Для поддержки связи RPC вы должны реализовать в своем коде несколько классов с обеих сторон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...