繁体   English   中英

Java应用程序:连接到专用比特币节点的问题

[英]Java application : problem to connect to a private bitcoin node

这是上下文,这是一个在我的主机上的eclipse上运行的Java项目。 Virtual Box已安装在此主机上,并运行一个虚拟机,该虚拟机是一个专用比特币节点。

Java应用程序正尝试使用以下参数连接到比特币节点:

port = 18444 ip = 。***。58 rpcuser = bitcoinrpc rpcpassword = MotDePasse区块链=比特币链名= regtest

如果我尝试从主机到端口184444上的比特币节点ip的telnet连接,则可以正常工作。

比特币节点上的netstat命令如下:

Proto Recv-Q Send-Q本地地址外部地址状态PID /程序名称
tcp 0 0 127.0.0.1:18443 0.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 :38772成立-
tcp6 0 0 :: 1:18443 ::: *听1154 /比特币
tcp6 0 0 ::: 18444 ::: *听1154 /比特币
tcp6 0 0 ::: 22 ::: *听-

来自控制台的Java错误:

eb 27,2019 4:58:40 PM org.apache.http.impl.client.DefaultRequestDirector执行INFO:重试请求目标服务器未能响应org.apache.http.NoHttpResponseException:目标服务器未能响应

任何想法 ??

谢谢

关于您在第一篇和第二篇文章中提供的信息,我将尝试为您提供一些技术信息,希望您能在此疑难解答中找到问题。

首先,您使用RPC协议(远程过程调用)

RPC的技术观点

该协议提供了一种机制,该机制允许客户端(例如程序)请求服务器执行由客户端发送的参数提供给服务器的特定过程。

RPC是一种请求-响应协议。

在此处输入图片说明

由于您要进行身份验证,因此必须知道:

对于客户端到服务器的身份验证,RPC仅定义身份验证本身,而不定义服务的访问控制。 每个服务必须实现自己的访问策略。 可以与RPC客户端关联的身份验证有不同的形式。

Java远程方法调用(Java RMI)是API,它为RPC协议提供了一些有用的方法和实现。

此处检查完整的Tuto

结论:

您的问题是您尝试使用不提供相同实现过程的Http协议与RPC协议进行通信。 由于Telnet支持使用RPC协议进行通信,因此可以得到预期的答案。

您应该在双方的代码中都实现一些类,以支持RPC通信。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM