node.js-如何连接到在Docker容器中运行的比特币测试网

我正在测试一些与比特币相关的代码,为了测试它已在docker容器中安装了bitcoin-testnet-box.

运行正常,在容器中,我可以执行命令并查看结果.

Dockerfile是exposing port 19001,我将其映射到端口49155作为bitcond实例之一的RPC端口,并且尝试使用node-bitcoin与之通信.

我写了一个简单的测试,目的只是为了解决当前的困难.

var bitcoin = require('bitcoin'),client = new bitcoin.Client({
      host: "192.168.59.103",port: 49155,user: "admin1",pass: "123"
    });

describe("Core Wallet Functions",function() {

  it("can get the current bitcoin difficulty",function(done){
    client.getDifficulty(function(err,difficulty){
      console.log("got response",err,difficulty);
      expect(err).to.equal(null);
      expect(difficulty).to.equal(1);
      done();
    });
  });
});

失败(请参见下面的更新),并显示以下错误

{[错误:连接ECONNREFUSED]
    代码:“ ECONNREFUSED”,
    errno:“ ECONNREFUSED”,
    syscall:’connect’}

快速浏览docker ps显示

CONTAINER ID        IMAGE                                COMMAND             CREATED             STATUS              PORTS                                                NAMES
8b04ed26d9e3        freewil/bitcoin-testnet-Box:latest   /bin/bash           3 hours ago         Up 8 minutes        0.0.0.0:49155->19001/tcp,0.0.0.0:49156->19011/tcp   bitcoind            

我尝试将主机更改为“ localhost”和“ 0.0.0.0”,但结果相同.

显然,我缺少一些简单的东西,因为node-bitcoin tests并没有做任何不同的事情.

用于运行bitcoin-testnet-Box的命令为

docker run -ti --name bitcoind -P -p 49155:19001 freewil/bitcoin-testnet-Box

我可能做错了什么?

更新资料

我按照以下建议更改了bitcoin.conf,现在错误消息为

[Error: Invalid params,response status code: 403]

我的bitcoin.conf看起来像

# testnet-Box functionality
testnet=1
dnsseed=0
upnp=0

rpcallowip=192.168.59.103
rpcallowip=192.168.1.4
rpcallowip=0.0.0.0

# listen on different ports than default testnet
port=19000
rpcport=19001

# always run a server,even with bitcoin-qt
server=1

# enable SSL for RPC server
#rpcssl=1

rpcuser=admin1
rpcpassword=123

一个更新

值得解释的是,我正在使用boot2docker在Mac上运行docker,所以我指的IP地址是运行docker ip时显示的IP,而不是Mac本身的IP.我正在Mac上使用NodeJS运行测试,而不是在boot2docker VM或实际Docker容器中运行测试.因此,我也尝试将rpcallowip = 192.168.1.4(其中192.168.1.4是我的Mac的IP)添加到我的bitcoind.conf文件中,以防万一. las没什么关系,我仍然收到{[错误:无效的参数,响应状态代码:403]代码:-32602}响应.

我还根据bitcoin.conf文件中的内容对我的用户名和密码进行了三重检查.

根据克里斯·麦金纳尔的建议,我在docker容器中运行了netstat -tunlp,它显示

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:19000           0.0.0.0:*               LISTEN      65/bitcoind     
tcp6       0      0 :::19000                :::*                    LISTEN      65/bitcoind     
tcp6       0      0 :::19001                :::*                    LISTEN      65/bitcoind     
tcp6       0      0 :::19011                :::*                    LISTEN      75/bitcoind     

所以我也将rpcallowip = 0.0.0.0添加到了我的bitcoin.conf文件中. las仍然没有区别.

终于解决

再次感谢Chris McKinnel,通过设置rpcallowip = *可以解决此问题.当然,这提出了一个新的问题,但是当我到达那座桥时,我会把它烧掉.现在,我可以很高兴地测试我的比特币过程.

最佳答案
我认为您需要将rpcallowip = 192.168.59.103添加到节点的两个bitcoin.conf文件中.认情况下,bitcoind将仅侦听localhost上的RPC连接(根据the docs).

将IP添加到允许列表后,您可以通过执行telnet 192.168.59.103 19001来检查其是否起作用.

要查看您的PC打开端口的列表(以及它们从何处接受连接),请执行netstat -tunlp.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


本篇文章和大家了解一下docker容器无法执行vim如何解决。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。目录docker容器无法执行vim【已解决...
这篇文章主要介绍了windowsDockerDeskTop最新款4.18.0怎么安装的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇windows&nb...
这篇文章主要介绍“docker的常用命令怎么使用”,在日常操作中,相信很多人在docker的常用命令怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
这篇文章主要介绍“docker中怎么配置hosts”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“docker中怎么配置hosts”...
这篇“docker怎么部署zookeeper集群”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读...
这篇文章主要介绍了怎么使用Maven打包构建Docker镜像并推送到仓库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Maven...
本文小编为大家详细介绍“怎么使用Docker自动搭建GitLab”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Docker自动搭建GitLab”文章能帮助大家解决疑...
这篇文章主要介绍“docker容器内缺少命令如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“docker容器内缺少...
本篇内容主要讲解“DockerAPI未授权访问漏洞问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习...
今天小编给大家分享一下怎么使用docker部署centos系统测试环境的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家...
这篇文章主要讲解了“docker如何挂载、修改文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker如何...
今天小编给大家分享一下docker部署fastapi项目及日志挂载的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文...
这篇文章主要讲解了“如何解决docker:unexpectedEOF.错误问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,
本篇内容介绍了“vscode怎么用ssh配置docker容器并开启远程编程模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家...
这篇“docker compose启动docker文件挂载失败如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价...
今天小编给大家分享一下docker compose数据卷volumes挂载规则是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章...
这篇“docker compose使用volumes要注意什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希
今天小编给大家分享一下docker compose基本语法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下...
这篇“docker compose安装挂载本地文件启动mariadb问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有
本文小编为大家详细介绍“skywalking在docker中怎么应用”,内容详细,步骤清晰,细节处理妥当,希望这篇“skywalking在docker中怎么应用”文章能帮助大家解决疑...