
ラズベリーパイでフルノードを運営しまして、bitcoind を自動起動しますと、bitcoin-cli で getrawtransaction コマンドを使って、opreturn 文字列を取り出すことができます。bitcoin.conf で index=0 にしていても、txidとblockhash を指定すれば、ビットコインの92万ブロックのどこのトランザクションでも、op_return命令で埋め込まれた文字列を取り出すことができ、それをascii変換すれば文字列を人間様が読むことができるわけです。
これを、軽量webサーバー lighttpd(ライティと読みます) でhtmlデータとして送信すれば、いつでもどこでもopreturn文字列を確認することができるのです。情報を取得するときのアウトバウンド接続の代理サーバーをプロキシーサーバーと言いますが、情報発信するときのインバウンド接続の代理サーバーをリバースプロキシと言います。
しかし、普通の家庭用の光インターネット接続サービスでは、インバウンド接続のファイアーウォールがガチガチに閉じられておりまして、ルーターの設定で「ファイアウォールを外す」をクリックしても、ISP側のルーターでポート遮断しているということがあるわけです(自宅ルーターの設定項目は意味なし、単なる飾り)。だから、自宅でwebサーバーを運営することはできない、ということになるわけです。自宅でサーバーやりたかったら、固定IPのオプション契約お願いします、という感じですね。月額千円以上掛かるようです。固定IPということで、そのIPが犯罪に使われたらプロバイダも責任を生じる恐れがありますので、監視員を設置しなければなりませんから、無料というわけには行かないのでしょう。
じゃあ自宅で固定IP無しで、どうすれば bitcoindフルノードの情報を発信するwebサーバーを運営するかと言いますと、次の3通りがあります。ビットコインフルノードは700GB以上のブロックチェーンを保存しなければなりません。
1、レンタルサーバーのVPSを1TB以上のディスクで契約する。だいたい、月額1万円以上掛かるようです。固定IPが1個以上ついてきます。
2、VPSは100GBなどの最小限(月額700円など)で契約して、frps リバースプロキシとして自宅サーバーの情報を転送する。固定IPが1個以上ついてきます。https通信するためには、ドメイン取得して Letsencrypt に登録する必要があります。
3、Cloudflare Tunnel のリバースプロキシを設定して、自宅サーバーの情報を転送する。クラウドフレアと自宅の間にVPNみたいなトンネルを繋ぐ。Argo Smart Routing という機能ですが、従量制のオプション契約のようです。スマホ料金と同じでパケット料金が掛かるわけです。パケ死の恐れがありますよね。
ということで、管理人のお勧めは、2番のfrpsサーバーによる自宅とのトンネル接続方式です。情報の流れは上から下に、こんな感じで流れて行きます。
・自宅bitcoind with 800GB bitcoin blockchain
・自宅lighttpd ウェブサーバー(cgiでpythonスクリプトを動かす)
・自宅 frpc クライアント
・VPS側、frpsサーバー
・世界中の閲覧者(ブラウザ)
というわけで、どうしても固定IPのVPSを1個契約することは必要ですが、例えば「さくらインターネット」の場合は、北海道石狩市のサーバーであれば月額590円から契約することができます。lighttpd も frps も全てフリーソフトで実現できます。bitcoind も勿論フリーソフトです。ブログサイトに登録してブログやってる場合じゃないですね。自宅 ubuntu サーバーでブログを「運営」しちゃいましょう!
※2025/11/2追記
opreturn viewer が300秒のタイムアウトになってしまうことがありました。IBDがまだ終わってないのでbitcoin-cli の反応が遅くなっているようです。それで、IBD進行速度を測定するスクリプトを作成して呼び出しました。

コメントを残す