時代に追いつくMining Log

マイニングが流行ってから一足遅れて世界に飛び込んだ人の日々の記録と成長を記録していきます

RaspberryPiによる完全遠隔物理PC電源制御と強制再起動の実行

初めに

お久しぶりです。最近はchiaは価格もふわふわしながらも安定しており、マイニングの方も安定して稼働していたため特に書くことがありませんでした。今回、題名ではちょっと変な事をやろうとしていると思われますが、ただ単にRaspberryPiを用いてサーバーのフロントパネルコネクタのrebootピンを制御しようという話です、そんなにやってる事は難しい訳ではありません。
目的としては、メモリクラッシュはOSクラッシュなど再起動コマンドが通らなかったりsshがそもそも通らなくなってしまった時ように遠隔再起動を行えるようにしたいという事です。遠隔地にマイニングリグを設置する際や、自分が遠出している時にリグがクラッシュしてしまった際に対応出来るようにします。

必要機材

今回RaspberryPi以外に必要となる電子部品があります。それがリレーモジュールと言われる物です。

Amazon.co.jp: Arduino ARM PIC AVR DSP PLC 電子用 リレー モジュール シールド (5V 2チャンネル) : パソコン・周辺機器

自分が購入したものはこれです。ただ、買ったのがかなり前で現在は在庫切れとなってしまっていますので、同様の別商品でも同様のことが出来ます。注意する点としては、駆動用電圧が5Vの物と12Vの物がありますが、RaspberryPiからの電圧は12Vは出ていないため5Vの物を購入してください。また、2台制御しようとするならば上のリンクのように2つリレーモジュールがあるものが良いですが、1つでいいならば1つの物でも問題ありません。
他に必要な物はメスーメス、メスーオスジャンパーです。ラズパイとリレーを接続したり、リレーとマザーボードを接続したりします。これに関してはオスーオス、オスーメス、メスーメスのジャンパーがセットで売ってるのでまとめて買っておくと別の用途でも使えるので持っておくと便利です。fanコネクタの延長や裸のマザーボードの電源スイッチの延長などに使えます。

他にあった方が便利な物はブレッドボードなどです。これはあると回路の仮組みが出来るので、動作確認などに使えます。本番環境で用いると抜ける可能性があるので自分は仮組み専用にしています。

手順や回路作成

リレーモジュールはInput端子に電圧をかけることによって、Output側の導通スイッチを切り替える部品のことを指しています。つまり、ラズパイからプログラムでInputに3.3Vをかけることによってマザーボード側のreboot端子のショートを機械的に再現するということです。

まずは適当に回路を作っていきます。自分の買ったリレーモジュールの場合は、JD-VCC,VCCのジャンパーを外して、JD-VCCに5V、VCCに3.3V、GNDをGNDに接続します。今あるamazonの1個のリレーモジュールの場合はDC+に5V、DC-をGNDに落とします。
f:id:takaindex:20211122170347p:plain
こちらがラズパイのピン配置となっています。この場合、5Vが2番、3.3Vが1番、GNDが6番となっています。
そして、Input端子に自分はGPIO17を接続しました。画像でいう11番です。GPIOピンがコードから制御できるピンとなっています。コードではこのGPIOの番号を仕様して書いていきます。
あとはリレーモジュール側の端子をオスーメスピンを使ってマザーボードに繋げるようにします。基本的にリレーモジュール側の3つの端子の真ん中が共通部分、左右の片方がInputがない場合に通電している端子、もう片方がInputに電圧がかかっている時に通電する端子となります。ボードによって書き方は変わっていますが、NO1,NC1とあるような物はNOが通常時開放側、NCが通常時閉じています。心配な方は特に電圧をかけていない状態で通電チェックをしてみてください。今回は通常時開放されている端子を使います。コード制御で開放側を一定時間閉じてショートさせます。
実際に組んだ回路がこんな感じになりました。
f:id:takaindex:20211122171307j:plain
外周のケースは3Dプリンタで作りました。リレーモジュールの基盤裏が端子剥き出しだったので、サーバーケース内でのショートが怖かったのでまとめてケースを作りました。

コードの作成

今回はサクッとpythonで作っていきます。
ぺぺっと書いたコードが以下の感じです。

#!/usr/bin/env python
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GIPO.setup(17,GPIO.OUT)

GPIO.output(17,False)
time.sleep(0.7)
GPIO.output(17,True)
time.sleep(0.7)
GPIO.cleanup()

これをpower.pyとか適当にpy拡張子で保存してpython power.pyで走らせます。これで走らせてリレーモジュールがカチッと音がなれば完成です。一応通電チェックなどをしてください。開閉の挙動が逆っぽいイメージがしたら7,9行目のFalseとTrueを逆にしてみて試して見てください。自分は元々逆で書いていたのですが、挙動が逆っぽかったのでこっちにしました。
ここまでの動作チェックは別にoutput側を繋いでいなくても動作が出来るのでラズパイ単体で動作確認してください。そちらの方が安全なので。

サーバーに組み込み

ここまで出来たら、ラズパイ自体をサーバーケース内に格納します。あとはreboot端子を引っこ抜いてリレーモジュールから出ている端子を繋ぎます。ちなみに、ラズパイは完全に独立した状態で稼働させるのがおすすめです。起動用電力をサーバー側からとったり、ネットワークをサーバーを踏み台にしているとサーバーと一緒にラズパイも落ちるので、組み込んだとしても独立稼働するようにしておいた方がいいです。自分はケースのPCIスロットを1つ外してそこからLANケーブルと電源ケーブルをケース内に引いています。
組み込みが終わって蓋まで閉められたら一応動作確認として一度スクリプトを走らせておくと安心です。

応用編/複数台の制御を1台のラズパイで制御

もし複数台のリグの電源制御を行いたい場合、行いたいリグの台数分のリレーモジュールを購入します。もし2台の場合は上のリンクのような2連リレーモジュール、4台や8台用のリレーモジュールもあります。
基本的にはVCCやDCと書いてある端子はリレーモジュールや制御用チップに対する電源供給端子なので、そちら側は同様の接続を行います。複数あるInput端子に対してGPIOを複数挿していきます。例えばInput1にGPIO17,Input2にGPIO27,Input3にGPIO22などを挿していきます。コード側はスクリプトをファイルごとコピーして5,7,9行目の17を対応するGPIO番号に変更していきます。そして再起動したいGPIOが書いてあるスクリプトを走らせるようにすれば可能です。リレーモジュールは必要台数用意しないと、並列接続をした場合繋いであるリグが全部再起動します。

終わりに

