見出し画像

CHIA の Plot を確認する

(この記事は 2021年6月 くらいの情報です)

Farm 内の Plot の数の一覧をみてて、どうも腑に落ちないことが度々あった。
同じ容量の(というか同じモデルの)ディスクを使っているのに、ディスク内で認識されている Plot の数がずれているのである。

ファイルサイズがきっちり全部同じではないみたいなので、偶然1ファイル分溢れる感じでになることもあるかな、と思ってたけど、数十ファイルで片方に「少しファイルサイズの大きな」ものばかり偏るとは考えにくい。

でもまぁ、気になるという程度なので放置していたんだけど、先ほど見てみたら。

画像1

いや、2ファイル差はさすがにおかしい…

というか、このディスク 4TB なはずなので、実効で 3.6~3.7TIB くらいあって、36Plots くらいは入るはず。

なのに 31?隣も 33?

画像3

ファイル自体は 36個あるようだ。
でも 31個しか認識してない。

こりゃさすがにまずいでしょ、ってことで Plot のチェックをしてみることにした。

chia plot check コマンド

HPOOL にはないけど、公式の chia コマンド(Chia ではなく chia の方)には Plot をチェックする機能があるっぽい。

chia コマンドは

\Users\<ユーザー名>\AppData\Local\chia-blockchain\app-<バージョン>\resources\app.asar.unpacked\daemon

にある。

AppData が隠しフォルダ(というかシステムフォルダ)なので dir しても出てこないが、cd はできるし Tab での補完もできる。

chia plots check

とすると、Farm 内の Plot を全部チェックしてくれる。

チェック対象がわかっているなら

chia plots check -g "Plot 名の一部"

とすれば、部分一致で Plot 名を検索してチェックしてくれる。

注意するのは、指定するのはファイル名ではないので、Farm に入ってる全 Plot の中でマッチするものをチェックするということ。
Farm に入っていない場合には、config を書き換えるなり、chia plots add コマンドなり、GUI 上なりで Plot の場所を Farm に追加しておく必要がある。

とりあえず、何も考えずに config を調整して全チェックかけてみた。

画像2

いやもう、出るわ出るわ

と思ったけど、どうも hpool-miner が掴んでて読み込めないのでエラーになってるだけっぽい。
一度止めて再実行…したけど、やっぱり何ファイルかはエラーが出るな。

本チェックが…

ここで出てたエラーは、あくまでヘッダとかわかりやすいエラーに限った話らしい。

全部の Plot をざっと見た後、1つ1つちゃんと中身のチェックがはじまる。

これが終わらない!
1Plot あたり 20-40秒くらいかけて1つ1つチェックしてるので、800Plots あったら 400分?

 7時間近くかかるってこと!?

最終結果がどう出力されるのかもわからないので、とりあえず確実にエラーが出てる Plot 周辺を指定してやってみた。

