hiro99ma blog

Something technical

btc: Bitcoin RPC を LAN内で使いたい

2025/03/09

家の中に Raspberry Pi4 で bitcoind を立ち上げている。
使うときだけ立ち上げても良いのだが、同期に時間がかかるので常時起動している。 軽い家庭内サーバと思っている。

いつも SSH でログインしてアクセスしているのだが、 そういえばウォレットアプリで自分の bitcoind を使うようにしておくとそれっぽいな、と思った。

bitcoin.conf の設定を localhost でしか使わない(デフォルトのまま)にしていたので変更が必要。
うちの LAN は 192.168.0.xxx だったのでこんな感じ。

rpcbind=0.0.0.0
rpcallowip=192.168.0.0/24

最初は rpcbind だけ設定したり rpcallowip だけ設定したりで全然ダメダメだった。 ちゃんとアクセスできると IP アドレスを localhost から自分に変更して JSON-RPC でアクセスできるようになる。

$  curl --user ほにゃ:ほげ --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getblockcount", "params": []}' -H 'content-type: text/plain;' http://192.168.0.xxx:8332/

家の中で動いている PC は少ないから IP アドレスも範囲じゃなくて決めてしまえばよいのだけどね。 デスクトップ PC はまだしもノート PC は別の場所で使うことがあるので DHCP じゃないと面倒なのだ。
こうやって、手間とセキュリティを秤に掛けてしまうのだ。。。

追記(2025/03/14)

rpcallowip で LANの指定しかしていなかったため localhost で RPC が呼べなくなっていたような感じがする。

rpcbind=0.0.0.0
rpcallowip=127.0.0.1
rpcallowip=192.168.0.0/24

ただこれでもアクセスができない。
どうも node-fetch で “localhost:8332” としていたのだが、IPv6 でアクセスしているのに rpcallowip は 127.0.0.1 だからダメだったようだ。

 reason: connect ECONNREFUSED ::1:8332

bitcoind を再起動するのも時間がかかるので node-fetch で呼び出すときに “127.0.0.1:8332” にした。
やれやれ。


 < Top page


コメント(Google Formへ飛びます)

GitHub

X/Twitter

Homepage