自分は一時的に遠出をすることが増えてきて、その際に録画サーバーがOSごとクラッシュすることがあり、それ用に今回作成しました。ただ、これはマイニングリグ用にも使用出来るので今回まとめました。昔のethOSだとLinuxごとクラッシュすることが多く、その際にsshも入らない状態になっていたのでそれ用に買っていたのですが、それを今回流用しました。
本当はWake Up on Lanなどの機能がマザーボード側に備わっていると楽なのですが、古いマザーボードや通常使用を想定しているボードだと備わっていないことが多かったので、それ対策です。
ちなみに、知り合いの3Dプリンターの時に世話になった人にリレーモジュールを使用せずにGPIOのみを用いてreboot端子を制御することは出来ないのかと聞いたのですが、GPIO端子から電圧が入ってしまうため、ラズパイの回路が焼けるかマザーボード側の回路が焼けると言われました。素直にリレーモジュールを使いました。まあ、数百円程度の部品なのでやりたい人は買う価値あります。
今回はマイニングやサーバー運用に使える電子工作の話でした。これをきっかけにラズパイ電子工作に関してもっと知識を深めてもいいかなと思いました。

それではまた。

最近流行のRaptoreumマイニングに関する効率調査と効率的なCPU調査について

初めに

お久しぶりです。数ヶ月ほど空いてしまいました。理由としては、chiaの変化が全くないことですね。hddは買い足してトータルplotが233TiBほどまで行き、収益量は0.038~0.043xch/dayとなりました。ただ、xchの相場がかなり落ち込んでしまったため日本円での収益量は1,000円を切ってしまっている状態です。結構効率悪くなって来てしまっています。一時的に買い足し速度は減らしていく予定です。SASケーブルを1本買うだけでも1,400円ぐらいしてしまうため、諸々の費用が結構高いんですね。SAS expanderはまた10portぐらい余っているので、買い足しの余裕は40本ほどあります。hddの高騰に関してはxchの相場下落により適正価格に戻って来ました。これに関しては良かったと思います。
そして、ここ1週間ぐらいTwitter界隈にてちょっと話題になって来ているのがRaptoreum(RTM)という通貨のマイニングです。今回はこれについて書いていこうと思います。

Raptoreumとは何なのか

1週間ほど前に有名になった理由としては、0.6JPY/RTMから1.6JPY/RTMまで相場上昇が発生し、一時的に取引量に対してMinerが足りなくなり報酬量も上昇したという事にあるっぽいです。1週間経った現在の相場は1.1JPY/RTMとなっており、だいたい1円を少し超えるあたりでウロウロしています。このタイミングはxchの相場下落が発生した直後という事もあって、plotファイル作成を一時停止した層が流れ込みました。RaptoreumはCPUマイニングであり、一応公式は独自アルゴリズムの導入によりASIC耐性を高く作っていると言っています。この点も評価されているという事でしょう。

導入とマイニングに関して

正直これに関してはいつも通り既に仕事の早い方々が記事にまとめております。2日ほど前から日本語記事も増えて来ているので、現在なら導入にそれほど問題は発生しないと思います。
full Nodeの同期に関しては10/2時点では3~5時間ほどで完了しました。まだそれほどNode量が膨らんでいないので問題なく同期できると思います。walletに関しては若干不完全ですが日本語に対応しています。単語翻訳は出来ているが、注釈などの文章翻訳に関してちょっと読みづらい程度です。
マイニングに関してはcpuminerを使用します。一応自分はメインPCであるRyzen9 3900Xでも回していますが、この際cpuminer-zen2を使用しています。起動時にzlib.dllが導入されていないという事で起動しなかったでの、別途downloadしてcpuminerと同一ディレクトリに解答して実行しました。
マイニングに使用するソフトはcpuの型番ごとにコンパイルされているので、自分が使用しているCPUに対応するソフトを起動して実行してください。どのソフトを使用するかはreadme.txtに書いてあります。

また、初回起動時に使用cpuに最適なパラメーターを探すためにベンチマークが走ります。これに関しては1時間程度で終了するので、傍観してましょう。

CPUごとのベンチマークと出力ハッシュレートに関して

ここからが本題です。現状Twitterを見ているとplot機を流用している人が大半っぽいですが、実際に買い足す場合にどの辺の型番が最適なのかまではまだ記事がまとまっていませんでしたので今回比較をしていこうと思います。
ここで参照しているハッシュレート数値は基本的にTwitterで投稿してくれた人の数値を参考にしています。そこからそれぞれの型番のデータを調べて考察していくつもりです。
まずは各型番と性能・ハッシュレートをまとめた表を下に出します。

cpu H/s GHz boost GHz Core Thread L2キャッシュ L3キャッシュ
Ryzen9 3900X 3500 3.8 4.6 12 24 6 64
Ryzen5 5600X 850 3.7 4.6 6 12 3 32
i7-4770k 250 3.5 3.9 4 8 0 8
i9-9900X 1200 3.5 4.4 10 20 0 19.25
Ryzen5 4500U 560 2.3 4 6 6 3 8
Ryzen9 5950X 3400 3.4 4.9 16 32 8 64
Ryzen5 3600 850 3.6 4.2 6 12 3 32
i3-10105F 150 3.7 4.4 4 8 0 6
Ryzen7 3700X 1200 3.6 4.4 8 16 4 32
i7-8700 440 3.2 4.6 6 12 0 12
i5-8400 280 2.8 4 6 6 0 9
i7-10700 540 2.9 4.8 8 16 0 16
i5-10400 300 2.9 4.3 6 12 0 12
Ryzen7 5800X 1320 3.8 4.7 8 16 4 32
i7-9750h 400 2.6 4.5 6 12 0 12

とりあえず集まったデータはこんなところです。2時間ほどGhostRiderというアルゴリズムについて調べながらデータの相関性を考えたのですが、データにばらつきがありすぎて殆ど見つかりませんでした。

ただ明らかなのは、IntelのCPUよりもRyzenの方が圧倒的にいい数字が出ているという点です。また、Ryzenの中でも世代よりも3<5<7<9というその世代の中での性能の方が優先度が高いという点です。というか、Ryzen9 3900Xの数字が良すぎます。
IntelRyzenの差としては、L3キャッシュがどれだけ用意されているかというのが1番大きいように思えます。正直cpuminerのソースコードを読めばいいという話はありますが、あれに関しては絶対読める気がしないのでパスです。
また、実際にマイニングをしていて気になり調べたのですが、GhostRiderというアルゴリズムは変動ハッシュレートになっているらしいです。なので、ハッシュレートは20%ほどの振れ幅で変動しています。追加で、pool側に送信されているハッシュレートも変動しています。これのせいでデータにばらつきが出ている可能性が考えられます。
ということで、次はRyzenに関して価格と比較してコスパの計算をしていこうと思います。

