見出し画像

Lightning Network挑戦記(2)

おはようございます。🐤

今日はLightning Networkを始めるための実際の手順を書いていきます。その前にやり方の選定なんですが、たぶん調べ始めるとキリがないので、一番簡単そうで情報も多いRaspberry Piを使うやり方で始めることにしました。

必要な機器の購入

今回始めるにあたって僕がバイブルにさせていただいた記事の中に必要なものの一式があります。それとUnbrel公式ウェブサイトの「Install on a Raspberry Pi 4」のハウツーを参考に必要な機器を揃えます。

https://umbrel.com/#start

必要なもの(と参考までに僕が買ったもの)

  • Raspberry Pi 4
    ⇒2, 4, 8GB、どれでもOKだけど迷ったら8GB(※)

  • 1TB以上のSSDとそれをつなげるもの
    ⇒つながればなんでもいいと思います

  • 16GB 以上の容量がある microSD カード
    ⇒SDカードにUmbrel OSが入ります。7.5GBくらいのようなので16GBで十分ですが、なぜか32GBの方が安かったので僕は32GBを買いました

  • Raspberry Pi 4 に対応した電源 (出力 5.1V / 3.0A / USB Type-C)
    ⇒Raspberry Piは電源がシビアだそうです。なので公式ストアのものが間違いはないですけど、納期が1カ月かかります。代替品としてちゃんとしたショップのRaspberry Pi用製品なら大丈夫だと思います

  • LANケーブル(Cat 5e以上ならたぶん大丈夫)

  • Raspberry Pi 4 に対応したケース(※)

ここでいきなりつまづきます。Raspberry Pi 4というのが超品薄で、どこを探してもありません。いや、あるにはあるのですが、価格が2倍から3倍くらいの転売ヤー儲けさせ案件でした。

