![見出し画像](https://assets.st-note.com/production/uploads/images/54112383/rectangle_large_type_2_6731b785c854ce8fd389da91cdb52476.png?width=1200)
CHIA の Plot を確認する
(この記事は 2021年6月 くらいの情報です)
Farm 内の Plot の数の一覧をみてて、どうも腑に落ちないことが度々あった。
同じ容量の(というか同じモデルの)ディスクを使っているのに、ディスク内で認識されている Plot の数がずれているのである。
ファイルサイズがきっちり全部同じではないみたいなので、偶然1ファイル分溢れる感じでになることもあるかな、と思ってたけど、数十ファイルで片方に「少しファイルサイズの大きな」ものばかり偏るとは考えにくい。
でもまぁ、気になるという程度なので放置していたんだけど、先ほど見てみたら。
いや、2ファイル差はさすがにおかしい…
というか、このディスク 4TB なはずなので、実効で 3.6~3.7TIB くらいあって、36Plots くらいは入るはず。
なのに 31?隣も 33?
ファイル自体は 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 を調整して全チェックかけてみた。
いやもう、出るわ出るわ。
と思ったけど、どうも 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 やねんな?」と言われるけど、チェック自体はしてくれるし、最後に「使いたかったら鍵を取り込んでな」と言ってくれる。優しい。