Synology NASでお手軽? Chiaマイニングしてみよう

Synology NASでお手軽? Chiaマイニングしてみよう

仮想通貨って夢がありますよね。今年はビットコインが史上最高値をどんどん更新して話題になったり、ずっと時価総額第2位でいたそこそこ大物コインのイーサリアムが1年間での成長率1500%を記録するなど良い話題が多いです。特にイーサリアムはGPUでのマイニングが主流なので、アキバからGPUが消えたっていうのも結構ニュースになっていましたね(現在進行系)。

さてそんなマイニング業界で今ホット?なのがストレージマイニングなる新しい仕組みで生み出されるChia(XCH)というコインだそうです。

通常のマイニングは新しい通貨のやり取りが行われると、それに応じたハッシュ値を生成するために全マイナーで競争をして、一番早く答えを見つけたユーザーが報酬をもらうという仕組みです。そのためできるだけ素早く計算が完了できるように、高性能なCPU/GPU/ASICなどの計算装置が必要です。

それに対してChiaは大量のハードディスクに当たりそうな答えを大量に書いておいて、通貨のやり取りが起きた際に、対応したハッシュ値がHDD内に見つかればそれを提出して報酬がもらえるという仕組みです。計算は事前に行うため高速なCPUなどは不要で、どれだけの計算結果を持っているかが勝負となります。なのでストレージが多いほど当たりを持っている可能性が高くなるので報酬がもらいやすいんですね。

で、儲かるの?

例えば5TBの計算済みスペースを持っていると、大体6ヶ月以内には1回報酬を受け取る事ができて、大体0.3XCH(今日の価格でおおよそ300ドル=3万円)ぐらいがもらえるみたいです。当たるかどうかはランダムなので、明日いきなり3万円もらえるかもしれませんし、1年経ってももらえないかもしれません。

できるだけ運要素を減らしたいとなると、120TB持っていると約1週間、500TB持っていると約1日で報酬を受け取れる可能性があるようです。500TBのデータ作るのに何日かかるんだろうって話ですが。

運営者も語っているんですが、そんなにCPUパワーはいらないから、空いているスペースを有効活用するとおもってまったりやるのがいいみたいですね。他のHDDマイニングと違って、帯域を殆ど使わないというのも利点であるみたいです(ノードのやり取りを除く)。

NASの余ったスペース使えばいいじゃない?

そこで私も早速やってやろうと思ったんですが、我が家ではPCのストレージレス化を勧めていて、M.2 SSDしか積んでいないので、大容量のストレージがあるのはNASしかありません。

PCのSSDでプロット(計算結果の集まりのようなもの)を作って、保管はNASに送るという方法でもいいんですが、プロットの作成は結構ストレージに負荷がかかるとのことで、コンシューマ向けSSDでは故障のもとになるみたいです。あとは保管するHDD自体は高速である必要はないとはいえ、(ネットワーク経由になるので)レイテンシが高いのはまずいかなと思いNAS内で完結させることにしました。(結局PCでもplot作成することになったんですけど)

Dockerでセッティング

こういうときに便利なのはやっぱりDockerですね。Synology NASには便利なGUIもついているので管理しやすいのが嬉しいところです。今回もできるだけGUI経由でセッティングしていきたいと思います。

下準備

下準備としてやるのは以下の通り

  • Dockerをパッケージセンターからインストールしておく
  • DSMでSSHを有効化して、適当なターミナルアプリをダウンロードしておく
  • Chia用の共有ディレクトリを切っておく(個別に作ると容量制限かけれるので○)
  • 8444ポートを開けて、NASに入るようにフォワーディングしておく(やらなくても動くが、運営者的にはネットワーク保全のためやってほしいらしい)

イメージをプルする

chia-dockerというオフィシャルのコンテナがGitHubにあります。

ただghcrはGUIからプルできないので、ここは仕方なくコマンド操作です。SSHでつなげてコマンドを打ちます。

