ここ数ヶ月で、ビットコイン即時決済を実現する技術であるライトニングネットワークが急速に発達しはじめました。
BitMEX Researchによる統計情報によると6月時点で1,500BTCであったキャパシティが2ヶ月で46%も急拡大したとのことです。
fig.1.
https://bitcoinmagazine.com/.../lightning-network-over...
こうした急成長を支えるドライバーとして、ラズベリーパイでライトニングネットワーク用ノードを立てられるUmbrelやmyNodeといったプロジェクトの登場があげられます。
今回は、そうした中で最近特に元気なUmbrelに関して、そのソースコードを解析しちゃおうという内容となります。
Umbrel
Umbrel: https://getumbrel.com/
Umbrelがなにか、については本研究所でも私であったり、加藤さんであったりが紹介しておりますので是非そちらも確認いただけますとイメージが沸くかと思います。
【2021/5/6】ビットコインエコシステムの新星:Umbrel
【2021/6/30】オープンソースなアプリとの付き合い方
上記から引用すると、
Umbrelはラズベリーパイや古いPC、NUCなどに簡単にインストールできる、ビットコインノードとライトニングノードおよび周辺機能をまとめたソフトウェアです。Umbrel自体もオープンソースで無料なので、必要なのは動かすためのハードウェア (PCやラズベリーパイなど)だけです。
UIがわかりやすく、設定が一箇所にまとまっているUmbrelを使うことで、ユーザーはビットコインウォレットを自分自身のノードに接続して使ったり、ノンカストディアルなライトニングウォレットを使用することがこれまで以上に簡単にできます。また、Umbrelはすべての接続にTorを使用するため、外部からの接続を受け入れるために難しいネットワークの設定も特に必要ありません。
といった代物です。
そして、素晴らしいのがアプリストアを内蔵している点です。
改めて引用すると、
UMBREL APP STORE
さて、Umbrelの一番の目玉機能はUmbrel App Storeだと私は思います。App Storeとはいっても、掲載されているアプリはすべて無料でオープンソースのものなので、ユーザーからすればオプション機能をインストールするようなイメージです。インストールボタンを押すだけで導入でき、特に難しい設定などが必要ない点が素晴らしいです。
現在入れられるアプリで代表的なものをいくつか挙げると:
・BTCPay Server-オンラインストアやクラウドファンディングを作れる。
・Bluewallet Lightning-Bluewalletのサーバーを動かすことで、通常はカストディアルなBluewalletのライトニングウォレットをノンカストディアルに使える。家族などにサービス提供もできる。
・Specter Desktop-使いやすいマルチシグ機能を重視したウォレット。
・Samourai Server-プライバシー向上のためにミキシングを実行できる。
界隈の代表的なオープンソースソフトウェアプロダクトの多くがすでにUmbrel App Storeに登場していることがわかると思います。Umbrel普及の勢いが持続すれば、今後もその数は増えていき、ユーザーにとって使いやすくなると考えられます。ノードに同梱という特長によって、エンドユーザーがサーバー系 (常駐)のアプリを簡単に動かせるのが特にいいですね。
こうした仕組みは果たしてどうやって実現しているのでしょうか。
ソースコードを解析してみる
UmbrelもソースコードはGitHubにて公開されています。
GitHubリポジトリ: https://github.com/getumbrel/umbrel
こちらのREADME.mdというファイルに、利用しているオープンソースプロジェクトの一覧が記載されています。
- Umbrel Dashboard
- Umbrel Manager
- Umbrel Middleware
- Bitcoin Core
- LND
- Tor
- Nginx
- Neutrino Switcher
- Electrs
どうやら、ビットコインノードとしてはデファクトであるBitcoin Coreを利用しており、ライトニングネットワークノードとしてはLightning Lab社のLNDを採用しているようです。
とてもオーソドックスな構成です。
ちょっと面白いのは、Neutrino Switcherの存在です。