(7月17日現在、アマゾンではそこまで高くない価格で売っているようです、もしかしたらACアダプタが微妙かもしれないですけど、別途購入覚悟ならこのセットでいいかも⇒参考

探しているうちにPi 400という機種ならあることに気がつきました。しかもキーボード一体型でFamily Basicを彷彿とさせるデザインがめちゃくちゃ好みです。(Pi 400の方がずっとずっと小さくて軽いです、なんと400g以下)

あとはPi 4とPi 400で中身が同じかどうかですが、CPUの種類は同じで周波数違い、SoCもほぼ同じでした。Pi 400でUmbrelの動作ができたという報告は数少ないながらあるにはあったので、動くかどうかわからないまま勢いで購入します。動かなかったら自分でPi 400上でUmbrelをソースコードからコンパイルする覚悟です。

買い方は次のサイトがとても参考になります。僕は秋月通商さんでPi 400の本体とACアダプターを購入しました。

Pi 4とは違ってSSDは外付けしか選択肢がなかったので、アマゾンで外付け用のカバーとともに購入。

今回は価格重視で上記のものにしましたが、将来的にPi 4を買って内蔵にするかもしれないなら、M.2 2280タイプのものを買っておいても良かったかもしれません。その場合はまた別のアダプタが必要です。まあいいか。

あと、microSDは32GBのものを購入しています。SSD、SD、ACアダプタ、LANケーブル、HDMIケーブルと合わせてぜんぶで2.5万円くらいでした。Pi400はケース(放熱の良いケースは高い)が不要なので、Pi4よりも少し安くつきました。その代わりちょっと熱が心配です。

商品到着とセッティング

2日後くらいに商品が到着したので、さっそく開封しセッティングします。

セッティングは次の順序です。

  • microSDにUmbrel OSを書き込む

  • Raspberry PiにそのSDとSSDとLANケーブルをさす

  • 最後に電源をさす

  • 以上(マジか)

思ったよりだいぶ簡単でした。

最初に、32GBのmicroSDにこのマシンのOSをインストールします。インストールといっても公式からZIPファイルをダウンロードし、Etcherというソフトでイメージを書きこむだけです。makeとか不要、microSD、SSDのフォーマットも不要です。

まず公式ウェブサイトからRaspberry Pi 4用のUmbrel OSをダウンロードします。Umbrel公式のサイトには思いっきり「for Raspberry Pi 4」と書いてあります。どこを探しても「Pi 400でもOK」とは書いていなくて焦ります。

公式のインストール手順の2つ目のあたりでUmbrel OSのイメージファイルがダウンロードできます。

手順の3つめはbalena Etcherのダウンロードと、microSDカードへの書き込みです。PCにmicroSDを差し込んで、balena Etcherという書き込み用のアプリでさきほどのZIPファイルを書き込みます。(ただのコピーではだめで、特別な書き込み方が必要です。そのためにEtcherというソフトがいります)

ここまで、まったく専門知識なくても大丈夫でした。CDやDVDを焼くより簡単です。

で、Raspberry Piには電源スイッチがないので、アダプタを指すと即電源ONになります。だから、前もってmicroSDとLANケーブルとSSDを接続しておいて、最後にアダプタをさします。これで完了です。

あ、最初はHDMIケーブルをモニタにつないで、Raspberry Piが起動する画面を見るのが楽しいかもしれません、これはお好みです。というのは、このマシンはすべてネットワークを通じてリモートで操作するものだからです。

🐤 僕はRaspberry Pi 400を直接操作できると思っていたのでここは結構ショックでした……せっかくHDMIケーブル買ったのに、めちゃかわいくて感触の良いキーボードもついてるのに(泣)

えっとここで、なんらかの方法でRaspberry Pi(めんどうなのでこれから「ラズパイ」といいます)に接続する端末が必要です。うちの場合、ネットワークのルーターを経由して接続しました。

上の図でラズパイとルータの接続はLANケーブルだとなんの設定もいらないので僕はケーブルにしました。操作用端末はPC推奨ですが、僕は事情によりスマホでやってます。

操作用端末はLANケーブルでもWi-Fiでもなんでもいいのでそのルーターに接続して、ブラウザから「http://umbrel.local」と入力すると、ルーターが自動的にラズパイのウェブサービスに接続してくれます。

小さなおもちゃとはいえ、LinuxのWebサーバーですよ、しびれますね~。

Bitcoinノード、Lightningノードの導入

さて、ここまできました。参考に僕の操作用端末の画面はこんな感じです。たぶん最初は「Start」というボタンをクリックすると、ユーザーIDとパスワードの設定をすることになると思います。

Bitcoin Nodeのインストール

さきほどの参考ウェブサイトには「Unbrelが立ち上がると、システムは自動的に Bitcoin Core (Bitcoin 全ブロックチェーン) を同期しはじめます」と書いてありましたが、それはUmbrel OSのver 0.4の仕様だったようで、今ダウンロードできるver 0.5だと最初にApp Storeで「Bitcoin Node」のインストールが必要です。

下の図の「Bitcoin Node」をクリックしてインストールするとビットコインブロックチェーンのダウンロードが始まります。スマホのApp Store感覚でワンクリックで簡単にインストールできます。

操作は簡単なのですが、ここからが長いです。
僕の場合、ダウンロードには約6日かかりました。470GB以上あります。
うちのインターネット環境はダウンロードで100Mbps以上のスピードがでているようなのですが、これは計算どおりだと10時間半ほど、インターネットなのでデータ量が1.5倍としても1日もかからずにダウンロードが終わることになります。(470G / (100M/8)/60s/60m)

しかし、実際は6日かかっています。なんでなんでしょうか? あまり突き詰めていません…毎日進捗状況を眺めましょう。

また、Umbrelの設定画面からストレージの利用状況やCPUの温度などが見れます。うちの場合はビットコインダウンロード完了時点で次のような数字でした、温度ギリギリです、クーラーつけっぱなしにしないといけません。

  • Storage:533 GB / 983 GB

  • RAM:2GB / 4 GB

  • CPU温度:50℃くらい

「リモートアクセス可」と表示されていますが、おそらくマンションの回線などでは不可能です。戸建てならいけるかも。要するに固定IPであることが必要で、多くのマンションの回線では別途契約が必要になるはずです。(※固定IPでなくてもリモートアクセスできるとの情報あり)

Lightning Nodeのインストール

長い長いダウンロードが終わると、次に「Lightning Node」のインストールです。たぶんこのインストールはBitcoinのフルノードのダウンロード完了が要件だと思います。

えーっと、このインストールによって、ビットコインウォレットが作成できるようになります。(これもver0.5からの仕様です、Umbrelに同梱ではなくてモジュールに分けたようですね)

24の単語をメモして、「Lightning Node」アプリのビットコインウォレットにBTCを入金します。暗号資産取引所などから普通にBitcoinネットワークで送金してOKです。

僕が最初にチャネルを作ったプロジェクト「DiamondHands💎🙌」というノードが1M sat(=0.01BTC)以上の預かりを必要としているため、もしDiamondHandsにチャネルを開設するなら最低でも0.011 BTC以上を入金するのがいいと思います。(開設しなくてもOKです)

送金額に対して手数料が高額だとテスト送金するか迷いますね。参考までにBinanceからは0.0002 BTC(約600円)の手数料がかかります。

すると、30分から1時間ほどで次の図のように「Lightning Node」アプリのBitcoinウォレットに残高が表示されます。

LightningではBTCではなく「Sats」単位なので、ついぎょっとしてしまいますが、画面は0.0799 BTCという意味です。100,000,000 Sats=1 BTCですね。

DiamondHands💎🙌にチャネルを張る

いよいよ、Lightningに突入します。

「Lightning Node」アプリ内の画面下の方(PCだと右の方)に「Payment Channels」という欄があります。ここがLightningのチャネルといわれるところです。

ところでみなさん、Lightningのしくみ知ってますか?
僕は動画で学んだ程度です、なんとなくなら人に説明できるかな、程度です。要するにこの「チャネル」という送金経路を通じてしか送金ができないのです。ちょっと理解がなじむまで時間がかかりそうです。

そして、チャネルを作るのはL1であるビットコインブロックチェーンに登録するためのガス代(というのかな? ノードに支払う手数料)が必要です。

つまり、1回だけ送金するようなところにいちいちLightning Networkを使っていたら手間はかかるわ手数料負けしてしまうわで、何をしているかわかりません。

Lightningの説明でよく出てくる例のように、毎日通うコーヒーショップとか、アマゾンのように頻繁に使うECサイトにチャネルを開設する、というのが効率のよい使い方なのではないでしょうか。知らんけど。

ということで、有用そうなチャネルはどこかを考えます。考えるべきなのですが、ぜんぜんよくわからないので、とりあえず「みんなで頑張ろうよ~」という雰囲気を出している「DiamondHands💎🙌」にチャネルを開設することから始めようと僕は考えたわけです。

「Lightning Node」のアプリの下の方(PCだと右の方)の「Open Channel」をクリックします。

「Lightning address」の欄に、先ほどのDiamondHands💎🙌のウェブサイトの下の方「Connect:」というところの文字列をコピーして貼り付けます。「pubkey@ip:port」の形式になっているのがポイントです。

で、「Amount」には張りたい量、今回は1,000,000 Sats(0.01 BTC)張りたいので、1,000,000と入力します。「Transaction Fee」はよくわからないのでとりあえずスルーしました。失敗したくない人は僕の人柱検証を待つか自分で調べてください。

下の「OPEN CHANNEL」ボタンをクリックすると作業は完了です。Bitcoinブロックチェーンに記録されるまで約30分ほど? 待つとアプリ画面の真ん中の「Lightning Wallet」に結果が反映されます。

残高は記事と違います、イメージです

と、とりあえず今日はここらへんでどうでしょうか。キリの良いところではないでしょうか。また明日に続きます。

他の人にチャネルを張るには

DiamondHands💎🙌にチャネルを張ることはできましたが、他の人にチャネルを張るときに困りました。

Lightning Nodeのアプリには「pubkey@ip:node」の形式で張りつけないといけないのに、他の人のアドレスはpubkeyでとまっているのです。

「pubkey」というのはPublicKey(公開鍵)です。あと「xxxx.onion」というのがIPアドレスなのでしょうか、9735というのはポート番号です。要するにこの「Connect」というのはサーバーを狙ってつなぎにいく必要があるのです。

どうやったらこのIPとかportとかがわかるのか…、困った、困ったといろいろ調べていると1ML.comというサイトにたどり着きました。

ここでPublicKeyを張りつければ、pubkey@ip:portという形で表示してくれます。これはたぶん僕みたいにコロコロと変わる変動IPの人のためのダイナミックなネームサービスなんだ、きっと…。

…と思ったら、なんのことはありません。みなさんがよく使われているAMBOSSというサイトの画面下の方「Tor Address」というところをコピーするだけで良かったんだ。ここにも表示されてたんだ。

というわけでだいぶわかってきたところで、今日はここまでです。

うちの場合のトラブル2つ(参考)

ここまですいすいとスムーズに進んだように書いてきましたが、いろいろとつまるところはありました。

(1) 遅い

うちのネット回線の遅さでしょうか、やたらビットコインのダウンロードが遅いのです。1日で2%程度、このペースでは50日かかる、どうしよう…、というわけで、マンションのネットワークから別の携帯のネットワークにつなぎ変えることで6日程度に短縮できました。

このネットワークってホーダイだったよね…まさかオーバー分は払いホーダイ? とちょっと冷や汗をかいています。

(2) Umbrelにつながらない

突然Umbrelにつながらなくなることがあります。忘れたころに復活するのですが、なにこの現象、やたら冷や汗かくんですけど、と思っていろいろ調べたら、うちのルーターの問題でした。

うちのルーターは、LANポートがひとつとあとは無線なのですが、無線にはSSIDがAとBの2つあって、うちAのSSIDに接続しないとUmbrelの画面にはたどり着けないという仕様になっていました。

たまにBに自動的に接続していたことがあったんですね。スマホ側でAのSSIDに固定で接続するようにして解決しました。

その他小さなこと

あとはまあ、トラブルとは言えないですけど不安なことだらけでしたよね~、どこにもv0.5で説明しているウェブサイトはなくて画面や進行がぜんぜん違うし、やっぱりLightningの世界でもホワイトペーパー原文やコミュニティのアナウンスを読むことが必要不可欠なんだなと思いました。

あと、ネットワークのことを何も知らない、ルーターの設定画面を開いたこともないという人にはちょっときついかもしれないですね。

あと、この先たくさんの危険が待ち受けている気がするので、僕がGoxするのも時間の問題かとは思いますが、僕はお金を失うことがめちゃくちゃ嫌いなので、できる限りGoxは避けていきます。みなさんも気をつけてください。でも攻めないと一歩も前には進めないので兼ね合いがたいへんです。

というわけで今日のところはここまでです。
それではまた、DeFi~(@^^)/~~~

ここから先は

0字

¥ 100

この記事が気に入ったらサポートをしてみませんか?