sudo su
docker pull ghcr.io/chia-network/chia:latest

処理が終わるとGUIのDockerアプリ上にChiaのイメージが追加されます。この作業が終わったらもう使わないのでSSHは無効化してOKです。

Chiaのセッティング

ここからの作業はこちらのサイトを参考にさせてもらいました。

追加したイメージからコンテナを作成します。

設定は以下の通り

ボリューム
ポートマッピング

8444はノードのやり取りをするポート、55400はデーモンに接続するためのポートです(後ほどGUIで管理できるようにするために使用)。

環境変数はkeysを空にしていますが他はそのままです。

上記設定でコンテナを起動させたら「詳細」を押し、端末タブから作成を押してbashを呼び出します

この状態ではキーを持っていないので、まず作成を行います。

念の為キーを持っていないか確認します。

There are no saved private keys

「There are no saved private keys」と表示されるのを確認して、下記コマンドを打ちます。

venv/bin/chia keys generate

ニーモニックと24個の単語が出るのでコピペして大事に保管しておきます。

もしすでにキーを持っている場合は下記コマンドを押してニーモニックと単語を控えておきます。

chia keys show –show-mnemonic-seed

上記の環境設定でkeysをデフォルトのgenerateのままにしているとコンテナを起動するたびに勝手にキーが作成されてしまうので必ず消しておきましょう。

なお/rootを永続化していれば、毎回起動時にエラーが出ますがこのままで運用は可能です(keyが作れなかったというエラー)。

24個の単語をtxtファイルにして環境変数keysにパスを書いてあげると起動時にエラーを吐かなくなります。また、/rootを永続化しない場合はtxtファイルの作成は必須です。

続いてウォレットの作成をします。

venv/bin/chia wallet show

SかFを選べと言われるので、Sを押して終了です。今後自動的にnodeから情報を引っ張ってきてくれます。

これで設定は完了です。

各種確認用コマンドについて

下記コマンドを打つとノードの取得状況を確認できます。

venv/bin/chia show -s -c

私の環境だと先端までたどり着くのに2日ぐらいかかったので気長に待ちましょう。(どうせ焦っても報酬がもらえるスパンが数ヶ月とかなので遅いのは気にしないほうがいいですね)

下記コマンドでfarming(マイニング)が行われているか確認できます。

venv/bin/chia farm summary

「Farming status: Farming」となっていればファーミング中です。ノードが先端までたどり着かないとファーミングは始まらないので、「Syncing」となっている場合は先にplotの作成をしながらまったり待ちましょう。

plot(耕地)を作ろう

さて、ここからが本番のplot作成です。plotが1つもなければfarmingもできないので注意してくださいね。

venv/bin/chia plots create -d /plots -t /tmp

上記コマンドでplotを1つ作成します。

ただこれだと1個作成して終わりなので、ガンガン作っていきたい場合は-nで作りたい個数を指定します。

venv/bin/chia plots create -n 100 -d /plots -t /tmp

たとえば100個作る場合はこんな感じ。

更にガンガン作りたい場合は上記コマンドを2回打てば連続100個制作を2個並列に行ったりできます。ただ私の4コア8スレッド&RAID5のNAS(DS1621PlusでHDD3台&SSDキャッシュ有)では1個走らせるだけで結構CPUもストレージも使用率が高いので、他の作業に影響が出る点も考慮して1個動けば十分じゃないかと思います。このあたりはパフォーマンスモニタを見ながらやってみてください。

ログを取りたい場合はこんな感じで。

nohup venv/bin/chia plots create -d /plots -t /tmp >> /root/logs/plots_`date “+%Y%m%d_%H%M”`.log 2>&1 &

メインPCからリモート管理できるようにしよう

さて、続いてはGUIからDocker上に接続して、各種状況を確認できるようにもしてみたいと思います。

公式ドキュメントはこちら。

まずは以下よりWindows版のChiaをダウンロードします。