コスパに関して

Ryzen9だと3900X,3950X,5900X,5950Xが型番として発売されています。価格はAmazonAMDストアで比較すると、順に65,000円、89,980円、76,800円、100,780円となっています。ちなみに、Ryzen7 3700Xに関しては38,000円ぐらいです。値段としては1/1.7ほどですが、ハッシュレートに関しては1/2.7ほどなので、これならRyzen9 3900Xを買った方が得になりそうです。また、現状Ryzen9 3900Xにおける報酬量は約500RTM/dayです。だいたい550円ほどなので、CPUの回収だけで約4ヶ月といった所です。明らかにchiaよりは回収率がいいです。
ただ、RTMマイニングが終わった後に通常使用する事が想定されるなら、この中なら好きな型番を買うのがいいと思います。RTMマイニングをして終わりとなると現状は3900Xが1番コスパが良くなっています。

RTMマイニングを率先してやるべきかどうか

これに関してですが、正直1台新規で用意してRTMマイニングのみを行うのはめちゃくちゃコスパが悪く思えます。余っているPCIスロットでGPUマイニングを並行する・SATA端子でchiaマイニングを並行するなど他の通貨のマイニングを並行して行うなどをしないと明らかに勿体無い感じがします。なので、どちらかというとGPUやHDDマイニングをしていて、1台追加しないといけないタイミングでCPUをいい物を買って追加でマイニングを行うという方向で台数を増やしていくといった印象です。
ただ、これも1RTM≒1JPYという相場だから言えることで、例えば3円台や5円台まで上昇し報酬量も今のままだとすると新規で組む価値が出てくる可能性はあります。回収に2ヶ月を切る可能性があります。
まだ日本のchia界隈で話題に上がってから1週間ほどしか経っていないため様子見をする期間ではありますが、とりあえず回してみて数百から数千RTMを手元のwalletに確保してみる価値はあります。
自分もメインPCを使っていないタイミングでRyzen9 3900Xを回し、他にplot機が休んでいるタイミングでXeon E5-2620 v4*2が回っている程度です。4kH/sほどの出力です。xchの足しになればいいなと思っている感じで回しています。
もし相場上昇などで回収率が上がり買い足しをした際は書いていこうと思います。

それではまた。

1Uサーバーの購入とbladebit chia plotterの使用方法

初めに

ここ最近いろいろな物を購入してました。すべてはbladebit chia plotterというplotterソフトを使用したいが為です。というのも、現在xeon e5 2620 v2を2基に128GiBRamを載せたPC1台でplotしています。速度は55min/plotなので24plot/dayほどですね。この速度が現状若干足りないんです。ある程度目標としているplot容量や収入量に届くまでに1か月以上かかってしまいそうです。そのため、plotファイルの作成量を増やそうと思いました。その時Twitterでbladebit chia plotterという新しいplotterが出たというツイートを見ました。

github.com

最初のRequirementsに書いてあるのですが、最低条件に416GiBのRAMが必要になります。つまりキリのいい数字にすると512GiBのRAMです。普通のPCでやろうとすると最低でも8スロットDDRに64GiBメモリをすべて刺す事になります。あと、マザーボード側の最大メモリ搭載可能量に引っかからないようにする必要があります。それらを考慮するとサーバー機を1台買って増設した方が安く簡単だという結論に至り今回購入しました。

1Uサーバーとメモリの購入

今回はヤフオクで購入しました。モデルは日立のHA8000/RS210-h HM2です。
f:id:takaindex:20210724025929j:plain
これにCPUがXeon e5 2697 v2が2基と64GB DDR3 RAMが乗っていて、フロントベイには2.5inch SASトレイとMegaRaid 9271-8i、拡張カードにはLANソケットの増設でトータル9portのRJ45ソケットが付いています。今回の用途には若干ポート系がオーバースペックなのですが、非常にバランスがいいスペックだったのでこれにしました。お値段なんと30,000+tax+送料で34,100円でした。お買い得。

到着して通電確認をしたのですが、ラックサーバーの既製品って滅茶苦茶ファンの音がうるさいですね。現在ベッドの横に配線組み換えも想定して置いてあるのですが、流石にうるさくて眠れません。

そして、今回はメモリが512GB必要です。しかしこのマザーボードは異なるメモリを刺すと認識してくれません。なので32GBメモリを追加で16本買い、全部差し替えます。それがこちら。

f:id:takaindex:20210724030013j:plain
DDR3 1600 32GB LRDIMMです。これの購入も流石にヤフオクでした。16本まとめて出品している人はいなかったので、8本ずつ2つの出品から購入しました。お値段なんと合わせて120,000円。本体の4倍の値段がしました。ちなみに、Amazonで新品で揃えようとすると200,000円します。
今回のサーバーは合わせて150,000円となりました。このサーバー、chiaが終わったら一体なにに使用するんだろう。

Ubuntu20.04のインストール

ここで問題が。HBAカードは使用した事があるのですが、Raidカードは今回が初めての使用です。普通にフロントベイに2.5inch ssdを刺したらインストール用に用意したUbuntussdを認識してくれません。
困ったと思って日立にある説明書を読みました。200ページありました。で、読んでみたらまずはRaidカードのWebBIOSに入ってRaidカードにドライブを読み込ませて仮想ボリュームを作成しろと言われました。どうやら1本のssdを単体で認識させるためにもRaid0を1本で組まないといけないらしいです。HBAならそんな面倒なことしなくてもよかったのに。これを解明するのに半日使いました。

仮想ドライブを作って認識させたらあとは通常のUbuntuのインストールと変わりませんでした。ちなみに、インストール時のオンボード出力の画面は4:3の出力だったので画面下が見切れました。設定項目の完了ボタンが一部見切れて押せませんでした。

インストールが終わって起動できたのがこちら。
f:id:takaindex:20210724030017j:plain
しっかり48threadと512GBRAMを認識してくれました。

bladebit chia plotterのインストールと設定

ここからが本題です。今回インストールしたOSはUbuntu20.04ですが、bladebitはどうやらAmazon LinuxCentOSをメインに作っているようで、Ubuntu20.04で稼働させるにはgithubに書いてある事以上にやる手順が多かったです。そこを今回ちょっと書いていこうと思います。
ちなみに、Amazon LinuxCentOSならそこまで手順は必要ないらしいです。

まずは必要なパッケージを色々インストールします。

sudo apt-get install -y libsodium-dev cmake g++ git build-essential libnuma-dev numactl

githubにはcmakeとnumactl-develのみが書かれていますが、実際にUbuntu20.04でインストールとコンパイルを通そうとした際はここら辺のものが全部必要でした。一応詳細はRedditgithubのIssueにあった気がします。

