BlockClock Miniで自作サービスの状態を監視する簡易ダッシュボードを作った話

BlockClock Miniで自作サービスの状態を監視する簡易ダッシュボードを作った話

自分はBTCLog、Paddle、Blocksat Readerなど趣味の零細サービスが多く、それに関連してライトニングノードも複数あったりします。そうなると管理が手間になってしまい、どれかが落ちていても気づかなかったりするので、ひと目で状態異常を確認できるデバイスが目の前にあったらな~と思ったりしていました。

そこで、よく考えると以前から飾っているBlockClock Miniを活用できそうだったので、作ることにしました。

BlockClock Mini

BlockClock Miniとは、ColdcardやOpendimeなどの変わり種ハードウェアウォレットを製造しているCoinkite社が作っている、ビットコインのブロック高や価格、手数料水準などのデータが表示できるIoTデバイスです。

Jackの背後、窓の下にあるやつですね。このインタビューを見た記者がBlockClock Miniを知らなかったため、「モスクワ時間を表示してなにかを伝えようとしているのでは?」という勘違いをしたため、"Moscow Time"っていうミームになりました。(実際は1ドルあたり1952サトシ、という数字を表示しています)

BlockClock Mini自体にはHTTPサーバーが搭載されており、特定のrouteにリクエストを投げると任意の文字列を表示することができます。

BlockClock Mini Push API Documentation

クラウド上のライトニングノードやちょっとしたサービスの監視に役立てようと思い、簡易ダッシュボードを作ることにしました。

余談ですが、AWS EC2のケチったインスタンスで動かしてるLndより、自宅のNUCで動かしてるLndのほうがはるかに安定性高いので、AWS上にライトニングノード立てるのはそのうちやめると思います。

成果

HTTP(S)またはTor越しに、特定のウェブサイトやAPIエンドポイント、ライトニングノード(※LND)へ5分ごとにリクエストを飛ばし、ステータスコード200 (正常)が返ってきたら「OK」、アクセスできなかったりエラーが返ってきたら「ERR」と表示する簡易ダッシュボードができました。

(5分ごとなのは、BlockClock MiniのEインクディスプレイの更新頻度を抑えるためです。ただし、状態が変わらなければ更新しませんが。)

リポジトリはこちらです。

Torに対応したことで、Umbrelのアプリやライトニングノードの状態もひと目で確認できるのがポイントです。あとは、Discordにも対応しているので状態が変わったときにメッセージを飛ばすこともできます。(スマホに簡単に通知できるので便利)

動かすには

Linux (Ubuntu)を念頭に丁寧にREADMEを書いたので、リポジトリを確認してください。引っかかるところは、事前にTorクライアントを入れておく必要があること、安全のためLndのreadonly macaroonをゲットすることくらいでしょうか。

Umbrelなどで動かす場合は、screenやtmuxなどを使ってSSHを閉じてもプロセスが生き続けるようにしてください。

あと、もしBlockClock Miniを移動するなどして再起動した場合は画面が「Hello」に戻ってしまうので、プログラムを再起動してダッシュボード表示に戻してください。

Remaining : 69 characters / 0 images
100

Sign up / Continue after login

Related stories

Writer

ビットコインが好きです。ビットコイン研究所に寄稿したり、トラストレスサービス株式会社という会社で実験的なサービス開発をしています。

Share

Popular stories

11年ぶりに動いたビットコインはサトシのものか?

7043

MicroStrategy社はなぜビットコインを440億円分買ったのか【インタビュー要点和訳】

5278

【和訳】New York Times 『プログラマーと独裁者』

3421