MacOSとubuntuでSwar Chia Plot Managerを導入する
昨日書いたSwar Chia Plot ManagerのネタはWindows10向けでした。
うちにはMacBookPro2016とubuntuがPlotterとして働いているのでこいつらにも入れたので備忘録として残します。
macOS Catalina (10.15.7)
MacBookPro2016はこわれかけで放置されていたので、OSも特に上げていませんが、多分最新のBigSurでも同じだと思います。たぶん。
Swar-Chia-Plot-Managerからファイルをダウンロードし、userのホームディレクトリに入れておきました。
python.orgからMacOS用をダウンロードしてきました。2つあったけど、どっちでも良いと思う。アップルシリコンネイティブ対応してる方を選んでみた。
Windowsと違って環境変数PATHうんぬんの選択肢もなく、普通にインストールして普通に終わりました。
ここまでやってリモートデスクトップによる設定が非常にめんどくさくなり、SSHでの操作に切り替えます。やり方は「システム環境設定」→「共有」→「リモートログイン」をオンにすればOK
続きはTeraTermでやります。
カレントディレクトリ移動
cd ~/Swar-Chia-Plot-Manager-main
仮想環境の構築。pythonコマンドは通りませんでした。
python3 -m venv venv
有効にする。公式のExample Mac OSのところはちょっと意味不明。
source ./venv/bin/activate
諸々インストール
pip install -r requirements.txt
コンフィグの作成
cp config.yaml.default config.yaml
コンフィグの修正
vi config.yaml
うちのMacBookProは1台のHDDでのみPlottingしています。おまけみたいなもんですが、変更した部分を以下に乗せておきます。
chia_location: /Applications/Chia.app/Contents/Resources/app.asar.unpacked/daemon/chia log: folder_path: /Users/hyperbanana/ChiaLogs global: max_concurrent: 1 max_for_phase_1: 1 minimum_minutes_between_jobs: 0 jobs: - name: HUS724020ALE640 max_plots: 999 farmer_public_key: b6dd7578d10905d(中略)5ee370e4698b0e6582bf pool_public_key: 852d2d1c7524fb356(中略)615a59b09249972e8b29 temporary_directory: /Volumes/HUS724020ALE640/chiaTemp temporary2_directory: destination_directory: /Volumes/home/ChiaPlotsMac size: 32 bitfield: true threads: 4 buckets: 128 memory_buffer: 4000 max_concurrent: 1 max_concurrent_with_start_early: 1 initial_delay_minutes: 0 stagger_minutes: 60 max_for_phase_1: 2 concurrency_start_early_phase: 4 concurrency_start_early_phase_delay: 0 temporary2_destination_sync: false exclude_final_directory: true skip_full_destinations: false unix_process_priority: 10 enable_cpu_affinity: false cpu_affinity: [ 0, 1, 2, 3, 4, 5 ]
ポイントはfarmer_public_key:
とpool_public_key:
を明示的に記載していること。これをしないとkeychainのpasswordが無いとかってエラーがでてplotting始まりませんでした。
また、宛先がネットワークドライブでもskip_full_destinations: true
にしても多分オッケーでした。ダメなのはWindowsだけだった。
ちゃんと保存先のディレクトリもviewに表示されています。
あとはWindowsの時と同じように
python manager.py start
python manager.py view
でOK
ubuntu 20.04 LTS
めんどくさいのでこいつも最初からSSHで作業します。
ubuntuには最初からpython3が入っているようで、python3 -Vコマンドで調べたところPython 3.8.5がインストールされていました。Swar Chia Plot ManagerはPython 3.7以上あればオッケーなのでそのまま行きます。
まずはSwar Chia Plot Managerをダウンロードしましょう。git cloneコマンドで一発です。
git clone https://github.com/swar/Swar-Chia-Plot-Manager
venvコマンドだけはpython3コマンドじゃないとダメです。
python3 -m venv venv
. ./venv/bin/activate
以降はMacOSと一緒です。諸々インストール
pip install -r requirements.txt
コンフィグの作成
cp config.yaml.default config.yaml
コンフィグの修正
vi config.yaml
ubuntuはviの挙動がおかしいのでユーザーホームディレクトリに.vimrcファイルを作って下記3行ほど記述しておきます。
set nocompatible set number set backspace=indent,eol,start
configはこんな感じになりました。HDD2台をつなげて2並列plottingしています。
chia_location: /home/hyperbanana/chia-blockchain/venv/bin/chia log: folder_path: /home/hyperbanana/ChiaLogs global: max_concurrent: 2 max_for_phase_1: 2 minimum_minutes_between_jobs: 5 jobs: - name: ST2000NM0011_300 max_plots: 999 farmer_public_key: pool_public_key: temporary_directory: /media/hyperbanana/ST2000NM0011_300/chiaTemp temporary2_directory: destination_directory: /home/hyperbanana/nas/ChiaPlotsUbuntu size: 32 bitfield: true threads: 8 buckets: 128 memory_buffer: 3390 max_concurrent: 1 max_concurrent_with_start_early: 1 initial_delay_minutes: 0 stagger_minutes: 60 max_for_phase_1: 2 concurrency_start_early_phase: 4 concurrency_start_early_phase_delay: 0 temporary2_destination_sync: false exclude_final_directory: ture skip_full_destinations: true unix_process_priority: 10 enable_cpu_affinity: false cpu_affinity: [ 0, 1, 2, 3, 4, 5 ] - name: ST2000NM0011_600 max_plots: 999 farmer_public_key: pool_public_key: temporary_directory: /media/hyperbanana/ST2000NM0011_600/chiaTemp temporary2_directory: destination_directory: /home/hyperbanana/nas/ChiaPlotsUbuntu size: 32 bitfield: true threads: 8 buckets: 128 memory_buffer: 3390 max_concurrent: 1 max_concurrent_with_start_early: 1 initial_delay_minutes: 0 stagger_minutes: 60 max_for_phase_1: 2 concurrency_start_early_phase: 4 concurrency_start_early_phase_delay: 0 temporary2_destination_sync: false exclude_final_directory: ture skip_full_destinations: true unix_process_priority: 10 enable_cpu_affinity: false cpu_affinity: [ 0, 1, 2, 3, 4, 5 ]
あとはいつもどおり
python manager.py start
python manager.py view
でOK
所感
ubuntu も macOSも、SSH接続でviewを見てても次のジョブがちゃんと始まってくれます!!!!Windows10はそれが出来ません!!!
こうやってちっさい画面並べとくだけでいいし。多分Linux版が完全版なんでしょうね。Windows10はネットワークドライブまわりにバグがあったり、SSH接続で運用ができなかったりと問題がちらほら。もう全部ubuntuにしたい!!!!!
(おまけ)ubuntuでXFSにフォーマットしてみる
LinuxはEXT4よりもXFSフォーマットの方がPlottingが早いという話をちらほら聞いていますが、ubuntuはデフォルトではXFSにフォーマット出来ませんので後回しにしていました。せかっくなのでSwar入れたついでにやってみました。
まず、XFS関連のパッケージをインストール。ST2000NM0011_600というHDDを一旦アンマウントし、XFSでフォーマット、EXT4でマウントしていた時と同じ場所にマウントする。ついでにオーナーとグループ権限をrootから一般ユーザーに書き換えして終わり。
sudo apt update sudo apt install xfsprogs sudo umount /dev/sdb1 sudo mkfs.xfs -f /dev/sdb1 sudo mkdir /media/hyperbanana/ST2000NM0011_600 sudo mount -t xfs /dev/sdb1 /media/hyperbanana/ST2000NM0011_600 sudo chown hyperbanana:hyperbanana /media/hyperbanana/ST2000NM0011_600
config.yamlの設定をそのまま維持したかったのでこうしました。もう片方のディスクST2000NM0011_300はEXT4のままにして比べてみようと思います。
(翌朝追記)
xfsにしたらめちゃくちゃ早くなりました。
HDD | FORMAT | TIME |
---|---|---|
ST20000NM0011 | EXT4 | 10:48:19 (38898.617sec) |
ST20000NM0011 | XFS | 9:34:13 (34452.989sec) |
これはいい。EXT4のままにしていたHDDもXFSにしちゃおう。
対象のHDDのデバイス番号を取得する
cat /etc/mtab
どうやら/dev/sdc1らしい。
まずはアンマウントから。
sudo umount /dev/sdc1
したら、busyとかいわれた。
umount: /media/hyperbanana/ST2000NM0011_300: target is busy.
なんのプロセスが走っているのか確認。
fuser -mv /media/hyperbanana/ST2000NM0011_300/
/media/hyperbanana/ST2000NM0011_300: root kernel mount /media/hyperbanana/ST2000NM0011_300 hyperbanana 13223 ..c.. bash
殺す。
kill 13223
あとは同じようにやっておきました。
sudo umount /dev/sdc1 sudo mkfs.xfs -f /dev/sdc1 sudo mkdir /media/hyperbanana/ST2000NM0011_300 sudo mount -t xfs /dev/sdc1 /media/hyperbanana/ST2000NM0011_300 sudo chown hyperbanana:hyperbanana /media/hyperbanana/ST2000NM0011_300
今日のチア農場
いつもの。
plot1041→1072(+31)
0.77185705 XCH (+0.05377488 XCH)
約$594
ディスカッション
コメント一覧
まだ、コメントがありません