今回は、satoshiが降ってくるDiamond Handsプロジェクトに実は興味あるけどエンジニアじゃないし、、、と二の足を踏んでいる方を想定し、Umbrelを例にオープンソースなアプリを自身でセットアップするコツを共有させていただきます。

ビットコインの世界はオープンソースでフリーで使えるソフトウェアがたくさんあります。ですが、こうしたソフトウェアは有料なものと違ってトラブルに遭遇しても自分自身で解決する必要があります。興味はあるけど、トラブったときどこをどう調べれば良いか勘所がわからない、と悩まれることはありませんか。

まず理解いただきたいのは、これはエンジニアだって同じだという点です。

初めてのものは誰だって何もわからないです。

でも、彼ら彼女らが魔法のように障害を解決してしまうという事実はなんなんでしょう。

これは、 

 しくみを理解することを楽しむ心持ち

があるからだと思います。

この点、ビットコインが大好きな皆さんは既にクリアしていますね。

ここに、ほんのちょっと、自分で手を動かしてみる、トラブるのは前提でそれを自分で解決してみよう、その道中がしくみの理解になるんだ、あるいはただ楽しもう、という心構えがあれば立派なエンジニアです。

実は殆どの方は既にエンジニアだと思うのです。

じゃあ実際に手を出そうとして二の足を踏んでしまう理由はというと、

- 自分で調べるにしてもどこから調べればよいか分からない

- 誰かに聞くにしても誰に聞けば良いか分からない

- 英語が苦手

といったことかと思います。

この中の1つめの課題へのヒントになるかも、ということで自分自身がどういうやり方をとっているかをUmbrel導入を例にご紹介します。そんなやり方もあるんだ、という感じで参考にして頂けたらと思います。

でも、これとてBlockstreamのいう、Don't Trust. verify です。

Umbrelを使ってみよう

さて、Twitterやビットコイン反省会とかでLightningノードを立てて繋ぐとsatoshiを貰えるDiamond Handsというプロジェクトが紹介されていました。面白そうだなと話を聞いていると、これにはどうやらフルノードが必要だとのこと。また、フルノードを立ち上げるにはUmbrelが良い、と紹介されていることに気付きました。

https://spotlight.soy/detail?article_id=3wg9bqxt4

よし、さっそくUmbrelをやってみよう、と一念発起です。

まずやることは、

 本家公式サイトを見てみる

ことです。

やり方としては、

- 紹介リンクを辿る

- GoogleにてUmbrelを検索してみる

- TwitterにてUmbrelを検索して、公式アカウントのURLを見つける

といったことをやります。フィッシングサイトに引っかからない用、本家サイトかの確認は慎重に行いましょう。

この公式サイトを確認するって意外なほど大事です。

誰かが紹介しているBlogは既に情報が古かったり、そもそも間違っていたりします。ここに引きずられると、やっぱダメじゃんと泣き寝入りしかねません。

実は、私自身も最近Umbrelをやってみようと手をだし、ググって最初にでてくるBlogを模範したところ行き詰まりました。

Umbrelを入れるための機器として紹介されていたものをルンルンしながらAmazonで購入、翌日届いて組み立てて、電源ON!と。

動かない、、、

なぜ?!となりました。

やはり、一次ソースにて、中の人が今時点でどう説明しているかを確認することが大事です。

Umbrelの場合、https://getumbrel.com/ が公式サイトとなります。

今回のトラブルは「電源が入らない」でした。ちょっと冷静に原因を考えてみると、

- 初期不良

- そもそも電子機器のスペックが間違っている

といった可能性がありそうだと思い至ります。そこで、公式サイトにてまずはスペックが合っていたかを確認します。公式サイトによると、「Install Umbrel on a Raspberry Pi 4」と分かりやすくRECOMMENDED HARDWAREが記載されています。確認してみます。

- Raspberry Pi 4 → OK

- 1 TB SSD → OK

- SSD Enclosure → OK

- 16GB+ microSD → OK

- Power Supply → ???

- Ethernet Cable → OK

- Case → OK

今回のトラブルは「電源が入らない」でした。初期不良の可能性もありますが、Power Supplyの詳細が気になります。そもそも、Raspberry Pi 4の要求する電源スペックってなんだっけ、と。

Raspberry Pi 4の公式サイト https://www.raspberrypi.org/products/type-c-power-supply/

