QnapをHarvesterにする

前回ubuntuにてRemote Harvestar設定しましたが、Qnapでも同じようにしたいと思います。ハーベスターを別けることでWARNINGは確実に減りましたが、SMB接続のままだったQnapのWARNINGが相変わらず出ているためです。

debug.logより。常時ではありませんが、madmaxでplot完成後にNASに転送するタイミングで発生している感じです。さらにOGを消してPPに置き換える作業も同時並行しています。USB HDDにQnapからコピーし続けてるので、plot読み出しが5秒を越えてしまうのは仕方ない気もしますが、Qnapをハーベスターにすることで多少改善するといいな。

QnapにDockerをインストールする

QnapはLinuxが動いています。SSHでつなげてChiaを入れればそのまま使えるかもしれませんが、おかしくなったときにリカバリーが大変そうなのでGUIでやることを前提とします。調べるとDockerというのを使うといいらしい。Docker=仮想化くらいの知識しかありませんでしたが…

まず、QnapのAppCenterでContainerStationというのをインストールしましょう。これでQnapでDockerが使えるようになります。

ContaierStationを立ち上げ、「イメージ」タブへ、右上の「プル」をクリックし、レジストリを「追加」します。ここはOfficial Chia Docを使うことにしましょう。

名称:ghcr.io
URL: http://ghcr.io
ユーザー名:空欄
パスワード:空欄

接続テストボタン押してOKであれば追加しましょう。

もう一度「プル」をクリックし、イメージ名を適当につけて「プル」しましょう。

追加されたイメージのアクションの「+」ボタンをクリックし、コンテナを作成します。

QnapにChiaをインストールする

 

事前準備です。Qnapに新しい共有フォルダChiaを作成し、caフォルダとplotsフォルダを作成しておきました。

caにはfull node実行PCのC:\Users\hyperbanana\.chia\mainnet\config\ssl\caの4ファイルを入れてあります。plotsにはplotファイルを格納します。

今まではhome配下にplotファイル入れていましたが、Dockerからhomeディレクトリにアクセスできなかったため変更しました。同じボリューム内のファイル移動は一瞬で終わるので大丈夫。

適当にコンテナ名をつけて詳細設定へ。

環境タブでは以下の様に設定しました。
TZ: Pacific/Honolulu
(日本の場合はAsia/Tokyo)
farmer: false
farmer_address: 192.168.1.238
(full node実行中のPCのIPを入力)
full_node_port: 8447
full_node_port: null
harvester: true
keys: copy
plots_dir: /qnap
(デフォは/plotsですが、GUIのPlotリストでわかりやすいようにqnapとしました)
testnet: false
ca: /chia/ca
(full nodeのcaファイル格納先、caの項目はなかったので追加しました)

ネットワークタブでは、ネットワークモードをBridgeにし、DHCPを使用するにチェックを入れました。NATでもいいですが、その場合はPortマッピングの設定が必要になります。

共有フォルダタブでは、Qnapに作った共有フォルダをDockerコンテナで使えるようにします。
caファイル用に、/Chiaを/chiaに
plot用に/Chia/plotsを/qnapに

最後に作成ボタンをクリック。

完成です。

ターミナルに入りたい場合は「端末」ボタンをクリックし、コマンド:/bin/sh でOK

使いそうなコマンドは…

IPアドレス確認
hostname -i

プロット登録ディレクトリ確認
venv/bin/chia plots show

debug.log確認
less /root/.chia/mainnet/log/debug.log

デーモン全停止
chia stop -d all

ハーベスター起動
venv/bin/chia start harvester

ハーベスター再起動
venv/bin/chia start harvester -r

Harvester動作確認

GUIのFarmタブにHarvesterが3つ現れました。

Plotsタブで/qnapに保管しているplotが認識されました。

SpacePoolにもHarvesterが3つ認識されました。

あとはdebug.logにWARNINGがそれほど出ないことを願っています。