[英]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.