全部インストールをしたらgitでcloneします。

git clone --recursive https://github.com/harold-b/bladebit.git

cloneしたらblsをbuildします。

cd bladebit
./build-bls

その後、bladebitをコンパイルして実行可能ファイルを出力します。

make clean && make -j$(nproc --all)

これで実行可能なbladebitが作成されます。実行ファイルは/bladebit/.bin/release/bladebitのところに作成されてます。

bladebitの実行

とりあえず./bladebit -hでヘルプが出るので読んでみてください。引数としてはmadmaxとほぼ変わりませんが、最終出力のディレクトリの表記方法などがちょっと違います。

基本的な実行コマンドは

./bladebit -w -n * -t * -f * -c * /mnt/plot

こんな感じです。numaについてあまり詳しくないですが、-wの引数を用いるとbladebitが使用する416GiBメモリを切り離して確保した状態で作業が進むっぽいです。他の-n,-t,-f,-cはmadmaxなどと変わらない引数です。末尾に引数なしで保存先ディレクトリを指定します。この際、madmaxは階層指定なのでスラッシュが必要でしたが、bladebitはフォルダ指定なのでスラッシュが必要ありません。実行すると作成が始まります。

実行時の挙動と作成速度について

まずは挙動について。phase3にてどうやら最終ファイルの一部の書き込みを始めるらしいです。そのため、ディスクへの書き込み速度が遅いとphase3から一気に遅くなってしまいます。また、連続作成を行う際はメモリ416GiBだと2個目のphase1の途中で一時的にメモリ不足に陥ります。1個目の完成ファイルが全部最終ディレクトリに書き込み終えると再開する挙動になってます。もしかしたら完成ファイルの出力先はhddに直接書くのではなく、一時的にssdやnvmeなどに書き込み、作成が終わったらhddに別プロセスから動かすようにしたほうが早く処理が出来るかもしれません。もう少し試行錯誤してみます。

そして実際の作成速度です。
phase1:645.22
phase2:75.70
phase3:433.69
phase4:1.57
合わせて1156.18sec(19.26min)でした。ちなみに、全phase CPU使用率が100%に張り付いているため、I/OよりもCPUスペックがボトルネックになってこの時間になっているらしいです。AWSを用いたbladebitの動画を製作者がyoutubeに上げていますが、5~6minで1plotの作成を終えています。使用しているCPUが64Coreのため、そこの差が出ているのでしょう。
実際に連続作成を行うと、書き込みphaseのせいでphase1で一時的に作業がストップしてしまい、1plot作成に29~30minぐらいでした。まあそれでも、1日に48plotは作ってくれるので十分な結果です。
ちなみに、最初ネットワーク共有を行なっているファイルに対して書き込みを行なっていたのですが、1000Mbaseの回線だと書き込み速度が125Mb/sなので追いつきません。結局hddを直接刺してplotファイルで埋め終わったら手動で差し替えてます。今後これも改善していきたいと思ってます。

最後に

bladebit chia plotterはソフト性能的にはmadmaxと多分そんなに大差ないといった感想でした。ただ、全tempファイルをRAMに書き込むためソフト自体がメモリへの読み書きに特化させています。その点で少しソフトとしての性能差は出ていると思います。ただ、読み書き性能がメモリのみに変化しているため、CPUのボトルネックが顕著に出てくる印象です。生成速度の差はほとんどCPU性能に比例して早くなっていきます。まあでも、そもそも普通のマザーボードで512GBメモリを積むことはないのでなんとも言い難いですが。
今後はplot機が2台になったのでplotファイルの受け入れ口を作って自動で割り当てる方法やbladebitのplotファイルの作成高速化などをしていきたいと思っています。毎回hddを差し替えたりするのは面倒なんで、極力自動化して手動でやなけれないけないところは減らしたいので。
一応構想としては、bladebitの高速化は最終出力先をssdにして、それをネットワーク経由で別プロセスを用いてマイニング機に転送します。マイニング機は余っているnvmeを刺して2機からの受け入れ口としてそこのみをファイル共有化、そこから容量の余っているhddに自動で割り当てるようにしたいと思っています。
まだまだ弄れる場所がありそうなので楽しみです。

それではまた。

plotConverter公開に関して

7/22追記

chia公式Twitterの方でconverterの事について触れられました。どうやらRedditの方で話題になったようです。色々な方の確認の結果、どうやら内部データの方にも変換に要したbyte列が埋もれているようで、こちらの変換は正常に動作しないとのRedditの見解、そしてchia公式からは以下のようなツイートが見られました。


"like this mythical-but-impossible"という事で、impossibleと言われてしまいました。今回自分はこのツイートを受けてgithubの方を非公開に変えることにしました。自分の知識不足で申し訳ございません。今後また何かありましたらよろしくお願いします。

初めに

とうとう作成が完成してデバッグが完了しました。丸々数日このコードを書き続けていました。そこそこ辛かったです。

使用に関して

このプログラムが引き起こしたであろう如何なる問題に関しても当製作者は責任を負いません。また、chia公式から使用の中止を求められた際は非公開にする可能性があります。その点に注意して使用してください。また、このプログラムが生成したplotファイルがchiaに対してどのようなバグを引き起こすか未だに想定しきれていない点がありますので、いずれこの変換で生成されたportable plotを正常の方法で再生成する事をお勧めします。
使用するにおいてこの点に注意して使用して下さい。

ダウンロードリンク

GitHub - MicotoTisaki/plotConverter
こちらにソースコードを公開しました。使用方法に関してはreadme.mdに記載されています。一応この記事ではもう少し詳しく書こうと思います。

使用方法

この変換ソフトを使用すると変換前のOG plotは削除されます。もしOG plotをhpoolなどで使用している場合は気をつけてください。
このソフトを使用するにあたってpythom3.8以降とVisual C++ Runtimeのインストールが必要です。以下のサイトからダウンロード・インストールを行ってください。

python3.8
Download Python | Python.org

Visual C++ Runtime
The latest supported Visual C++ downloads

pythonにおいては3.8でテストを行いました。3.9での動作確認は行っていませんが多分動きます。

インストールが終了したらpythonにpathを通しておいてください。調べれば方法はいっぱい出てきます。環境変数を弄るやつです。


次にcmdを使って必要なパッケージをインストールします。

python -m pip install --upgrade pip
python -m pip install blspy

blspyはchiaがリリースしている暗号化パッケージです。plotファイルを生成するにあたって使用しています。

インストールが出来たらgithubからソースコードをダウンロードかcloneをしてください。サイト上部にあるCodeのプルダウンからDownload Zipを押すのが早いです。
ダウンロードしたら解答してconvert.pyを何かエディターで開きます。メモ帳でも構いません。
11,12行目の編集を行います。