C:\Users\yray\AppData\Local\chia-blockchain\app-1.1.6\resources\app.asar.unpacked\daemon>.\chia plots check -g plot-k32-2021-06-05-0
2021-06-08T03:24:08.888  chia.plotting.check_plots        : INFO     Loading plots in config.yaml using plot_tools loading code
2021-06-08T03:24:09.008  chia.plotting.plot_tools         : INFO     Searching directories ['C:\\PLOTS\\CHIA_MAINNET\\1\\', 'C:\\PLOTS\\CHIA_MAINNET\\2\\', 'C:\\PLOTS\\CHIA_MAINNET\\3\\', 'C:\\PLOTS\\CHIA_MAINNET\\4\\', 'C:\\PLOTS\\CHIA_MAINNET\\U1\\', 'C:\\PLOTS\\CHIA_MAINNET\\U2\\', 'C:\\PLOTS\\CHIA_MAINNET\\U3\\', 'C:\\PLOTS\\CHIA_MAINNET\\U4\\', 'C:\\PLOTS\\CHIA_MAINNET\\U5\\']
2021-06-08T03:24:09.012  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\1\$RECYCLE.BIN, subdirectories not added by default
2021-06-08T03:24:09.020  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\1\System Volume Information, subdirectories not added by default
2021-06-08T03:24:09.052  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\2\$RECYCLE.BIN, subdirectories not added by default
2021-06-08T03:24:09.139  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\2\System Volume Information, subdirectories not added by default
2021-06-08T03:24:09.157  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\3\$RECYCLE.BIN, subdirectories not added by default
2021-06-08T03:24:09.248  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\3\System Volume Information, subdirectories not added by default
2021-06-08T03:24:09.278  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\4\$RECYCLE.BIN, subdirectories not added by default
2021-06-08T03:24:09.352  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\4\System Volume Information, subdirectories not added by default
2021-06-08T03:24:09.398  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U1\$RECYCLE.BIN, subdirectories not added by default
2021-06-08T03:24:09.456  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U1\System Volume Information, subdirectories not added by default
2021-06-08T03:24:09.504  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U2\$RECYCLE.BIN, subdirectories not added by default
2021-06-08T03:24:09.594  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U2\System Volume Information, subdirectories not added by default
2021-06-08T03:24:09.625  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U3\$RECYCLE.BIN, subdirectories not added by default
2021-06-08T03:24:09.626  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U3\NEW, subdirectories not added by default
2021-06-08T03:24:09.628  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U3\System Volume Information, subdirectories not added by default
2021-06-08T03:24:09.630  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U4\$RECYCLE.BIN, subdirectories not added by default
2021-06-08T03:24:09.631  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U4\NEW, subdirectories not added by default
2021-06-08T03:24:09.633  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U4\System Volume Information, subdirectories not added by default
2021-06-08T03:24:09.634  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U5\$RECYCLE.BIN, subdirectories not added by default
2021-06-08T03:24:09.634  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U5\NEW, subdirectories not added by default
2021-06-08T03:24:09.688  chia.plotting.plot_tools         : INFO     Not checking subdirectory C:\PLOTS\CHIA_MAINNET\U5\System Volume Information, subdirectories not added by default
2021-06-08T03:24:09.745  chia.plotting.plot_tools         : INFO     Only loading plots that contain "plot-k32-2021-06-05-0" in the file or directory name
2021-06-08T03:24:09.811  chia.plotting.plot_tools         : ERROR    Failed to open file C:\PLOTS\CHIA_MAINNET\U1\plot-k32-2021-06-05-01-17-32bf0a51f8dd71943a6f1f696082cf5df4ea03162e533b42bc7e9c8ad582f8d0.plot. Invalid plot header magic Traceback (most recent call last):
 File "chia\plotting\plot_tools.py", line 189, in process_file
ValueError: Invalid plot header magic

2021-06-08T03:24:09.822  chia.plotting.plot_tools         : INFO     Found plot C:\PLOTS\CHIA_MAINNET\U1\plot-k32-2021-06-05-04-25-cbaa4e3aa49a30c38da7ec4d0eea0244ba66a0eb60151ed7dd41859e6f07dc0c.plot of size 32
2021-06-08T03:24:09.838  chia.plotting.plot_tools         : ERROR    Failed to open file C:\PLOTS\CHIA_MAINNET\U1\plot-k32-2021-06-05-08-11-79f55b770bfad7a0661f88404e28b33b0f170504abb479437c07ccd16e5a110f.plot. Invalid plot header magic Traceback (most recent call last):
 File "chia\plotting\plot_tools.py", line 189, in process_file
ValueError: Invalid plot header magic

2021-06-08T03:24:09.846  chia.plotting.plot_tools         : INFO     Found plot C:\PLOTS\CHIA_MAINNET\U1\plot-k32-2021-06-05-08-12-7b27d8cfea0b9735e7bff9e9ef583c92c413f4725b2bf99b64f77df89cfadea0.plot of size 32
2021-06-08T03:24:09.860  chia.plotting.plot_tools         : INFO     Found plot C:\PLOTS\CHIA_MAINNET\U1\plot-k32-2021-06-05-04-33-dd7f768df4d264e05e227019ea4f47222835aafb099279d5f20b2218b6274522.plot of size 32
2021-06-08T03:24:09.862  chia.plotting.plot_tools         : ERROR    Failed to open file C:\PLOTS\CHIA_MAINNET\U1\plot-k32-2021-06-05-09-43-693e51d18c95082c6b2a372cf6f178b797a1eedd73948d73f4d0ff236648532b.plot. Invalid plot header magic Traceback (most recent call last):
 File "chia\plotting\plot_tools.py", line 189, in process_file
ValueError: Invalid plot header magic

2021-06-08T03:24:09.863  chia.plotting.plot_tools         : ERROR    Failed to open file C:\PLOTS\CHIA_MAINNET\U2\plot-k32-2021-06-05-03-31-0f127e8f8b08d30f05eae6c476fff73c25ebb5067b5d15a259fab5399ffd71cf.plot. Invalid plot header magic Traceback (most recent call last):
 File "chia\plotting\plot_tools.py", line 189, in process_file
ValueError: Invalid plot header magic

2021-06-08T03:24:09.863  chia.plotting.plot_tools         : ERROR    Failed to open file C:\PLOTS\CHIA_MAINNET\U1\plot-k32-2021-06-05-05-38-9af204d6c05551b7ab6d0c0a7274aada0f67d75ef4e663a4969c1e39bcb4eea6.plot. Invalid plot header magic Traceback (most recent call last):
 File "chia\plotting\plot_tools.py", line 189, in process_file