を確認してみると、

 5.1V /3.0A DC output

とあります。今回購入したものは、

 5.0V 1.5A / 15.0V 2.6A

とあります。

電気工学なんて全然分からないけど、なんか数字が違い過ぎている気がする。。。

一次情報から分かるところは確認したので、二次情報にあたってもうちょっと掘り下げてみます。こんなときは、ユーザーが集まるコミュニティ上の会話を探すのが有益です。色々な人の知見が落ちています。

オープンソースプロジェクトの場合、大抵

- GitHub issues (Umbrelならhttps://github.com/getumbrel/umbrel/issues

- Stack Overflow

- 公式の用意するフォーラム(Umbrelならhttps://community.getumbrel.com/

- ファンが自主的に運用するフォーラム(Reddit, 日本語圏だとQiitaなど)

- その他、個人ブログ

あたりに情報がありますので、まずはGoogleに「raspberry pi 4 電源」などと入れて、これらのサイト上の情報を探してみます。

さて、探りはじめてみるとGoogleの検索候補に「電源問題」なんてでてきて、うっすらいやな予感を覚えます。検索結果にも

- Raspberry Pi 4から電源仕様が変わった

- 初期ロットには電源まわりのハードウェアにバグがあった

などなど、怖い話がてんこ盛りです。

ということで、公式スペックに準拠する5.1V /3.0A DC output な電源アダプタを改めて用意しました。結果、ちゃんと電源がはいったよ、と。Don't Trust. Verifyですね。

さてさて、気を引き締めてUmbrelのセットアップ本番です。

公式サイトのセットアップチュートリアルに従い、

- Umbrel OSをSDカードに書き込む

- Raspberry PiにSDカードをセット

- SSDを接続、LANを接続

- 電源オン!

http://umbrel.local にアクセスしろとあるのでMacのChromeからアクセスしてみるとちゃんとセットアップ画面が表示されました!

ところがです。しばらくすると、

 external drive was disconnected

なんて表示されちゃうんです。これはまいったぞ、と。可能性を考えてみると以下の点があり得そうです。

- SSD、SSDケース(M2規格をUSBに変換する機能付)の初期不良

- 電圧が足りない

- Umbrelのバグ

さて、公式CommunityのSupport and Troubleshooting (https://community.getumbrel.com/c/support/6 )を探ってみると同様の訴えが何件か確認出来ます。特に、最近のUmbrelバージョンアップ後調子が悪いとの訴えが目に付きます。また、電源をちゃんとしたのに取り替えろ、とのアドバイスに従って電源を代えた人が解決しなかった、なんて報告もありました。これは、Umbrel 最新版側のバグなのでは、という気がしてきますね。

切り分けのため、Umbrelではなく、Raspberry Pi OSをSDカードに入れて立ち上げることをしてみました。

結果、SSDを認識しません。というとは、UmbrelのバグではなくSSDかSSDケースの初期不良かも、という気がしてきます。

ということで、SSDを新しく購入し再チャレンジです。

結果、やはりSSDを認識しません。いよいよ楽しくなってきましたね。

SSDケースのほうの不具合なのかなあと、別のSSDケースを買ってMacに接続して確認です。なんてことでしょう、認識するんですね。結局、SSDケースが初期不良だったと(あとで分かったのですが、添付画像のUSBオス-USBオス変換器を1mmほどずらすと認識しました)。

ということで、SSDが認識するようになりまして、現在ブロックチェーンを同期中です。コミュニティの情報によると場合によっては2週間ほどかかりそうなので、なんとも中途半端ですが今日はここまでです。Diamond Handsプロジェクト参加したよ的な話は又改めてしたいな、と思います。

さて今回は、どうやってトラブルに対応していくか、という点について自分のアプローチを共有させていただきました。

- 一次ソース → 二次ソースの順番で確認する

- 問題の切り分けを意識する

- 解決の道中を楽しむ!

途中で紹介したコミュニティなどは実際には質問できる場でもあります。同じ趣味の仲間が助けてくれますので是非活用してみましょう。

英語が苦手な方は、日本語でのコミュニティが大抵ありますのでそうしたところにアプローチするのもいいですね。すくなくとも、本サロンもそうした場ですので、コメント・質問など是非活用頂ければと思います。