Chia plotting basics
— February 22, 2021
Introduction
First it is important to know that there are two very different parts of being a Chia farmer. There is creating the plots or plotting and then there is farming the plots. In this post we are going to focus on the process of creating your plots. The types of machines and storage space are very different than the types of hardware you ultimately want to use to farm. You can see some example farming rigs on our very useful repository wiki.
We initially recommend that you try plotting with what you have around. The only caution about that is that you want to limit the amount of plots you create that use your internal/consumer grade SSD as the temporary space. SSDs have very different wear lives and we have detailed information on SSD endurance.
You really never need to plot a plot with a k size larger than 32. Those who do plot larger are either doing them to show off (and we encourage this for fun) or to optimally fill the open space on a specific drive. A k32 will take up 101.3 GiB of space once completed but will need a total of 239 GiB of temporary space as it is being created. A single k32 plotting process never needs more than 239 GiB of space. One needs to be careful here as 239 gibibytes uses 1024 as its divisor where GB or gigabytes uses 1000 as the divisor. That means you will need 256.6 GB of temporary space and the final plot file will take 108.8 GB. A k32 plot can be done by one expert we know in just under 4 hours, but most experts are creating plots in 5 hours and most folks average around 9-12 hours.
Creating a plot is a process that will take RAM, CPU cycles, IO to your disks and it will use them differently in each of the four phases of plotting. Everyone wants a magic “right” answer or to use AI to figure out the optimal plotting strategy for their machine. However almost every machine is different along one of these parameters so you just have to try. Longer term we will be able query your machine and make some recommendations but that is not today. You really will have to test. And no, the experts in the various Keybase channels don’t know your best settings either.
Getting going
The first phase generates all of your proofs of space by creating seven tables of cryptographic hashes and saving them to your temporary directory. Phase 2 back-propagates through the hashes, phase 3 sorts and algorithmically compress these hashes in the temporary directory while starting to build the final file and phase 4 completes the file and moves it into your final plot destination.
One of the major bottlenecks is usually the total sustained write speed of the disk underneath your temporary directory. We recommend used datacenter SSD if you really want to go fast and not sacrifice consumer SSDs making plots. NVMe is faster than SAS and SAS is faster than SATA. This PC World overview of storage technologies can explain these acronyms and the differences. TBW, or terabytes written, is generally how SSD drive life is measured. One k32 writes 1.8TiB in non-bitfield mode and 1.6 TiB with bitfield enabled. More on bitfield in a moment.
Making the single fastest plot isn’t generally the best plotting strategy however. Often you’re getting amazing speed because you’re using the turbo core of that multi core processor. The folks who plot the most have shown that you should measure in TB (TiB if you’re old school like us) per day. The way to get the maximum TB/day is to plot lots of plots in parallel. Some of the top plotters use datacenter SSDs. Some use SAS drives. Raid 0 is often very handy to tie together a couple of small fast drives into one say 2TB partition so you could fit 5 k32 temporary spaces on that one virtual RAID drive.
All of that said, for my personal plotting I use a 2017 iMac and a 12TB Western Digital external drive on USB 3.0 for both temporary and final directory, and I get a k32 about every 10 hours.
Good assumptions
There are some good rules of thumb for now. These can change as we will be returning to making some plotting speed improvements after launch. First we need to explain bitfield versus no bitfield plotting. Originally, the plotter did not use bitfield back sorting. The bitfield back sort is theoretically faster than not using the bitfield and we already know that it saves 12% of total writes but requires more RAM. We have a hunch we can speed bitfield up 10% and make it work on more processors but that’s not in there yet. What we do know is that, as long as you’re ok with the 12% more total writes, no bitfield will work faster when SSD or fast SAS is your temporary directory. If your temporary directory is on a regular HDD, like mine is, bitfield is 20% faster than no bitfield. Older CPUs may not see the speed increase as much as noted above.
Returning to the rules, here are a few. Never touch the stripe size of 65536. No one has found a speed up over that value and we are likely removing it from the options list. (Update: as of 3/11/21 stripe size has been removed as an option.) You almost never want to use any bucket values other than 128. Less buckets requires more RAM for each plotting process. 64 buckets requires twice the RAM.
As far as number of threads are concerned you are generally going to want 2 to 4. More than 4 seems to have diminishing returns and 2 threads is a lot better than 1. More threads also require a bit more memory to successfully complete a plot. The threading is only used in phase 1 currently.
As of Chia 1.0.4, RAM requirements are almost identical between bitfield and no bitfield. This is a chart of the various RAM choices assuming a k32 with 128 buckets and 2 to 4 threads:
RAM MiB: | Minimum | Medium | Maximum |
---|---|---|---|
Bitfield | 900 | 2640 | 3400 |
No Bitfield | 900 | 2640 | 3400 |
Below minimum your plot will fail. Medium is enough RAM that you’ll get most speed improvements, but not all. This is useful when you’re trying to get more plotting processes parallel and have limited RAM. Using anything over the maximum is wasting RAM as you will not plot any faster. We are pretty certain of the minimums and maximums but there is community debate about the medium values. We’ll update this chart accordingly as we have better data.
Mastering plotting
Most people start plotting from the GUI. You can successfully complete a couple of plots in parallel from there to get the hang of things. As people choose to get more serious they migrate to the command line. It is worth noting that Windows suffers 5-10% slower plot times versus MacOS or Linux for now.
Once you get some experience you will probably want to know how to create more and more plots in parallel. Luckily we have a replay on YouTube of our cocktails with plotting experts. They had much to share about their various approaches. Some used servers and datacenter SSD, some bought used servers and SAS drives for temporary directories, some expand their consumer/gaming machines, and some focused on lots of smaller used machines. Many of them have compiled a spreadsheet of reference plotting hardware with plot speeds to help get you thinking about any hardware you might want to change or acquire and see how your plotting results measure up.
As you start parallel plotting you need to be careful to not over allocate memory when you are plotting. If you cause your operating system to swap, you are not going to be happy with your outcome. You don’t have to be as careful with thread count.
It is also a very common plotting strategy to plot on say your gaming machine and then move your plots to a Raspberry Pi 4 with a lot of USB ports. All you need is your same 24 word mnemonic on both machines. Alternatively you can just run a remote harvester on your Pi and have it connect to your gaming machine where you are running node and farmer and only have your private keys on one machine.
Learning more
Everyone trying to create plots should read through our repository FAQ. It really does answer 90% of the questions you might have about plotting (and farming.)
Once you have read the FAQ, you’ll find a supportive community in these channels on our public Keybase channels.
Keybase Channel | Topic |
---|---|
#beginner | For those questions you are afraid to ask |
#testnet | For all things testnet — an intermediate skill level |
#plotting-hardware | The expert plotters are here. Hardware, software and plotting strategy |
Thanks
@pyl, @kiwihaitch, @psydafke, and @storage_jm all helped out on this post. The mistakes are mine. Should something need to be updated I will edit and post the errata down here.
Updates
As of Chia version 1.0.4, RAM min/med/max values have been updated.
Источник
Chia plots create cli
Эта страница должна содержать дополнительную высокоуровневую документацию и объяснение помимо just chia -h . Это не должно быть исчерпывающим. Потому что часто -h текст достаточно ясен. Мы рекомендуем полностью исследовать -h коммутатор. Прежде чем искать его в другом месте. Как и в остальной части этого проекта. Этот документ находится в стадии разработки. Не стесняйтесь просматривать исходный код или документ Chia Proof of Space Construction для получения дополнительной информации в то же время.
Если вы установили Chia.app его в свой /Applications каталог. То можете найти chia двоичный файл по адресу /Applications/Chia.app/Contents/Resources/app.asar.unpacked/daemon/chia .
Сделайте проверку на вменяемость
Terminal.app с помощью
Вы можете использовать это. Если увеличите свой PATH с
и тогда chia -h должно сработать.
Существует более одного chia.exe двоичного файла; есть графический Chia.exe интерфейс (два из них!) и CLI chia.exe . Они встречаются в разных местах. Обратите внимание на большое С против маленького с.
CLI-это тот. Который упоминается в этом документе. И для версии 1.1.3 его можно найти по адресу
Команда: chia init
Во-первых, init проверьте наличие старых версий chia. Установленных в вашем каталоге
Если это так, init то перенесите эти старые файлы в новую версию:
- config (включая старые SSL-файлы)
- дБ
- бумажник
- Используя config.yaml. Обновляет ключи кошелька и гарантирует. Что награды coinbase перейдут в правый кошелек puzzlehash.
Если старой версии не существует, init :
- Создает конфигурацию chia по умолчанию
- Инициализирует новый SSL-ключ и сертификат (для безопасной связи с графическим интерфейсом)
Команда: chia start
- Сервис node запустится только на полном узле.
- Сервис farmer запустят фермер, комбайн. Полный узел и кошелек.
Флаги
-r, —restart : Перезапуск запущенных процессов
Команда: chia plots create [add flags and parameters]
Флаги
-k [размер]: Определите размер участка(участков). Для получения списка k-размеров и времени создания в различных системах проверьте: k-Размеры
-n [количество участков]: Количество участков. Которые будут сделаны последовательно. Как только участок будет закончен. Он будет перемещен в конечное место -d , прежде чем начать следующий участок в последовательности.
-b [размер буфера памяти MiB]: Определение использования памяти/оперативной памяти. Значение по умолчанию-4608 (4,6 ГиБ). Больше оперативной памяти незначительно увеличит скорость создания сюжета. Пожалуйста, имейте в виду, что это то. Что выделено только для алгоритма построения графика. Код, контейнер. Библиотеки и т. Д. потребуется дополнительная оперативная память от вашей системы.
-f [farmer pk]: Это ваш Используйте это. Когда вы хотите создавать графики на других машинах. Для которых вы не хотите предоставлять полный доступ к учетной записи chia.
Чтобы найти свой открытый ключ Chia Farmer используйте следующую команду: chia keys show
-p [pool pk]: Это ваш Используйте это. Когда вы хотите создавать графики на других машинах. Для которых вы не хотите предоставлять полный доступ к учетной записи chia. Чтобы найти открытый ключ пула Chia. Используйте следующую команду: chia keys show
-a [отпечаток пальца]: Это отпечаток ключа. Используемый для выбора открытых ключей Фермера и пула. Используйте это. Когда вы хотите выбрать один ключ из нескольких в вашем брелке. Чтобы найти отпечаток вашего ключа Chia используйте следующую команду: chia keys show
-t [tmp dir]: Определите временный каталог для создания сюжета. Именно здесь происходит построение графиков фазы 1 (Прямое распространение) и фазы 2 (Обратное распространение). -t Dir требует самого большого рабочего пространства: обычно примерно в 4 раза больше размера конечного сюжета.
-2 [tmp dir 2]: Определите вторичный временный каталог для создания сюжета. Именно здесь происходит построение фазы 3 (сжатие) и фазы 4 (контрольные точки). В зависимости от вашей операционной системы, -2 по умолчанию может быть либо -t или -d . Поэтому, если -t у вас или -d у вас мало места. Рекомендуется установить -2 его вручную. -2 Режиссер требует такого же количества рабочего пространства. Как и конечный размер сюжета.
-d [final dir]: Определите конечное местоположение участка(участков). Конечно, -d должно быть достаточно свободного места. Как и окончательный размер участка. Этот каталог автоматически добавляется в ваш
/.chia/VERSION/config/config.yaml файл. Вы можете использовать chia plots remove -d его для удаления конечного каталога из конфигурации.
-r [количество потоков]: 2 обычно является оптимальным. Многопоточность в настоящее время находится только в фазе 1.
-u [количество ведер]: Больше ведер требуют меньше оперативной памяти. Но больше случайных запросов к диску. С вращающимися дисками вы хотите меньше ведер. А с NVMe больше ведер. Нет никакой существенной выгоды от использования меньших ведер — просто используйте 128.
-e [построение битового поля]: Использование -e флага отключит алгоритм построения битового поля и вернется к более старому стилю построения b17. После 1.0.4 лучше использовать bitfield для большинства случаев (не используя -e ). До 1.0.4 (устаревший) использование -e флага (битовое поле отключено) снижает потребность в памяти. Но также записывает примерно на 12% больше данных при создании графика.
На данный момент временное пространство SSD. Скорее всего. Будет строиться быстрее с -e отключенным обратным распространением битового поля. А для более медленных вращающихся дисков. Например SATA 5400/7200 об / мин, лучше не использовать -e (включенное битовое поле).
Примеры Команд Построения Графиков
Пример ниже создаст участок k32 и использует 4 ГБ (примечание — не гиб) памяти.
chia plots create -k 32 -b 4000 -t /path/to/temporary/directory -d /path/to/final/directory
Пример 2 ниже создаст график k34 и будет использовать 8 ГБ памяти, 2 потока и 64 ведра
chia plots create -k 34 -e -b 8000 -r 2 -u 64 -t /path/to/temporary/directory -d /path/to/final/directory
Пример 3 ниже создаст пять графиков k32 ( -n 5 ) по одному за раз. Используя 4 ГБ -b 4000 (примечание — не ГиБ) памяти и использует вторичный временный каталог ( -2 /path/to/secondary/temp/directory ).
chia plots create -k 32 -b 4000 -n 5 -t /path/to/temporary/directory -2 /path/to/secondary/temp/directory -d /path/to/final/directory
Дополнительные Примечания к Построению графика
Во время построения графика фаза 1 (Прямое распространение) и фаза 3 (Сжатие). Как правило. Занимают больше всего времени. Поэтому, чтобы максимально увеличить скорость построения графика, -t нужно и -2 на самых быстрых дисках, а -d можно и на медленных.
Существует 4 основных этапа построения графика. Фаза 1 построения может использовать многопоточность. Фазы 2-3 не делают. Вы можете лучше оптимизировать построение графика, используя -r флаг в вашей команде и установив его больше 2, например … -r 2 Выше 4 потоков есть убывающая отдача. Многие пользователи Чиа пришли к выводу. Что гораздо эффективнее строить графики параллельно. А не последовательно. Вы можете сделать это. Просто открыв несколько экземпляров построения графика. Но ошеломляясь. Когда они начинаются через 30 минут или больше.
Объективно быстрее строить графики на твердотельных накопителях. А не на жестких дисках. Однако срок службы твердотельных накопителей значительно более ограничен. И раннее тестирование Chia. По-видимому, показало. Что построение графиков на твердотельных накопителях изнашивает их довольно быстро. Поэтому многие пользователи Chia решили, что более
Построение графиков должно быть максимально эффективным. Однако для предотвращения мелющих атак фермеры не должны иметь возможности создавать участок в пределах среднего интервала блоков. Вот почему минимальный размер k-это k32 в mainnet.
Команда: chia plots check -n [num checks] -l -g [substring]
Во-первых, это выглядит во всех каталогах plot из вашего config.yaml. Вы можете проверить эти каталоги с chia plots show помощью . Эта команда проверит. Являются ли участки допустимыми с учетом связанных ключей участка и сохраненных ключей Chia вашей машины. А также протестирует участок с проблемами идентификации найденных участков по сравнению с ожидаемым количеством участков.
-g проверяйте только участки с именем каталога или файла. Содержащим чувствительную к регистру [подстроку]. Если -g это не указано. То будут проверены все участки в каждом каталоге участков в вашем config.yaml.
Примеры использования -g
- Проверьте графики в длинном имени каталога. Например /mnt/chia/DriveA can use chia plots check -g DriveA
- Проверьте, что только участки k33 могут использовать chia plots check -g k33
- Проверить участки. Созданные 31 октября 2020 года. Можно chia plots check -g 2020-10-31
-l позволяет находить дубликаты участков по идентификатору. Он проверяет все каталоги участков. Перечисленные в config.yaml. И перечисляет все имена файлов участков с одинаковым концом имени файла; *-[64 char plot ID].plot . Вы должны использовать -l -n 0 его только в том случае. Если хотите проверить наличие дубликатов.
-n представляет собой количество поставленных задач. Если вы не включаете целое -n число. То по умолчанию оно равно 30. Например, если -n это 30, то на каждый участок будет дано 30 заданий. Вызовы рассчитываются от 5 (минимум) до -n , и не являются случайными.
Каждый сюжет будет принимать каждый вызов и:
- Получите качество для вызова (Есть ли доказательство пространства? Вы должны ожидать 1 доказательство на вызов. Но может быть 0 или более 1.)
- Получите полное доказательство(ы) для вызова. Если доказательство присутствовало
- Проверьте, что # полных доказательств соответствует # ожидаемых доказательств качества.
Наконец, вы увидите отчет
Поэтому, если -n это 20, вы ожидаете 20 доказательств. Но ваш сюжет может иметь больше или меньше.
Запуск команды с -n 10 помощью or -n 20 хорош для очень незначительной проверки. Но на самом деле не даст вам много информации о том. Действительно ли графики являются высококачественными или нет.
Рассмотрите возможность использования -n 30 , чтобы получить статистически лучшую идею.
Более подробно вы можете прочитать о командах DiskProver в chiapos
Что означает соотношение полных доказательств и ожидаемых доказательств?
- Если соотношение равно
- Это не должно вас действительно беспокоить. Если только ваш коэффициент не равен
Задача проверки графиков — это статическая задача. Например, если вы запустите проверку графиков 20 раз. С 30 попытками против одного и того же файла. Она будет давать один и тот же результат каждый раз. Таким образом. Хотя вы можете увидеть соотношение сюжета
ТеоретическиАналогично. График с соотношением
Чтобы увидеть. Что вы можете сделать с каждой из этих команд. Используйте флаг справки-h. Например, chia show -h .
Чтобы проверить свой полный статус узла. Сделайте chia show -s это, и вы увидите что-то вроде этого. Чтобы понять. Насколько близко вы находитесь. Посмотрите на свой рост. После полной синхронизации он скажет Full Node Synced наверху.
Вы можете добавлять и удалять каталоги для ваших участков с chia plots add -d ‘your_dir’ помощью или chia plots remove -d ‘your_dir’ , справку можно найти для соответствующего добавления/удаления с помощью chia plots add/remove -h
Проверка журналов и состояния
Вы можете проверить содержимое своего кошелька с помощью: chia wallet , и статус вашего фермера с chia farm summary помощью .
Источник