11:new_puzzle_key = 'aaa'
12:new_farmer_key = 'bbb'

こうなっているため、ここのaaaとbbbを普段madmaxなどで使用しているアドレスに変えます。クオーテーションマークは残しておいてください。new_puzzle_keyは-cで使用している文字列、new_farmer_keyは-fで使用している文字列です。編集したら上書き保存をします。

次に、このconvert.pyをコピーして変換したいplotファイルが存在するフォルダにコピーします。配置としては以下のような感じです。
D:¥
|-aaa.plot
|-bbb.plot
|-ccc.plot
|-convert.py

この際、convert.pyを置いたドライブは空き容量102GiB(109GB)以上を確保しておいてください。
一時的にplotファイルを複製した後変換前ファイルを消すという処理を行っているため、空き容量が確保できないと処理が中断してしまいます。基本的に殆どの人が容量限界までplotファイルをおいている状態だと思いますので、1つだけplotファイルを削除する感じです。自分の場合は4TBで36plot入るため、35plot入っている状態でコードを走らせました。

そうしたら、cmdを起動してcdでconvert.pyが存在するディレクトリまで移動してコードを走らせます。

D:
python convert.py

今回はDドライブ内のplotファイルを変換する想定で書きましたがEドライブの場合は1行目をE:に変えてください。そうするとcmdが走り始めてそのドライブに存在するplotファイルを全て変換し始めます。変換時にOG plotではなくportable plotだと認識した場合は変換候補から外されてスキップされます。

変換されたplotファイルは/create/aaa.plotという感じでcreateフォルダの中に保存されていきます。

使用後に関して

plotファイルの名前は日時の部分が書かれていないファイルが生成されます。変換された物かどうか判別する際はこれを目印にしてください。また、chia公式クライアントがファイルを認識する所までは確認出来ましたが、pool側が容量を認識するか・通常通り当選処理がされるかどうかに関してはデバッグ時間の問題とpoolの不安定さの問題からデバッグが出来ていません。そのため、マシンスペックが余っている人は変換したファイルは消して通常の手順でplotファイルを再生成することをお勧めします。

変換に要するマシンスペック

この変換に関しては殆どCPUリソースとメモリリソースを使用しません。自分はマイニングをしているだけのathronと8GRAMで20min/plotの速度で変換が成功しました。なので、適当に転がっているPCでの変換が可能です。ただ、madmaxと併用して走らせるとメモリとCPU不足で処理が遅くなる可能性があるため、その点には注意してください。いくらメモリを食わないといっても、plotファイルのデータ領域のコピー処理で少なからずメモリを食います。

投げ銭用アドレス

XCH: xch1zzjdj9m984vv67cmjuntxd53hz2d884fsk964d50xc0svzjaavusqh5phm
ETH:0x8aA85e161285Fedd628D25d9aD6a02c2d965cDfB
ちょっとばかしでも投げ銭していただけると非常に作ったかいが出て今後の新しい支援ソフトの開発のモチベーションに変化します。


後書きという名の愚痴

今回のコードの作成において、丸数日pythonと睨めっこしてました。7割の時間はchia公式のgithubソースコードの解読とchiaposというplotファイル生成に関するC++で記載されたコードの解読です。残り3割はpythonでの実装とchiaコードの書き換え、デバッグに要しました。普通に今回はキツくて自分にプログラミングを中学生の頃に教えてくれた同期に聞きました。彼は今CTFやネットワークセキュリティ関係の事をやっています。時々プログラミングで詰まった際は助けてもらっています。毎回本当に感謝しています。

最近はpythonも触っていますが、元々はJavaの畑の住人でした。c++に関しては中学の時から怖くて読んでもいませんでした。必要になった時にちょっと読む程度で、基本はjavaに全部書き換えて読んでました。ただ、今回はProofOfSpaceというplotファイル生成の根本を行なっているコードがc++で記載されていました。流石にこれを読まないとplotファイルの書き換えは行えないため、根性で読みました。本当に辛かったです。ちなみに、読んだあとは必要な場所を全部pythonに書き換えました。c++は書けないから仕方ないね。どうやらc++の書き手に言わせればJavaの方が気が狂っているというらしいですが、自分としたらJavaの方が頭が硬いだけで素直だと思います。Kotlinは流石にやりすぎ。あれはふにゃふにゃしてる。あとxmlは書けない。

今回久しぶりにバイナリエディタも使いました。というのもplotファイルは基本byte列から生成されています。そのためバイナリデータとして読みに行かないと中身が解読できません。

技術的な話と覚え書的な事

今回のプログラムの動作は基本的にplotファイルのheader情報の再生成と書き換えです。データ領域は書き換えていません。
header情報はb'Proof of Space Plot'+plot_id+k+format_len+format_id+memo_len+memoで実装されています。
plot_idは(puzzle_hash,plot_public_key)を結合してSHA256を通した文字列から出来ており、format_idはb'v1.0'という4byte文字列が入っています。最後のmemoには(puzzle_hash,farmer_public_key,sk)という3つの変数が直接結合して入っています。なので、plotファイルからまずmemo領域を取得、そこからfarmer_public_keyとskを取得、skはplot作成の時に毎回乱数から生成されるbyte列のため、生成した後に今回変換するplotファイルで生成されたskで上書き、この上書きしたskとpuzzle_hashとplot_public_keyからplot_idという文字列を再生成し、plot_idとplot_memoのバイト列を再生成します。
再生成したらheader領域に変換後に入るbyte列を生成し、新しいplotファイルに書き込んでいきます。書き込むと、byte数が188byteから172byteに変化するのでその分を全部ずらしてデータ領域を書き込みます。正確にはpool_public_keyがpuzzle_hashに変化するためmemo領域が16byte短くなります。元のplotの先頭188byteを切ることはpythonの処理上出来ないため、新規でファイルを生成していきます。データ領域は200000byteごとに読み込んで新しいファイルにコピーしていきます。メモリ量的に101GiBを全部バッファに入れることはできないので、コピーをしたらメモリを解放して次の200000byteを押し込みます。
header情報の再生成にはそんなに時間はかかりません。基本的に時間がかかっているのはデータ領域の書き込みです。

また、デバッグに関してですが、chiaクライアントでFarmingになる所は確認出来ました。ただ、SpacePoolのPlotSpaceの増加に関してはchiaのpooling Protocolの点から不安定なためしっかりと確認ができませんでした。ただ、2時間ほどはSpaceが変換ファイルを含めたサイズになっていたため正常に動作しているとは思います。当選するかどうかに関しては無限に時間がかかってしまうため本当に無理です。

