はじめに
みなさんHDDマイニングしてますか?
GPUみたいに瞬間計算速度勝負にはならないので、ネットワークの維持にかかる消費電力が少なく済む、エコな仮想通貨(ほんとか?)として話題のアレです。
特別なデバイスが必要になるものではないので、試しに外付けHDDを買ってくれば試せる手軽さはGPUマイニングにない良さですね。
こういう、SSD+外付けケースだったり、適当に容量があるHDDを使えば、一応始められます(あたるかは完全に運)
ロジテック HDD SSDケース 2.5インチ USB3.2 Gen1 ブラック LGB-PBSU3
- 発売日: 2019/12/06
- メディア: Personal Computers
東芝 内蔵HDD 2.5インチ 1TB PCモデル MQ01ABD100 2年保証 【国内正規代理店品】SATA 6Gbps対応
- 発売日: 2017/04/07
- メディア: Personal Computers
Transcend StoreJet USB3.1 SSD/HDD ケース 耐衝撃アップグレードキット TS0GSJ25CK3
- 発売日: 2016/05/13
- メディア: Personal Computers
当方の環境としては「当たれば御の字」という感じで、家にあった上記のような製品を使ってオタメシしています。
Chiaのファーミングとは
世間では「HDDマイニング」と呼ばれますが、Chia用語的には「ファーミング」です。
ファーミング とは HDDに保存されている宝くじのようなもの(100GBぐらい) が、 Chiaネットワークで要求されているものかを確認し、もし、それが運よく要求されているものだったら報酬がもらえる、といったものです。
2021年5月現在、1つのプロットにかかるのは 6時間、300GB超のディスク容量(一時ファイル) と言われており、 この途方もなさが瞬間火力勝負のGPUマイニングとの最たる違いで、条件が提示されてから計算してからはもう遅いという話です。
プロットを管理するharvester
雑なイメージ図を書いてみました。
- ハーベスタ(Chia用語
harvester
)は作成されたプロット(Chia用語plot
)を管理する役割 - ファーマー(Chia用語
farmer
)はハーベスタに対して、要求される要件を満たすプロットを提供
ハーベスタに要求される性能
上の図の通り、プロットは他のマシンで作成してハーベスタにアップロードする、というやり方も実現できます。
つまり、プロット作成に要求されるようなマシンスペックは必要ありません。よって、いかに プロットを格納できるHDDを確保できるか? がポイントです。筐体の出来の良さとかを考えれば、NASにハーベスタをやらせるのもよいと思います。
問題は、プロットが要件に合致するものか検証するためにどれぐらいのスペックが必要になるか?ということですが、これについては負荷を見ていい感じにハーベスタにプロットを割り振れば負荷を分散できるのではないかと思っています。(具体的な値は持ち合わせていないので、何かご存じでしたらコメントとかもらえると嬉しいです)。
- 容量モリモリにするのがハーベスタ
- CPU・リードライト性能モリモリにするのがプロッター
と考えて準備すればよいのではないかなと思います。
ハーベスタのセットアップ
ここからはコマンドラインを多用します。
初期化
フルノードを担っているメインマシンのカギをダウンロードします。デフォルトでは ~/.chia/mainnet/config/ssl/ca
に格納されているので、ca
フォルダごとローカルにコピーします。
私の環境はフルノードをUbuntuで動かしていて、ハーベスタはWindowsにしようと思っているので、Zipに圧縮して持ってきました。
# フルノードで↓ cd ~/.chia/mainnet/config/ssl zip ~/ca.zip ca -r # 新しく作るハーベスタ側で scp <FULL_NODE_IP>:~/ca.zip ./
で、ダウンロードできた ca.zip
を C:\ca
などに展開します。で、ダウンロードしてきたcaフォルダを使ってハーベスタを初期化します。
# 新しく作るハーベスタ側で chia init -c C:\ca
こうすると新しく鍵がインポートされ初期化されます。
設定
ハーベスタの設定は ~/.chia/mainnet/config/config.yaml
に書かれています。(フルノードを動かしたりするための設定も記載されているのでファイルがデカい)。
harvester:
から始まる行以降がハーベスタの設定部分です。
まずは farmer
の指定。ハーベスタの設定部分内の farmer_peer:
から始まる部分を探して、hostにファーマーのIPアドレスを記入します。
farmer_peer: host: <FARMER_IP_ADDRESS> port: 8447
次にプロットを格納する場所を指定します。下記のようにフォルダを列挙すると、そのフォルダに格納されたプロットをハーベスタが扱ってくれるようになります。
plot_directories: - D:\plots - E:\plots - F:\plots
ハーベスタの起動
下記コマンドで起動できます。
chia start harvester
起動していることの確認
先ほどのコンフィグファイルのログレベルの指定箇所の log_level
を INFO
に指定することで動作している様子を確認することができます。
logging: &id001 log_filename: log/debug.log log_level: INFO log_maxfilesrotation: 7 log_stdout: false
こんな感じに。
2021-05-20T14:07:46.124 harvester chia.plotting.plot_tools: INFO Searching directories ['E:\\plots', 'D:\\plots'] 2021-05-20T14:07:46.135 harvester chia.plotting.plot_tools: INFO Loaded a total of 4 plots of size 0.39592934947722824 TiB, in 0.058008432388305664 seconds 2021-05-20T14:07:46.137 harvester chia.harvester.harvester: INFO 0 plots were eligible for farming 0000000000... Found 0 proofs. Time: 0.06001 s. Total 4 plots 2021-05-20T14:07:46.139 harvester harvester_server : INFO -> farming_info to peer <FARMER_IP_ADDRESS> 1234567890123456789012345678901234567890123456789012345678901234 2021-05-20T14:07:54.438 harvester harvester_server : INFO <- new_signage_point_harvester from peer 1234567890123456789012345678901234567890123456789012345678901234 <FARMER_IP_ADDRESS>
といった感じで指定されたディレクトリからプロットが読み込まれて、ファーミングされることがわかります。(まだ4プロットしかないw
終わりに
プロットを作成する方法などもいずれ書きたいと思いますが、個人的に詰まったポイントを先に書きました。
参考URL
今回の記事は下記の Chia-Network の GitHub Wiki の下記ガイドの内容をベースに記載しています。
Farming on many machines · Chia-Network/chia-blockchain Wiki · GitHub