新しい 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);
});
そして得る:
Unhandled reject RpcError: 403 Forbidden at get (/Users/ekkis/Development/Test/www/node_modules/bitcoin-core/dist/src/parser.js:34:11) at Client.rpc (/Users/ekkis/Development/) Test/www/node_modules/bitcoin-core/dist/src/parser.js:81:14) で Request.self.callback (/Users/ekkis/Development/Test/www/node_modules/request/request.js:200: 22) リクエストで、emitTwo (events.js:87:13) で Request.emit (events.js:172:7) で。(/Users/ekkis/Development/Test/www/node_modules/request/request.js:1067:10) emitOne (events.js:82:20) で Request.emit (events.js:169:7) で IncomingMessage . (/Users/ekkis/Development/Test/www/node_modules/request/request.js:988:12) 前回のイベントより: at /Users/ekkis/Development/Test/www/node_modules/bitcoin-core/dist/src/ index.js:163:21 前のイベントから: クライアントで。コマンド (/Users/ekkis/Development/Test/www/node_modules/bitcoin-core/dist/src/index.js:152:34) で適用 (/Users/ekkis/Development/Test/www/node_modules/lodash/lodash) .js:409:27) オブジェクトの Client.wrapper [as getNewAddress] (/Users/ekkis/Development/Test/www/node_modules/lodash/lodash.js:4837:16) で。(/Users/ekkis/Development/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 で オブジェクトのラッパー [as getNewAddress] (/Users/ekkis/Development/Test/www/node_modules/lodash/lodash.js:4837:16)。(/Users/ekkis/Development/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 で オブジェクトのラッパー [as getNewAddress] (/Users/ekkis/Development/Test/www/node_modules/lodash/lodash.js:4837:16)。(/Users/ekkis/Development/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 アドレスを見つけて、ホワイトリストに登録するにはどうすればよいかということです。