データ領域を生成しているコードを読んだのですが、plot_idとskを使用して基本的には生成しているらしいです。ただ、これに関してはc++で書かれているので本当に読めなかったです。byte列の操作をしているっぽいので本当に読めません。skはplotファイル生成時に使用されていたものを使っているのですが、plot_idはpuzzle_hashを使用して再生成しているため、もしかしたらheader領域とデータ領域で相違点が生じてしまっている可能性があります。ただ、データ領域まで再生成すると普通にplotファイルを生成しているのと変わらないためそれなら普通に作ります。この点からいずれ変換したplotファイルは再生成してくださいと注意を書いています。自分は一度全部OG plotは変換をかけますが、順次再生成を行っています。というか、自分のコードがchiaレベルの高度なことに対応出来ている自信がないため。

最後に

何かプログラムに関して不具合などがありましたらこの記事のコメントかTwitter@micomico_tisakiに連絡ください。極力対応します。よっぽど大きいバグがない限りはコード側は変更する予定はありませんが、致命的な部分が存在した場合は書き換えか公開中止を行います。

ということで、今回はこの辺で。ではまた。

追記項目

一応変換速度に関してですが、convert.pyの255,257,260行目に存在する200000という数字を上げると早くなる可能性があります。ただし、上げすぎるとpythonのメモリ割り当ての関係から実行時にOut of Memoryのエラーを吐く可能性があるため、走らせるPCのメモリー量とpythonに割り当てているメモリー量と相談しながら調整してください。
この数字はデータ領域を一回に読み書きする量を調整している場所です。ちなみに、一度自分は101GiB全てをメモリーに押し込もうとして怒られました。

chia-monitor公開

chia-monitorについて

chia公式のGUIにおいてplotファイルの管理や現在の空き容量、plotファイル数の合計などの把握が一覧では見ることが難しく監視がしずらいという点から作成をしました。GUIや表示項目に関してはhpoolのMiningToolを参考にしています。

f:id:takaindex:20210712050549p:plain

また、このツールは現在Windowsのみの対応となっていますが、今後Linuxに関しても対応していく予定です。ちょっとディレクトリ構造が違うせいで分岐が書けてなくて。

github

github.com
こちらにソースコードコンパイルしたexeの両方を公開しています。使用する際はmain.exeをダウンロードしたのち実行して頂ければ使用することが出来ます。また、ソースコードも上げているため、実際にcloneして使いやすいように改変して使用して頂いても構いません。その場合の環境構築などはサポートしていませんので、python3やpipのインストールなどは各自やっていただくことになります。

ツールの表示項目について

基本的にplot数の取得はchiaコマンドから取得できないため、ディレクトリに直接アクセスして.plotの拡張子を元にカウントしています。そのため、ダミーファイルなどでplot数などは簡単に偽装出来てしまいます。Twitterなどでのplot数自慢などを参考にする際はCapacityなどと比較しながら確認してください。また、このソフトでのplot数カウントに関してchia plots checkは走らせていません。そのためInvalid扱いになっているplotもカウントしてしまいます。実際にchia側で弾かれているかどうかはchia公式のツール側で確認してください。

上部ボタン類について

基本的に使用方法などはgithubのREADME.mdに書いてあるのですが、Add Dirはディレクトリの追加、Delete Dirは選択中のディレクトリをchiaの登録から削除する、reloadは画面更新です。
画面更新に関しては起動後120秒ごとに自動で行っていますが、手動更新を行いたい場合は使用してください。

このツールについて

ここからは作成に関するお話です。
chia公式のソフトがplotファイルが多くなってきたら滅茶苦茶見ずらいという事がきっかけで作り始めました。というか、hpoolのツールに慣れたらchiaが使いずらく見えてきてしまって。ただ、基本plotファイルは他のPCで作成するし、plotファイルを保管しているPCで確認することはplotファイル数と空き容量ぐらいだなと思い、出来るだけコンパクトに、かつ表示量を十分量確保でき、chiaのコマンドもショートカットとして走らせられるように作成しました。
なんか昔GPUマイニングの時も支援ツール系を作成した記憶があるのですが、あれはJavaだったので、今回はpythonを用いて作成しました。というのもchiaがpythonだったのでpythonで作成すれば他の人たちも簡単に使用できるかなといった気持ちでした。
実際作成して動作させてみるとそこそこ悪くない感じでした。ただAdd directory関係はどうやらGUIでのchiaとCUIでのchiaが別管理で動いているらしく、若干挙動が変です。まあでも、変な追加のされ方はしないので問題ないのですが。

基本的には追加削除は補助的な機能として実装しており、メインの機能はplotファイル数と空き容量が常時監視できるといった点です。特にばらばらの容量を使って複数台接続している人はこれを使用すると監視やplotファイルの登録先などが分かりやすいのではないでしょうか。自分は分りやすくなりました。

端っこに適当に走らせておくぐらいの画面サイズで納めたかったので、情報量もいい感じに削りました。まあ、hpoolの物と違ってscan関係の項目を表示しなくてよかったのでその分コンパクトになったといった感じです。


もし何か不具合や実装して欲しい機能などがあればここのコメントやTwitter(@micomico_tisaki)に連絡を頂ければ参考にします。なんなら「使いやすかった」から「クソソフトだ」まで色々な感想もお待ちしてます。改良していくのにあたってのモチベーションになりそうです。

それではこの辺で。ではまた。

chia1.2.0リリースとmadmaxによるpool対応plotファイルの作成方法

初めに

7/8 12時頃にchia1.2.0がmainnetでリリースされました。このバージョンで公式でのpool採掘が正式サポートされました。という事で、pool採掘用のplotファイルの作成についてちょっとまとめてみようと思います。一応自分はマイニングを行っている機械はWindows10で行っているので今回はWindowsでのpool設定とUbuntuでのmadmaxを用いたplotファイル作成についてです。

今回の手順の流れ

まずは公式chiaでpoolの指定。そしてpool puzzle hashを取得。その他必要な情報を取得。最新版madmaxのインストール。最後にmadmaxを走らせます。

まずは公式chiaでpoolを指定する

とりあえず公式ツールでNodeの同期は終わらせてください。そうしないとmojoを取得してもwalletに送られたのが検知できずにpool変更のためのmojoの支払いが出来ません。最近だとトランザクションが54万ちょいまで行ってしまっているのでフル同期に2~3日ほどかかりました。

同期させたら左のタブのPoolを選択します。そうするとJOIN A POOLというボタンが出ているのでこいつを押すとFaucetからXCHを取得するというボタンが出てくるのでとりあえずそれを貰います。
f:id:takaindex:20210709011813p:plain
飛ばされたサイトに自分のwalletのアドレスを入れると若干量のXCHが降ってきます。ちょうど100mojoですね。このうち1mojoを使用してpool変更を行います。この時Nodeの同期が終わってないとmojoの受け取りが反映されないためpoolの指定が出来ません。

