
БАТНИК ДЛЯ МАЙНИНГА CHIA, НАСТРОЙКА BAT ФАЙЛА ЧЕРЕЗ POWERSHELL
Как запустить батники и плотинг не через GUI интерфейс Chia Blockchain, а с помощью Power Shell?
Как избежать бана во время плотинга для пулов не через Powershell?
- Режим харвестера.
- Плотинг через батника.
Мы рассмотрим второй вариант. Для создания батника придут на помощь команды c cайта Github https://github.com/Chia-Network/chia-blockchain/wiki/CLI-Commands-Reference.
Перейдя по ссылки вы сможете найти описание абсолютно каждой команды, каждого параметра в вашем батнике.
Приступим к созданию батника.
Открываем редактор команд Powershell (левая кнопка по меню “Пуск” — вводим текст PowerShell — открываем Windows PowerShell ISE).
Нажимаем кнопку “Показать область сценариев сверху”. Должно появится окошко Безымянный1.ps1. Если этого не произошло поочередно нажмите клавиши “Показать область сценариев сверху” и “Показать область сценариев справа”.

Вводим первую команду по присвоению уникального имени Chia.exe исполняемому файлу. Именно этот файл будет запускать все батники в системе, чтобы не приходилось обращаться по директории нахождения этого файла. Вставляем следующий текст:
$addToProfile = '
$chiapath = (get-item "$env:LOCALAPPDATA\Chia-Blockchain\app-*\resources\app.asar.unpacked\daemon\").fullname
$env:Path = $env:Path + "; $chiapath"
'
Add-Content -Path $profile.CurrentUserAllHosts -Value $addToProfile
Выполнение любой команды из данного окна происходит следующим образом: выделяются необходимые строки и нажимается кнопка “Выполнить выделенный фрагмент” или F8 на клавиатуре.

Происходит присвоение имени в системе.
Проверку можно произвести в PowerShell (меню “Пуск” правой кнопкой — PowerShell). При введении в Powershell команды
chia.exe -h
подтягивается исполняемый файл с указанием пути его расположения.
Команды.
Для создания батника используется команда: chia plots create
Для демонстрации ваших ключей: chia keys show
Параметры
-k [size]: размер плота
-n [number of plots]: количество плотов, которое будет создаваться данной задачей.
-b [memory buffer size MiB]: количество выделяемой оперативной памяти
-f [farmer pk]: «Farmer Public Key» Используйте эту команду, если вы хотите создать плоты на других машинах, для которых вы не хотите предоставлять полный доступ к учетной записи chia.
-p [pool pk]: «Pool Public Key» Используйте эго, если вы хотите создать плоты на других машинах, для которых вы не хотите предоставлять полный доступ к учетной записи chia.
-a [fingerprint]: «Fingerprint» Используйте его, если хотите выбрать один ключ из нескольких ваших кошельков.Чтобы найти ключит Chia, используйте следующую команду: chia keys show в Power Shell (запускаем от имени администратора).
-t [tmp dir]: временная папка
-2 [tmp dir 2]: временная папка 2. Здесь происходит этап 3 (сжатие) и этап 4 (контрольные точки).
-d [final dir]: конечная директория.
-r [number of threads]: количество выделяемых от процессора потоков.
-u [number of buckets]: количество корзин.
-e [bitfield plotting]: отключение битового поля
Создание скрипта для плотинга в Windows PowerShell ISE
Открываем Windows PowerShell ISE;
Вставляем следующую команду:
param(
$parallel = 4,
$delay = 5400
)
for ($i = 1; $i -le $parallel;$i++){
$date = get-date -format dd-mm-yyyy-hh-mm
Start-Process -FilePath powershell.exe -ArgumentList "chia.exe plots create -n 1 -b 3390 -r 2 -t F:\ -d G:\ | Tee-Object -FilePath G:\Logs\$($date)_$($i).log"
Start-Sleep -Seconds $delay
}
Примечание: (что из себя представляет команда)
$parallel и $delay — две переменных. parallel — количество запусков плотинга.
$delay = 5400 — задержка перед запуском плотинга в данном случае 90 минут.
Запуск плотинга происходит через команду chia.exe plots create, где
-n 1 — количество плотов (в нашем случае 1);
-b 3390 -выделяемое количество оперативной памяти;
-r 2 — количество потоков процессора;
-t F:- временная директория;
-d G:\ — конечная директория;
G:\Logs\$($date)$($i).log» — место, где будут храниться log файлы. Эти файлы при создании будут именоваться следующим образом “дата создания и последовательный номер запущенных процессов плотинга”.
Start-Sleep -Seconds $delay — задержка и запуск снова до 4-х раз.
Корректируйте значение $parallel и $delay, ориентируясь на ваш ssd и время, которые у вас уходит на первую фазу. О том, как вычислить время, которое у вас уходит на первую фазу можно узнать, посмотрев данное видео: https://www.youtube.com/watch?v=j3FSyXKmLAQ
Сохраняем файл, называем так, как вам удобно. В моем случае название «Plotting».
Как запустить этот файл?
Для запуска одним файлом, никак не оптимизируя пространство на жестком диске, необходимо создать два подобных файла. Один будет запускаться с $delay 5400, второй с $delay — x2. Таким образом, ssd будет использоваться по максимуму. Если у вас несколько ssd, то создайте под каждый ssd отдельный исполняемый файл и меняете пути: постоянный путь и временной путь, а также указываете иную папку для хранения логов по второму ssd.
Варианты запуска данного скрипта.
Переходим в папку расположения скрипта и создаем текстовый документ со следующим текстом:
start powershell.exe -noexit -file .\Plotting.ps1 -parallel 4 -delay 5
Где -parallel — количество плотов, которые предстоит засеять, а в команде -delay — выставляем время отложенного запуска плотов.
При сохранении текстового документа в типе файлов выбираем “Все файлы” и и называем файл ВАШЕНАЗВАНИЕ.bat.
Открываем файл ВАШЕНАЗВАНИЕ.bat (автоматически открывается в PowerShell). Тут же начинается запуск плотинга 1 плота и через заданное время запускается 2 плот. И так далее до запуска последнего из выставленного количества плота.
Если на компьютере, на котором будет запускаться данный батник, используется несколько кошельков, то вам необходимо указать, какой конкретно кошелек будет использоваться с помощью команды -а и публичного ключа.
Если вы хотите использовать этот компьютер в качестве харвестера, то вам необходимо указать параметры -f и вставить ваш farmer public key
darq
Запускаю по примеру файл Plotting, окно выполнения скрипта открывается и тут же закрывается… ничего не могу понять, где ошибка?
CrematedTV
вероятно павершел не имеет прав запуска
darq
права вроде есть… запускал от администратора… можно по подробнее каким образом еще можно дать права?
CrematedTV
если запустить команду присовения имени chia.exe вылезет ошибка, там есть ссылка и внутри команда что-бы исправить, я блин к сожалению хоть убейте не могу вспомнить и найти ее
darq
эта команда Set-ExecutionPolicy RemoteSigned, я ее ввел, но у меня другого хар-ра трабла)
darq
Я разобрался, чтобы не проскакивало нужно создать папку логов по пути исходя из настроек скрипта: -FilePath G:Logs
В моем случае на диске G не было папки Logs. После ее создания все завертелось.
alezz
Если в ответ на команду
Get-ExecutionPolicy
получаете
Restricted
нужно выполнить
Set-ExecutionPolicy unrestricted
и подтвердить Y
darq
для наглядности
https://www.youtube.com/watch?v=OSTuXtWT42k
Alex
Как успехи? у меня тоже самое, что делать?
CrematedTV
Если в ответ на команду
Get-ExecutionPolicy
получаете
Restricted
нужно выполнить
Set-ExecutionPolicy unrestricted
и подтвердить Y
Alex
Get-ExecutionPolicy unrestricted у меня
Alex
Разобрался. В конце скрипта надо добавить строку timeout 5. Скрипт закрывался, не успев запуститься я так понял.
Evgeny
А если выключить плоттинг не дождавшись 100%, то надо начинать сначала?
CrematedTV
да
Mosly
Не совсем понял по поводу :
* $delay 5400, второй с $delay — x2. * — т.е получается , если второй бантик запустить с х2 , то одновременно запуститься 3й плот с первого батника и 1й плот с 2го батника . И будут идти в паралели после .
CrematedTV
то будет запускаться 2 плота + 5400 1 плот + 5400 2 плота и тд
Frol
В самом блокчейне Чиа эти плоты будут отображаться или их нужно добавлять через интерфейс?
CrematedTV
будут
Александр
а никто не пробовал синхронизированную папку скопировать и зайти под своим ключом? вдруг прокатит
Леонид
Не могу присвоить имя файла 🙁 Set-ExecutionPolicy не помогает
Add-Content : Не удалось найти часть пути «C:UsersАдминистратор.SC0516919-01DocumentsWindowsPowerShellprofile.ps1».
строка:7 знак:1
+ Add-Content -Path $profile.CurrentUserAllHosts -Value $addToProfile
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:UsersАдмини…ellprofile.ps1:String) [Add-Content], DirectoryNotFoundException
+ FullyQualifiedErrorId : GetContentWriterDirectoryNotFoundError,Microsoft.PowerShell.Commands.AddContentCommand
CrematedTV
https://youtu.be/Ge5v58O8qSE
NikChest
А я чет упустил, почему размер плота не указывается «-k 32»? Или оно по умолчанию такое выставляет, если не указать размер?
NikChest
Если у меня ssd m2 — 2tb, то я могу типа одновременно 6 плотов засеивать, и это надо:
1. В скрипте прописать «-n 6»?
или
2. В скрипте прописать $parallel = 6, с $delay для своего проца?
CrematedTV
и паралел и делай, смотря какую выставишь задержку столько паралел.
вот новый вариант — https://youtu.be/Ge5v58O8qSE
CrematedTV
он по умолчанию 32
Chiaminer
Вечер добрый, не могли бы вы подсказать по Swarplotter вопросец.
Собственно, установил через павершел. Отредактировал настройки. Запускаю его через павершел, во view отображается как запущенный, но не появляются плоты в списке плоттинга. Ума не приложу что делаю не так. Могу сбросить конфиг, если вы сможете посмотреть и подсказать, что я делаю не так.
CrematedTV
смотрите внимательно задержки и количество плотов, а так-же пути
Alex
Здравствуйте,
Плотинг идёт, в программе Chia состояние плотинга не видно (
Так и должно быть?
CrematedTV
да
DRONE_Zz
Добрый день! Знатоки — есть ли пример батника с ключём -f для плотинка на других машинах без ввода фразы? и нужно ли как-то настраивать программу Chia для работы с этим ключем?
DRONE_Zz
разобрался)
JustIce
Коллега, а подскажи, как сделать так, чтоб после окончания создания плота запускался автоматом следующий скрипт?
CrematedTV
сейчас советую использовать одну из программ в видео https://www.youtube.com/watch?v=7SFyPec7Wds
Alex D
Спасибо за подробную выкладку!
У меня есть одна проблема при создании лог файла. Ни как не могу ее решить: Ни как не получается создать лог файл с индивидуальным именем в виде текущей даты и ID процесса. Пишу, так же как у вас указано: | Tee-Object -FilePath G:Logs$($date)_$($i).log . Но мне вместо этого создается лог файл в виде | Tee-Object -FilePath G:Logs.log . То есть не подставляет дату и ID процесса.
почитав команды Powershell в итоге кое как добился вывода текущей даты в имени файла (правда несколько иным форматом в команде, чем у вас). Но вывод в имя файла ID процесса плоттинга задаваемого chia (например ID: 10b19f08037f6e54d04ebd3c66e65117fbf2b13947602590c9e78f85fce37aa) ну ни как не выходит.
Подскажите, как вывести имя процесса в название формируемого лог файла ?
CrematedTV
кавычки.
воспользуйтесь альтернативным плоттером — https://cremated.tv/community/chia-chia-network/chia_plotting-programma-dlya-sozdaniya-plotov-dlya-chia-blockchain-s-avtomaticheskoj-funkcziej-zapolneniya-diskov-plotami/#post-81