【问题标题】:403 Forbidden from bitcoind -server run on docker403 Forbidden from bitcoind -server 在 docker 上运行
【发布时间】:2016-07-09 18:26:55
【问题描述】:

我正在使用新的 Docker-for-Mac 来运行这样的守护进程:

$docker run -d --name bitcoind -e BITCOIN_DATA=/data \
    -v ${PWD}/bitcoind:/data -p 8332:8332 seegno/bitcoind:latest \
    -server -rpcuser=test -rpcpassword=nopass -rpcallowip=192.168.1.67 \
    -printtoconsole -debug=rpc

我允许的 IP 地址是我的默认地址:

$ ifconfig |grep inet |grep -v inet6
    inet 127.0.0.1 nitmask 0xff000000 
    inet 192.168.1.67 netmask 0xffffff00 broadcast 192.168.1.255

然后我运行我的应用程序:

var BTC = require('bitcoin-core');
var opts = { 
    host: 'localhost',
    port: 8332,
    username: 'test',
    password: 'nopass'
};
btc = new BTC(opts);
btc.getNewAddress().then(function(s) {
    console.log(s);
});

然后得到:

未处理的拒绝 RpcError: 403 Forbidden 在获取(/Users/ekkis/D​​evelopment/Test/www/node_modules/bitcoin-core/dist/src/parser.js:34:11) 在 Client.rpc (/Users/ekkis/D​​evelopment/Test/www/node_modules/bitcoin-core/dist/src/parser.js:81:14) 在 Request.self.callback (/Users/ekkis/D​​evelopment/Test/www/node_modules/request/request.js:200:22) 在 emitTwo (events.js:87:13) 在 Request.emit (events.js:172:7) 在请求。 (/Users/ekkis/D​​evelopment/Test/www/node_modules/request/request.js:1067:10) 在 emitOne (events.js:82:20) 在 Request.emit (events.js:169:7) 在传入消息。 (/Users/ekkis/D​​evelopment/Test/www/node_modules/request/request.js:988:12) 从之前的事件: 在 /Users/ekkis/D​​evelopment/Test/www/node_modules/bitcoin-core/dist/src/index.js:163:21 从之前的事件: 在 Client.command (/Users/ekkis/D​​evelopment/Test/www/node_modules/bitcoin-core/dist/src/index.js:152:34) 在申请时(/Users/ekkis/D​​evelopment/Test/www/node_modules/lodash/lodash.js:409:27) 在 Client.wrapper [as getNewAddress] (/Users/ekkis/D​​evelopment/Test/www/node_modules/lodash/lodash.js:4837:16) 在对象。 (/Users/ekkis/D​​evelopment/Test/www/t:12:5) 在 Module._compile (module.js:425:26) 在 Object.Module._extensions..js (module.js:432:10) 在 Module.load (module.js:356:32) 在 Function.Module._load (module.js:311:12) 在 Function.Module.runMain (module.js:457:10) 启动时 (node.js:136:18) 在 node.js:972:3

虽然我似乎能够连接到服务器:

$ telnet localhost 8332
Trying ::1...
Connected to localhost.
Escape character is '^]'.

它不会因为连接错误而挂断我……我错过了什么?

* 编辑我 *

好吧...如果我使用-logips 运行守护程序并进行尝试,我会看到:

2016-07-09 18:32:26 收到来自 172.17.0.1:50262 的 POST 请求

而不是我预期的 IP 地址。我收集它是 Docker 运行的 VM 的 IP 地址,它以某种方式被路由到容器。所以现在的问题是:如何从我的节点应用程序中发现该 IP 地址,以便将其列入白名单?

【问题讨论】:

    标签: node.js docker bitcoind


    【解决方案1】:

    并且...(鼓声)答案似乎是我可以从docker inspectNetworkSettings.Gateway 键中拾取它。但是...实际上,我可以将其烘焙到 CLI 中,因为对于此图像,网关始终相同

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 2021-06-06
      • 2020-06-04
      • 2021-10-04
      • 2021-07-07
      • 1970-01-01
      • 2016-04-15
      相关资源
      最近更新 更多