ValueError: Invalid plot header magic

2021-06-08T03:24:09.867  chia.plotting.plot_tools         : ERROR    Failed to open file C:\PLOTS\CHIA_MAINNET\U2\plot-k32-2021-06-05-09-44-fba4722fde2d66bf3afecd6be8dd5325c29ffdeb8bb580c49997f4df45212bb6.plot. Invalid plot header magic Traceback (most recent call last):
 File "chia\plotting\plot_tools.py", line 189, in process_file
ValueError: Invalid plot header magic

2021-06-08T03:24:09.867  chia.plotting.plot_tools         : ERROR    Failed to open file C:\PLOTS\CHIA_MAINNET\U2\plot-k32-2021-06-05-06-04-a40a772dabad699ad3eb8e6cce03192a934243b82d88a6e65f061ecad9b1591c.plot. Invalid plot header magic Traceback (most recent call last):
 File "chia\plotting\plot_tools.py", line 189, in process_file
ValueError: Invalid plot header magic

2021-06-08T03:24:10.332  chia.plotting.plot_tools         : INFO     Loaded a total of 3 plots of size 0.29697037949699734 TiB, in 1.3649423122406006 seconds
2021-06-08T03:24:10.402  chia.plotting.check_plots        : INFO
2021-06-08T03:24:10.406  chia.plotting.check_plots        : INFO
2021-06-08T03:24:10.409  chia.plotting.check_plots        : INFO     Starting to test each plot with 30 challenges each

2021-06-08T03:24:10.488  chia.plotting.check_plots        : INFO     Testing plot C:\PLOTS\CHIA_MAINNET\U1\plot-k32-2021-06-05-04-25-cbaa4e3aa49a30c38da7ec4d0eea0244ba66a0eb60151ed7dd41859e6f07dc0c.plot k=32
2021-06-08T03:24:10.521  chia.plotting.check_plots        : INFO        Pool public key: *****
2021-06-08T03:24:10.588  chia.plotting.check_plots        : INFO        Farmer public key: *****
2021-06-08T03:24:10.651  chia.plotting.check_plots        : INFO        Local sk: <PrivateKey *****>
2021-06-08T03:24:11.363  chia.plotting.check_plots        : INFO        Proofs 23 / 30, 0.7667
2021-06-08T03:24:11.364  chia.plotting.check_plots        : INFO     Testing plot C:\PLOTS\CHIA_MAINNET\U1\plot-k32-2021-06-05-04-33-dd7f768df4d264e05e227019ea4f47222835aafb099279d5f20b2218b6274522.plot k=32
2021-06-08T03:24:11.364  chia.plotting.check_plots        : INFO        Pool public key: *****
2021-06-08T03:24:11.383  chia.plotting.check_plots        : INFO        Farmer public key: *****
2021-06-08T03:24:11.402  chia.plotting.check_plots        : INFO        Local sk: <PrivateKey *****>
2021-06-08T03:24:11.976  chia.plotting.check_plots        : INFO        Proofs 25 / 30, 0.8333
2021-06-08T03:24:11.978  chia.plotting.check_plots        : INFO     Testing plot C:\PLOTS\CHIA_MAINNET\U1\plot-k32-2021-06-05-08-12-7b27d8cfea0b9735e7bff9e9ef583c92c413f4725b2bf99b64f77df89cfadea0.plot k=32
2021-06-08T03:24:11.979  chia.plotting.check_plots        : INFO        Pool public key: *****
2021-06-08T03:24:11.987  chia.plotting.check_plots        : INFO        Farmer public key: *****
2021-06-08T03:24:11.988  chia.plotting.check_plots        : INFO        Local sk: <PrivateKey *****>
2021-06-08T03:24:12.650  chia.plotting.check_plots        : INFO        Proofs 26 / 30, 0.8667
2021-06-08T03:24:12.652  chia.plotting.check_plots        : INFO
2021-06-08T03:24:12.656  chia.plotting.check_plots        : INFO
2021-06-08T03:24:12.657  chia.plotting.check_plots        : INFO     Summary
2021-06-08T03:24:12.658  chia.plotting.check_plots        : INFO     Found 3 valid plots, total size 0.29697 TiB
2021-06-08T03:24:12.659  chia.plotting.check_plots        : INFO     3 plots of size 32
2021-06-08T03:24:12.662  chia.plotting.check_plots        : WARNING  7 invalid plots found:

んんん(勝手に色付くの切りたい…)