インストール後起動すると下記のような画面が出ますが、今回メインPC上ではfarmerもwalletもnodeも不要なので、一旦画面は閉じてしまいます。

まずはコンテナ内の「/root」をマウントしたNASのディレクトリの中から、「.chia\mainnet\config\config.yaml」を編集し、「self_hostname」の項目を「localhost」(127.0.0.1って書いてあるかも)から「0.0.0.0」に変えます。これでdaemonへのアクセスを端末外から行えるようになります。

次に「.chia\mainnet\config\ssl\daemon」の中にある「private_daemon.crt」と「private_daemon.key」を、Windows PC上の「%HOMEPATH%\.chia\mainnet\config\ssl\ui」にコピーします(「ui」フォルダは新しく作成してください)。

そしてWindows PC上のChiaの設定ファイル(%HOMEPATH%\.chia\mainnet\config\config.yaml)を変更します。

daemon_host:<NASのIPアドレス>
daemon_port: 55400
daemon_ssl:
private_crt: config/ssl/ui/private_daemon.crt
private_key: config/ssl/ui/private_daemon.key

uiセクションの中身

uiセクション内の「deamon_host」を「localhost」(127.0.0.1って書いてあるかも)からNASのIPアドレスに、各種証明書のディレクトリを「deamon」から「ui」に変更します。

最後にこの設定を反映させるために、ユーザーの環境変数に下記のように追加します。

変数名:CHIA_ROOT
変数値:%HOMEPATH%\.chia\mainnet

これで設定完了です。

この状態でWindowsのChiaを起動するとこんな感じになります。

タイトルバーに「wss://<NASのIPアドレス>:55400」と表示されていればリモートで接続できています。最初の方にバックアップを取ったfingerprintと中央に表示されている公開指紋~の数字があっていれば問題はないでしょう。

これでGUIからDoker上のChiaの各種情報が確認できるようになりました。

node情報
plot情報
farming情報

GUIでわかりやすく確認できます。

それにしても8plot作った状態で3年はヤバイ!どんどん耕地を作らないといけませんね・・・。

もしうまく接続できない場合は1回Chiaのコンテナを再起動させてみてください。(plot作成中に再起動すると進捗全部消えるので注意してください)

高速なPCでplotを作成しよう

私の環境では、NASでplotを作ると1個10時間以上かかります(遅い)。これでは全然plotが増えないので、報酬がもらえる日がいつになるかわかりません。ということでplotがある程度まとまった数になるまでは、NVMe SSDも乗っている高速なメインPC(Windows)で作ってNASに置いてあげることで、ブーストかけてやろうというお話です。

上記のリモート環境ができていれば、GUI上から耕地を作れるのでそれでOKです。

ただこのGUI不安定なのか私のPC環境が悪いのか知らないんですが時々落ちてしまうので、ずっと起動しておくのは正直微妙。いちおうGUIが落ちてもplot作成は止まらないんですが、ログがGUI上で拾えなくなって進行状況が全くわからなくなります(ログフォルダを漁れば一応見つかります)。

そこでおすすめなのがこちらのスクリプトです。

PowerSellスクリプトでいい感じに作ってくれるやつですね。

たとえばDドライブが高速なSSDで、NAS上のplotディレクトリをX:\plots(ネットワークドライブの割当で事前にマウントしておく)とするとこんな感じで実行できます。

.\startPlottingAll.ps1 D:\ X:\plots\ 3 40

このコマンドだと3個並列で40分の間を空けて実行してくれます。自動でガンガン作って行きたいときはGUIよりこっちのほうが便利ですね。

Chiaの蛇口、あります

さいごに。

一体いつChiaがもらえるのか不安ですよね、ずっと0XCHのウォレットを見ていると虚しくなりませんか。そんなあなたに無料でXCHがもらえるFaucetサイトをご紹介!

それでは楽しいChiaライフをお過ごしください。

LEAVE A REPLY

*
*
* (公開されません)

Return Top