受け取り自体はかかっても数分で反映されるので待ちましょう。受け取れればこのような画面になるので、登録したいpoolのアドレスをconnect to poolを選択して打ち込みます。一応Self poolを選択すると今までと同じようにソロ採掘が可能になります。今回はちょっと巷で有名になってるSpacePoolという所を選択してみました。
blog.pool.space
SpacePoolならアドレスはここのサイトのちょっと下の方にあるhttps://asia1.pool.spaceというやつですね。これを打ち込むとVerify Pool Detailsという項目が表示されpoolの詳細を確認することが出来ます。一応これで接続しようとしているpoolと一緒かどうか確認してください。
f:id:takaindex:20210709013110p:plain
合っていればCREATEボタンを押せばpoolの登録が出来ます。

一応CLIでのpool登録も可能らしいですが、自分はそれが面倒なので今回GUIでの登録をしました。登録が終わるとPoolのタブが以下のように変化します。
f:id:takaindex:20210709013343p:plain
これで一応pool登録が出来たので、ここからはmadmaxを走らせるために必要になる引数を集めていきます。

plotファイル作成に必要な文字列の収集

今までmadmaxを走らせるために必要だった引数は-p (poolkey arg)と-f (farmerkey arg)の2つでした。それが今回pool用に-pが-cというPool Contract Addressというものに変化しています。それを取得します。

これに関してはGUIからもCLIからも収集が容易なため両方を紹介します。
まずはGUIから。
Poolタブを選択して、自分の選択したPoolの名前の右にある?マークにマウスオーバーすると確認することが出来ます。
f:id:takaindex:20210709014143p:plain
丁度ここですね。これがpool constract addressになります。こいつをどこかにコピーしておいてください。

CLIでの場合はこちら。
Windowsの場合はcmdでまずは階層を移動していきます。

cd C:\Users\<user>\AppData\Local\chia-blockchain\app-1.2.0\resources\app.asar.unpacked\daemon

userの所はユーザー名に編集してください。ここで以下のコマンドを打ちます。

.\chia plotnft show

これを打つとP2 singleton addressという項目があります。これをコピーします。このコマンドではその他poolに関する情報を取得することが出来ます。

その他必要なfarmerkeyは以前まで使っていたものと同じなため今回は省略します。一応取得したい場合は chia keys showで確認できます。

最新版madmaxのインストールを行い走らせる

一応以前のバージョンのmadmaxを保存したい場合は

mv chia-plotter chia-plotter-OG

などのコマンドでmadmaxを移動させておくと使えます。必要ないという場合はバージョンを上書きします。

cd chia-plotter
git checkout master
git pull
git submodule update --init

これで最新バージョンにアップデートできます。masterをpullしてsubmoduleをアップデートするらしいです。
もしchia-plotterを移動させて別途新しいバージョンを保存したい場合は以下のようにコマンドを打って行ってください。

git clone https://github.com/madMAx43v3r/chia-plotter.git
cd chia-plotter
git submodule update --init
./make_devel.sh

要は新規でmadmaxをインストールする手順と同じですね。これで一応2バージョンのmadmaxの共存が可能です。

そうしたらmadmaxを走らせます。一応--helpで確認をすると-p -c -fの項目が追加されています。多分-fが絶対必要な引数になっており、-cと-fはどちらかが入力されてれば大丈夫だと思います。-cがある場合はpool用plotファイルを作成し、-fが入力されている場合は今までのOG plotといわれるplotファイルの作成が始まるようになっているっぽいです。

./chia-plotter/build/chia_plot -n 1 -r 32 -u 256 -t /media/xeonplotter/ssdRaid/ -2 /media/xeonplotter/ram/ -d /media/plot11/spacepool/ -f **** -c ****

自分の場合はこんな感じで走らせています。-fと-cは自分の文字列を入れてください。-t,-2,-dの辺りは今までの挙動と変わっていません。

chia公式ツールにplotファイルを読み込ませる

madmaxでplotファイルを作り終わったら公式ツールの方でplotファイルを読み込ませます。Plotsタブの中にあるAdd Plot Directoryというボタンを押してplotファイルのあるフォルダを選択して登録します。これでplotファイルを読み込んでファーミングが開始されます。一応Poolタブの中からちゃんとplotファイルが増えているかの確認もできますので一応してみてください。

という事で最後に

現状hpoolが公式pool用のアドレスを公開していないためとりあえずspacepoolでの実装となりました。ただ、見てみると当選間隔が15時間ほどっぽいので良くて1日2回ほどの払い出しになりそうですね。

ここから技術的な方面に。poolのロジック的にはnftPlotがpoolとplotファイルにおける払い出し先(farmer address)を紐付けるものとなっており、こいつの中のpoolを書き換えて承認させることによってpoolの切り替えを行っているっぽいです。また、その他のplotファイルの中身においては今までのOG plotとそんなに大差ないっぽいかと思っています。これは正直plotファイル作成用のpythonを読んでみないと分からないですが。
また、hpoolは現状今までのOG plotを用いたMinerToolを採用しています。そのため、現状新しいplotファイルに入れ替えるとhpoolのツールで読み込めない可能性があります。そこは現在確認のためにplotファイルを作成してみています。
方法としては、spacepoolのリンクからcontract addressを取得し、それを用いてplotファイルの作成。作成したplotファイルをhpoolのツールに読み込ませてhpool上で容量が上昇するかどうかという段取りです。もし上昇すれば、plotファイルをspacepoolで量産し、hpoolのpoolAddressが公開されたタイミングで公式ツールのpoolをhpoolに変更して新しいplotファイルは全部そちらに読み込ませる、今までのOG plotに関しては順番に削除していきplotファイルを作り直していくという段取りです。そうすれば一応hpoolにすべてのplotファイルを集結させることが出来そうです。これに関してはテストが出来次第追記しようと思います。

とりあえずmadmaxと公式poolの挙動についてまとめました。ここからほとんどの人がplotファイルの再作成を行っていくと思うので、参考になれば幸いです。それではまた。

chia公式poolリリース前夜祭(の予定)での考察

初めに

chia公式から異常がなければ7/5に公式poolがリリースされるという記事とツイートがありました。

一応3日前のツイートですね。どうやらtestnetでphase2に突入したらしいです。また、portable plotsもtestnetで公開されているらしいですね。自分はtestnetに参加していないので分かりませんが。また、testnetで作成したportable plotsの25%は作り直さないと公式リリース時には使用できないらしいです。他にも、もしこのphaseでテストが終わらなかった場合も作り直しは確定らしいです。使用できないplotファイルの判別も面倒なので公式リリースが来てから自分は作ろうと思っています。

