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 startpython 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 startpython 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

















ディスカッション
コメント一覧
まだ、コメントがありません