イーサリアムをエーテリウムと呼びたいブログ

Ether ってなんて呼んでますか?イーサですか?私はエーテルと呼びたいです。カッコいいから!

DAppNode でノードを建てた

先日 DAppNode の紹介をしました。今回は DAppNode の使用感などをお話ししたいと思います。

インストール

インストールは Github の説明に従ってもらえればほぼ問題ありません。

github.com

VPS は実利用では推奨されていませんが、検証目的なら VPS でも OK とのことです。私は自宅のLAN内に中古のノートPCを設置してそこにインストールしました。ルータとノートPCは有線で繋げています。検証で HDD では Parity の同期が間に合わないことが分かりましたので 512GB の SSD に換装しています。フルノードを運用したいとか複数のノードを動かしたいということでなければ256GB前後あれば十分でしょう。

インストールは基本的に yes や Continue で進めれば問題ありません。選択肢が表示される場合はデフォルトで選ばれているものが推奨なので、そのまま決定すれば問題ありません。インストーラーでは日本語表示も選べますが、パーティションニングの段階で停止するかもしれないので英語をおススメします。

f:id:seidoutakizawa3:20190417192842j:plain

キーボードレイアウトの設定は自動検出ではなくて NO で手動設定したほうがいいかもしれません。私の環境ではなぜか全く関係ない言語が検出されました。

f:id:seidoutakizawa3:20190417205641j:plain

コンソールに VPN サーバにアクセスするための QR コードと管理画面の URL が表示されます。VPS にインストールする場合は VPN 経由でアクセスする必要がありそうです。一般的な VPS だとログインするために SSH 経由が多いかもしれません。その場合は ISO から DAppNode をインストールするのではなくて、Ubuntu Server を別に先にインストールして後で wget で個別に DAppNode インストールする必要があるかもしれません。無線 LAN 機能があるパソコンにインストールしたなら DappNodeWIFI と SSID が見えるようになりますのでパスワード dappnode で入れます。

Parity の同期

http://my.admin.dnp.dappnode.eth/ から管理画面に入れます。このドメインは DAppNode の DNS で管理されていてこのネットワーク内のみで通用します。

Parity の同期が自動的に始まります。この Parity は Warp モードと呼ばれる状態で同期が行われ、最初はスナップショットをダウンロードしてそれが終わるとブロックの同期を行います。Warp モードはフルノードとは呼べなそうです。ライトノードとフルノードの中間的な状態ですね。マイニング用途では十分だそうです。私の環境では半日掛かりました。途中でスナップショットのダウンロードとブロックの同期が止まることがあり、再起動させる必要がありました。再起動は http://my.admin.dnp.dappnode.eth/#/system/ethchain.dnp.dappnode.eth からできます。DAppNode がインストールされた環境に直接ログインして直接 docker コマンドを実行することもできます。ログに詳細がでるので、数分たっても進捗が無いなら再起動した方がいいかもしれません。通常スナップショットもブロックも数分かかることはありません。

Parity の同期が終わったら

同期が終わると Metamask からこの Parity を経由してトランザクション発行ができます。カスタム RPC を登録して実際にトランザクションを発行してみてください。ログで様子が分かります。

他には、 http://my.admin.dnp.dappnode.eth/#/installer からパッケージをインストールできます。

f:id:seidoutakizawa3:20190417200219p:plain

ビットコインや Monero もありますね。私は今 Rinkeby を同期させています。

f:id:seidoutakizawa3:20190417200557p:plain

メモリは10GB搭載していますが、30%使っていますね。ドキュメントの推奨は8GBで最低でも4GBだったと思います。ノードの数が増えると8GBは必要そうです。CPU は i5-2520M の古いものです。ファンがずっと動作していますが、それほど CPU は使われていないようです。特定のスレッドが消費されているだけで残りのスレッドは待機状態と思われます。

http://decentral.eth から DApps にアクセスできます。これらは IPFS でコンテンツが公開されているので、初回 IPFS でファイルのダウンロードが行われて大変遅くなっています。2回目からは高速でアクセスできます。ethforward で ENS を媒介する形になって DNS の名前解決を実現しているようです。詳細は良く知りません。

IPFS

IPFS を経由してパッケージやサイトコンテンツのダウンロードがされているようです。.eth ドメインは大抵 Web3仕様だと想像されます。 http://my.ipfs.dnp.dappnode.eth:5001/webui から管理画面に入れます。初回だけ、"/ip4/172.33.1.5/tcp/5001" を下の "API ADDRESS" に登録する必要があります。Peers から生きてるノードが見えるようです。

f:id:seidoutakizawa3:20190417202712p:plain

Files で画像を共有してみました。

https://ipfs.io/ipfs/QmQeJEch2UJLNagE3Tp65FaAqHQPUjpyXCoo3Bqs2XK9Mw

※ URL に注目してください。後で私のノードは削除するので見えないかも

これでファイル共有サーバとしても使えますね。

まとめ

使ってみると実感できるのですが、これが真の分散化 Web、Web3.0 という感動を味わえます。Ethereum が好きなのはこれがやりたかったからなのでとても嬉しいです。

IPFS は必要なものをその時にダウンロードする仕様になっているようです。なので初回は大変遅いです。ブラウザの設定で恐らくタイムアウトしてしまうことも多いと思います。もしかしたら設定である範囲の同期を事前にするとかできるかもしれません。

登録されているパッケージが少ないので色々ノードを試せなそうなので、有志がパッケージを追加してくれるのを待つ必要がありそうです。自分からパッケージを作るのもいいかもしれません。近いうちに Raiden Network は追加されそうです。

DAppNode はこれから先の Web3.0 の普及に大きな貢献をしそうです。.eth ドメインDNS の名前解決に使える事も分かったので ENS の価値もかなり向上しそうな予感がします。