ということで、ここからが本題です。

poolって今どうなってるの

冷静になってgithubやchia-networkのサイトを見返してみました。そうしたら、今回の公式poolに関して、chiaはpool protocolのリリースしか宣言していません。公式でpool対応のシステムを実装するからサービス提供したい人はこれを使ってねってことでしょう。
そして、現在testnetでリリースされている事もあり、そこそこのサイトがこれを使用してpoolの実装を開始しています。
f:id:takaindex:20210704112434j:plain
こちらのサイトは現在chiaで使用できるpoolとnetspaceを表示してくれているサイトです。hpoolのnetspaceが異常に多いのは、数ヶ月ほどhpoolのみがchia用のpoolサービスを提供していたからだと思います。1つだけ単位がEiBになってるレベルです。それ以下は基本はtestnetからリリースを再開したサイトや、未だサービスを提供していないサイトが多いです。

ここで1つ気になるpoolサイトがあります。画像1番下にギリギリ入っているhddminingpool.jpというサイトです。
仮想通貨Chiaのマイニングプール
こちらのサイトですが、運営元が日本となっています。whoamiで検索をかけたところ、ドメイン自体は2021/5/24に取得されたようです。ちなみに、取得元のサイトはお名前.comらしいです。この手のpool運営を日本がやるのは珍しいのでちょっと興味があります。

ということで、これらを踏まえてちょっと考察もしていこうと思います。

どこを選べばいいのっていう話

今回のchiaのpoolにおけるロジックとしては
・pool参加者は皆システム上はchia-blockchainを採掘する
・報酬発生時、報酬2XCHの内1/8の0.25XCHは採掘者に配分される
・残りの1.75XCHはpoolに対して支払われ、この1.75XCHがpool内のパワーに応じて配分される
となっています。つまり、掘り当てた張本人は報酬量は若干増えます。ただ、個人で掘っているのに比べたら報酬量は落ちます。しかし、同一poolに存在しているマイナーが掘り当てた場合も若干の報酬が割り当てられます。

ここでちょっと計算をしてみました。具体的には、自分の保持しているplot量が一緒の場合、netspace全体保有率は高いが自分の保有割合は低いpoolに居る事と、netspace全体保有率は低いが自分の保有割合は高いpoolどちらにいた方が収益が大きくなるかという事です。まあ、計算結果から言ってしまうとどっちにいても1block進んだ際のトータル収益は変わりません。違ったら違ったでマイナーの流動に偏りが発生してしまうので問題なのですが、自分としては違わないのも問題と思います。
計算上なぜ差が発生しないかというと、自分の保有割合が低いところでは自分自身が掘り当てる確率が低く0.25XCHが降ってくる可能性は低いですが1.75XCHの割り当てをもらえる可能性が高く、逆では0.25XCHを貰える可能性は高いですが、そもそも掘り当てられる可能性が低く報酬が降ってくる頻度が低くなります。
そしてそもそも、pool使用者の思想としては、一発掘り当てるのが収益として不安定だからpoolとして運営して収益を安定させようという思想にいます。つまり、poolでのマイナーは割り当てが降ってくる可能性は低いが1発は大きいというpoolにあまり人が流れません。というか、自分ならそこに行きません。そんな不安定さはpoolには求めていないので。
つまり、何が起こるかというと、全体保有率が高いpoolにマイナーが流れ込むという流れが発生すると思います。まあGPUマイニングでもよく起こっていた全体ハッシュパワーが低いpoolには一向に人が集まらず、全体ハッシュパワーが高いpoolはハッシュパワーが常に増えていく傾向にあるのと同じ状態です。

そして、現状のchiaのpoolはhpoolが2番目のhuobipoolに20倍ほど差をつけています。一部portable plotの実装でリセットされるnetspaceもあると思いますが、果たしてこの差が埋まるのでしょうか。hpoolがこのハッシュパワーを手放すようなシステム変更をするとは思えません。なんなら、OGplotもchia1.2のリリース後も使用は可能です。つまり、hpoolはpoolマイニングのツールにOG plotもportable plotも両方対応させる可能性の方が高いです。そうなれば、差は縮まると思えません。唯一現状のhpoolを抜ける可能性があるのは、chia公式もpool運営を行い、ブランド力でhpoolから人を移動させるぐらいしか考えられません。ただ、記事を探してもchia公式はpool protocolをリリースするだけでpool運営を行うという記事は見かけません。結局chiaのpoolはhpool一強になる可能性が高いです。


ここまでを総括すると
・分配ロジック上、poolはどこを選んでも配当期待値は変わらない
・poolが保有するパワーが低い方が1発で入ってくる量は増えるが頻度が下がる
・poolが保有するパワーが高い方が安定して入ってくるが1発の量は減る
・hpool一強は公式pool protocolリリース後も変わらない可能性が高い
という感じです。

もし、ギャンブルとしてchia miningを行っている人が直堀りは確率が低すぎてやりたくないけど1発当てたいという人がいたら、トータル1PiBぐらいのpoolに400TiBぐらい持ち込んでpoolマイニングを行えば、保有率も3割ぐらいになってちょうどいい感じに気持ちよくなれると思います。自分は安定思考なので絶対やらないですが。

じゃあ、結局どこのpoolを選べばいいのって話ですが、配当頻度の低さとpool運営元の安全性との兼ね合いで選ぶのが1番だと思います。国内運営が安心できて、現状唯一の日本chia poolの運営を応援したい!というならhddminingool.jpに参加すればいいし、運営元は気にしないから安定して毎日incomeの記録を見たいという人はhpoolなどの中国運営の大手poolに参加すればいいと思います。ちなみに、この感じだと自分はchia公式がpool運営を行わない場合はhpoolに残る可能性が高そうです。ちょっとだけテストでhddminingpool.jpに入れる可能性はありますが。ただメイン機はhpoolに残しそうです。
というか、半分はOG plotを全部portable plotに作成し直すのにmadMAxほどの速度がないとやってられないという気持ちがあります。すでにplot数は300を超えたので、これ全部chia公式の速度で作り直したら1ヶ月以上はかかりそうなので。madMAxなら一応2週間ほどで作り直せますが、最低でも1plot/hourは出て貰わないと。

最後に

まあ、この考察は結局7/5にリリース予定と言っている前日に書いている記事なので現状方針をどのようにしようかと考えている状態です。実際にリリースされたらもう少し変わるかもしれません。ただ、自分の中での整理も兼ねて書いています。今後どうしようと思っている人の参考になれば良いと思います。

それではまた。