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

问题描述 投票:0回答:1

这是上下文,一个在我的主机上运行在eclipse上的java项目。 Virtual Box安装在此主机上并运行vm,这是一个私有比特币节点。

java appli尝试使用以下参数连接到比特币节点:

port = 18444 ip = .. ***。58 rpcuser = bitcoinrpc rpcpassword = MotDePasse blockchain = bitcoin chainname = regtest

如果我尝试telnet连接从我的主机到端口184444上的比特币节点ip,它的工作原理。

比特币节点上的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:*听到 - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 576 ...:22 ...:38772 ESTABLISHED - tcp6 0 0 :: 1:18443 ::: * LISTEN 1154 / bitcoind tcp6 0 0 ::: 18444 ::: * LISTEN 1154 / bitcoind tcp6 0 0 ::: 22 ::: * LISTEN -

控制台的Java错误:

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

任何的想法 ??

谢谢

java javafx bitcoin wallet
1个回答
0
投票

关于您在第1和第2篇文章中提供的信息,我将尝试为您提供一些我希望的技术信息,您将能够找到此故障排除的问题。

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

RPC的技术观点

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

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

enter image description here

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

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

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

检查一个完整的tuto HERE

结论:

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

您应该在代码中实现一些类以支持RPC通信。

© www.soinside.com 2019 - 2024. All rights reserved.