2021-06-08T03:24:12.657  chia.plotting.check_plots        : INFO     Summary
2021-06-08T03:24:12.658  chia.plotting.check_plots        : INFO     Found 3 valid plots, total size 0.29697 TiB
2021-06-08T03:24:12.659  chia.plotting.check_plots        : INFO     3 plots of size 32
2021-06-08T03:24:12.662  chia.plotting.check_plots        : WARNING  7 invalid plots found:じじs終結果これだけ。。。

実質、これだけ…
エラーになったファイルの一覧とか最後にまとめて表示してくれてもバチあたらないと思うのよ?

出力をログに取っておくか、表示をさかのぼって調べるしかないってことかぁ

実際のオペレーション

さすがに 7時間も Farming を止めておくわけにはいかないので、何か手段を考える必要がある。

全体を止めようとするから無理があるので、一部ずつ設定から外してチェックしていけばいい。

Plot 名でチェック対象を絞れはするものの、その指定で Farm から外すというのは非常に困難。

しかし、幸い数 TB ごとに(つまり、ディスクごとに)ディレクトリを分けて登録してあるので、このディレクトリごとに(手動で)切り替えながらチェックをすることにする。

とりあえずさっきの、明らかに容量のおかしい U1 から。

2021-06-08T03:57:19.645  chia.plotting.check_plots        : INFO     Summary
2021-06-08T03:57:19.646  chia.plotting.check_plots        : INFO     Found 31 valid plots, total size 3.06849 TiB
2021-06-08T03:57:19.647  chia.plotting.check_plots        : INFO     31 plots of size 32
2021-06-08T03:57:19.647  chia.plotting.check_plots        : WARNING  5 invalid plots found:

5 Plots がエラーなのでぴったり計算は合う

同じディスク内にディレクトリを掘って、該当のエラー Plot をそちらに移動し、ディレクトリを Farm に戻して再チェック。
Plot 数が変わらない(取り除いたのがすべてエラーだった)ことを確認できたらエラー Plot は削除する。

というわけで、
 1)hpool-miner からディレクトリ外す
 2)Mainnet の Farm をそのディレクトリだけにする
 3)chia plots check
 4)エラー Plots があったら除外してから起動チェック
 5)問題なければエラー Plots を消す
これを延々と繰り返すのか…めんどくさい…

-- 2021/6/12 追記
ディスク毎にちまちまやっていったら、ほぼエラーはなかった。
実行時間はディスクの性能次第なところがあって、速ければ 70Plots でも 15分くらいで終わった。遅いやつは 30Plots で 30分くらい…

今後

何が原因で壊れてるのかわからないんだけど、
ディスク間でのファイルコピー時が一番可能性が高いと考えられる。
(エクスプローラーでぽいっとした場合、コピー/ムーブ後にファイルのチェックサムとかチェックしてくれてるわけではないので、ケーブルのノイズとかで信号が少し乱れると割と簡単にファイルも壊れる)
というか、それ以外だと保管状態でデータが壊れていくってことなので、つまりは HDD が壊れ始めてて、もっと派手なことになりそう。

ということは、一度ディスクが正しい Plot で全て埋まってしまえばそこはもうチェックする必要はないので、チェック対象は自然と新しいものだけになる。

Farm に入れる前にチェックを行うか、Farm には入れといてディスクがある程度埋まったらチェックをするようにするか。

安全性や Farming の効率性を考えたら Farm に入れる前のチェックということになるが、ちまちまそれをやるのはぶっちゃけめんどくさい

ので、うちでは Farm のディスクが埋まるときに一回チェックする、という方針で行くことにした。

壊れてて失われる可能性が上がったり、チェック時に一時的に Plot 数の低下が起きたりと、少しコストが高い方法だけど、それは許容することにする。

その代わり、ファイルのコピーはエクスプローラーではでなくちゃんと Fast Copy を使ってベリファイかけることにしよう。

ちなみに

自分の ppk や fpk な Plot じゃなくても、チェックはできる模様。
(歴史的経緯で、ちょっと変な鍵の Plot を併用しているもので…)

WARNING Plot C:\PLOTS\CHIA_HPOOL\U1\plot-k32-2021-05-00-26-11-a108cae76246096398e9ecb086503716de968c104bb3812dad8ddf47e7c77cee.plot has a pool public key that is not in the farmer's pool pk list.
2021-06-08T03:35:14.726 chia.plotting.check_plots : WARNING There are 4 plots with a farmer or pool public key that is not on this machine. The farmer private key must be in the keychain in order to farm them, use 'chia keys' to transfer keys. The pool public keys must be in the config.yaml

事前チェックの段階で「知らない人の Plot やねんな?」と言われるけど、チェック自体はしてくれるし、最後に「使いたかったら鍵を取り込んでな」と言ってくれる。優しい。

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