背景
自宅サーバでBitcoinフルノードを動かしているのですが、ノードの状態を外部からシンプルに確認できるUIが欲しいとずっと思っていました。 既存の btc-rpc-explorer も導入して使っていました。非常に便利ですが、機能が多くて「自分が見たい情報だけ欲しい」派には少しオーバースペック。 そこで、ミニマルなノードステータスビューアを自作することにしました。
名前は「NodeZen」。
余計な情報を削ぎ落とし、ブロック高やピア数など必要最低限だけを表示するダッシュボードです。
リポジトリ: https://github.com/mimoex/Zen-btc-dashboard
開発
実装には以下を使いました:
- Flask: Python製の軽量Webフレームワーク
- Chart.js: グラフ描画ライブラリ
- vnStat: ネットワークトラフィック計測
- psutil: システムリソース取得
表示している情報
- ノードの基本情報(バージョン、プロトコル、ブロック数、Uptime)
- ピア数(inbound / outbound)
- vnstatによるネットワーク統計(時間別・日別)
- ディスク使用量(Bitcoinデータディレクトリ)
UIはChart.jsでモダンにしました。
JAISTのFTPサーバのようなグラフも好きなのですが、やっぱりモダンなモノも好きでして、、
今後の展望
とりあえずデプロイまでできたので、次は以下を考えています:
- Peerの国別分布をGeoIPで可視化
- Docker化