Chia how to move plots

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 how to move plots

Этот проект был разработан вокруг моего желания В моей конкретной конфигурации у меня есть сервер построения синге (chisplot01). Создающий участки Chia. После того. Как сервер построения завершит участок. Этот участок должен быть перемещен на сервер хранения (chisnas01). Где он находится во время Процесс создания сюжета довольно прост. Но процесс управления этим сюжетом после его завершения был немного интереснее. Мой сервер построения графиков имеет возможность построить 40 параллельных участков за один раз. И именно там у меня начались проблемы.

Одной из таких проблем. С которой я столкнулся. Была относительно низкая скорость. С которой графики можно было перемещать с сервера построения графиков на сервер хранения.

Короче говоря. Все было просто — я не мог продолжать строить 40 графиков одновременно. Так как не мог достаточно быстро перемещать их с сервера построения графиков. Чтобы не исчерпать безумно дорогое пространство на диске NVMe. Даже при соединениях 10GbE непосредственно между двумя устройствами использование mv или cp монтирование NFS было довольно медленным. Другие предположили rsync , что это также было довольно медленным из-за шифрования. То же самое справедливо и для scp Я даже зашел так далеко, что отказался от ssh, поставлявшегося вместе с Ubunti 20.04, и скомпилировал и установил Высокопроизводительный SSH из Питтсбургского суперкомпьютерного центра. Хотя он был быстрее. Он и близко не подошел к максимальному использованию моего выделенного канала 10GbE. Что я знал, так это то. Что проблема была не в сети. Каждая машина была подключена к выделенному порту 10GbE на Cisco Nexus 9000 в выделенной сети передачи данных VLAN специально для перемещения этих графиков. Iperf смог насытить канал связи 10GbE нулевыми проблемами.

Затем я хотел убедиться. Что проблема не связана с носителем. На который я копировал данные по проводу. Я установил пару дисков Intel P3700 PCIe NVMe в конфигурации strip RAID и провел кучу тестов к этой точке монтирования локально и по проводу. Как и предполагалось, локально диски действовали как по волшебству, по проводу. Они действовали с той же скоростью. Что и мои блесны. Очевидно, носитель диска также не был проблемой. Это должна быть сеть.

Я потратил много времени. Играя со всеми сетевыми настройками. Изменяя параметры ядра. Включая и выключая гигантские кадры и регулируя irqbalancing. В конце концов. Некоторые изменения дали мне незначительный рост производительности. Но на самом деле ничего особо не помогло . Именно тогда я заявил. Что снова смотрю на механизм. Который использую для перемещения файлов. В ходе исследования я столкнулся с парой людей с такой же ситуацией. Скорость сети на сильно загруженных системах и слабонагруженных сетях. Где традиционные методы перемещения файлов не работали для них. Поэтому вместо этого они использовали Netcat.

После прочтения плюсов и минусов netcat vs rsync (который наиболее рекомендуется) Я решил проверить его. Я протестировал cp, mv, rsync. Scp и HPSSH через NFS. SMB (miserable) и SSH. За исключением SMB. Все они в значительной степени работали одинаково. Я получал лучшую производительность. Чем я использовал стоковый Ubuntu ssh после замены его высокопроизводительным SSH и nuking encryption. Но по-прежнему ничего. О чем можно было бы написать. Затем я протестировал Netcat. Я был потрясен. С netcat я перешел от гораздо менее 1GbE к пикам 5Gbe. 100-граммовые файлы. Передача которых занимала 18 минут. Теперь передавались за 3-4 минуты.

Также очень интересно отметить. Что TrueNAS использует netcat для репликации. Когда вы говорите ему. Что хотите отключить шифрование для репликации. Исследуя это дальше и разговаривая с некоторыми на форумах. Они отметили. Что они обнаружили. Что это всегда превосходит все другие методы передачи. Этого было достаточно. Чтобы подтвердить мое решение!

Что касается участков. Большинство людей рекомендуют не использовать какой-либо тип RAID-массива для защиты ваших участков от потери. мыслительный процесс заключается в том. Что если вы потеряете один заговорный диск. Ничего страшного. Выбросьте его в мусорное ведро и поместите запасной диск и заполните его обратно заговорами. Поскольку мне действительно нравится FreeNAS. Я просто планировал сбросить новый сервер FreeNAS. Бросив кучу из девяти дисков RAIDZ2 vdevs на место и двигаться вперед. Но, как многие отмечали. Это было МНОГО потраченного впустую пространства для данных. Довольно легко заменяемых. И космос — это название игры с Чиа. Поэтому, имея в виду эту мысль. Я решил построить jbod. Как предлагали многие другие. Вопрос состоял в том. Как перенести графики на диски и что делать. Когда диски заполнятся.

Добро пожаловать в мой проект! В итоге я получил в основном схему клиент-сервер. Программное обеспечение на сервере построения графиков будет следить за завершенными участками. А затем отправлять эти участки (с помощью netcat) на сервер NAS. Программное обеспечение на сервере NAS автоматически отслеживало все доступные диски в системе и размещало участок там. Где ему нужно было идти. В значительной степени самостоятельно. Как я уже говорил ранее. Моя работа пилота постоянно держит меня в воздухе. И мне действительно нужен был свободный подход. Чтобы сделать эту работу.

На стороне плоттера (каждые 5 минут):

  • Отслеживает каталог my -d для завершенных участков
  • Определяет, является ли график полным. Основываясь на размере и названии графика (в настоящее время только k32)
  • Проверяет, не посылаем ли мы уже сюжет в NAS, и если да. То останавливается
  • Когда ясно, что нужно отправить, выбирает. Какой участок отправить. И подключает его к NAS
  • Используя подпроцесс ssh. Запускает принимающий netcat на NAS
  • После завершения передачи в качестве базовой проверки проверяется точный размер файла графика в обеих системах
  • Как только размеры файлов будут проверены. Отправленный график будет удален.
  • Убивает любые затянувшиеся соединения netcat на NAS

На стороне NAS (каждые 1 минуту):

  • Проверяет наличие всех доступных графических накопителей в системе в режиме реального времени (в случае добавления новых)
  • В зависимости от количества участков на дисках выбирается следующий доступный участок диска для приема участков.
  • Обновляет сценарий приема с помощью выбранного в данный момент привода сюжета
  • Как только этот диск будет заполнен. Выберите следующий доступный диск plot и обновите сценарий получения
  • Полные, выбираемые уведомления по электронной почте. SMS и Pushbullet о смене диска. Включая некоторую информацию о СМАРТ — диске
  • Отправляет ежедневный отчет по электронной почте. Включая # дисков. # участков в настоящее время и # участков всего на основе текущего хранилища дисков
  • Ежедневная электронная почта также включает в себя скорость построения графиков. Общее количество графиков за последние 24 часа и построение графиков ТиБ за последние 24 часа
  • Поскольку уведомления уже встроены. Мы расширим его до оповещения о темпах движения и предупреждениях smartctl
  • В конечном итоге интегрируйте информацию в поток с приборной панелью Grafana (включая мониторинг питания через ИБП)

На Фермера (каждые 1 минуту):

    Проверяет журналы chia (

chia/.chia/mainnet/log/debug.log) на наличие активности

  • Выглядит специально для
  • После обнаружения обновляет локальный файл. Показывающий. Сколько у вас Чиа
  • Электронные письма. Тексты и т. Д., Когда вы получаете новую монету с текущей суммой. Которая у вас есть
  • Не использует проводник блоков. Так что проверьте!
  • Параметры командной строки на NAS

    • Возможность запуска быстрых отчетов на экран (в основном ежедневная электронная почта сбрасывается на экран
    • Возможность отправки обновления диска по электронной почте
    • Возможность контролировать температуру привода по устройству и серийному номеру

    Это было разработано и работает на Ubuntu 20.04 как для плоттера. Так и для NAS. Поэтому в значительной степени любой вкус Linux должен работать. Ниже перечислены вещи. Которые я использую в обеих системах. Единственное. Что нужно остерегаться на NAS-это версия pySMART. Которую вы используете. Я столкнулся с ошибкой с версией (1.0) на PyPI и в конечном итоге использовал версию от людей TrueNAS. НЕ используйте версию из PyPI. Она не будет работать. Пока не будет исправлена.

    Я работаю на Python 3.8.5, и почти все остальное было установлено вместе с установкой Ubuntu Server 20.04 по умолчанию. Обязательно установите smartmontools apt install smartmontools а также следующие программы:

    • Sentry-SDK — (Необязательно. Я использую его для отслеживания ошибок)
    • Pushbullet (0.12.0) — (Опционально. Используется для PB-уведомлений)
    • Twilio (6.54.0) — (Необязательно. Используется для SMS-уведомлений)
    • JinJa2 (2.11.3) — (Необязательно. Используется для уведомлений по электронной почте)
    • ConfigParser (5.0.2) — Используется для чтения и обновления конфигурационных файлов
    • py-SMART (0.3) — Используется для считывания информации о приводе
    • Natsort (7.1.1) — Используется для естественной сортировки номеров дисков
    • DStat (0.8.0) — Используется для мониторинга статистики дискового ввода-вывода

    Установка и настройка

    Установка самих скриптов довольно проста. Просто клонируйте репо и поместите его на свой сервер. Многое из того. Что происходит. Очень специфично для того. Как я настроил свои системы. Поэтому я подробно объясню свой макет вместе с тем. Где в коде вам, возможно. Придется искать изменения в соответствии с вашими потребностями. Плоттер довольно прост.

    Вот структура directry. Которую я использую на своем плоттере для моих основных графических и-d дисков:

    Эти /mnt/nvme/driveX диски используются в качестве моих временных дисков для построения графиков. Это накопители Intel DC P4510 NVMe. Способные работать от 12 до 14 участков каждый (в зависимости от размера участка k32). Это /mnt/ssdraid/array0 мой -d драйв. Это массив RAID0 корпоративных SSD-накопителей HGST объемом 1,6 ТБ. Именно здесь хранятся завершенные участки до того. Как они будут перемещены plot_manager.py сценарий.

    Все мои построения выполняются как chia пользователь. И поэтому все мои файлы plot_manager хранятся в /home/chia каталоге. У меня есть немного встроенного тестирования в сценарий. И именно для этого используется каталог test_plots. Я просто dd помещаю 10 г нулей в файл тестового графика и включаю тестирование в скрипте. Чтобы проверить все перед выходом в эфир.

    В зависимости от того. Как настроена ваша система. Вам нужно внести изменения в верхней части plot_manager.py скрипта:

    Измените plot_dir и plot_size для тестирования и не тестирования в соответствии с вашей системой и потребностями.

    status_file это локальный файл. Который создается. Когда мы начинаем движение участка и удаляется. Как только мы завершили этот ход. Мы проверяем это при первом запуске. Чтобы убедиться. Что мы не пытаемся переместить несколько участков одновременно.

    Вы увидите это в журналах:
    2021-03-19 18:50:01,830 — plot_manager:155 — process_control: DEBUG Checkfile Exists. We are currently Running a Transfer, Exiting

    По мере роста я планирую добавить вторую выделенную ссылку 10GbE для перемещения участков. И я могу расширить ее. Чтобы включить возможность отслеживания сеансов по каждой ссылке.

    remote_checkfile используется в системе NAS для предотвращения нашего NAS drive_manager.py сценарий от изменения целевого диска в середине сюжетного хода. На NAS я запускаю все как root пользователь. Следовательно. Путь к каталогу. Изменить, чтобы удовлетворить ваши потребности.
    Это почти все на стороне плоттера. Заключительная часть головоломки-сценарий send_plot.sh оболочки. На строке 99 plot_manager.py скрипта вы найдете эту строку:
    subprocess.call([‘/home/chia/plot_manager/send_plot.sh’, plot_path. Plot_to_process]) Вам нужно изменить каталог и имя скрипта в соответствии с вашими потребностями. Это называется сценарий. Который фактически отправляет сюжет в NAS. Это и есть содержание:

    Вот еще несколько путей. Которые вам нужно проверить. Я бы поставил номера строк. Но они могут измениться. Просто найдите код и замените его по мере необходимости.

    Перед запуском скрипта убедитесь. Что в скрипте правильно определены следующие пути:

    Находится в process_plot() функции:
    [‘ssh’, nas_server. ‘grep enclosure /root/plot_manager/plot_manager_config | awk <\'print $3\'>‘]).decode((‘utf-8’))).strip(«\n»)

    Это место на стороне NAS. Где скрипт ищет текущий используемый диск. Например, если у вас есть drive_manager.py установленные в вашей домашней директории /home/your_name/plot_manager , то эта линия будет выглядеть следующим образом:
    [‘ssh’, nas_server. ‘grep enclosure /home/your_name/plot_manager/plot_manager_config | awk <\'print $3\'>‘]).decode((‘utf-8’))).strip(«\n»)

    введите местоположение сценарию живет здесь:
    sys.path.append(‘/home/chia/plot_manager’)

    , а также на этой линии: [‘ssh’, nas_server. ‘/root/plot_manager/kill_nc.sh’])

    и вот тут-то сценарий жизни на NAS-сервер:
    subprocess.check_output([‘ssh’, nas_server. ‘touch %s’ % ‘/root/plot_manager/new_plot_received’])

    наконец, взглянем на system_logging.py скрипт и убедитесь. Что все дорожки там исправить и сделать то же самое в loggin.yaml файл для вашего файла журнала местах.

    В зависимости от того. Как вы настроили NAS. Нам, возможно. Придется изменить еще несколько строк кода. Я вернусь к этому после того. Как мы поговорим о NAS.

    Настройка NAS довольно уникальна для меня. Но это должно быть довольно легко перенастроить сценарий для удовлетворения других потребностей.
    После запуска трех очень больших систем Plex (PBs worth) я разработал макет и название своего диска так. Чтобы в любой момент. Просто взглянув на точку монтирования. Я мог вытащить диск. Если мне это нужно.

    Моя базовая компоновка-это один сервер хранения данных SuperMicro с материнской платой, 256 ГБ оперативной памяти и 36 отсеками для дисков. Это я называю enclosure0 . Это Supermicro 847, у него 24 отсека привода спереди и 12 сзади. Это моя структура каталогов для этой системы:

    Как вы можете видеть. Просто взглянув на точку монтирования. Я могу точно сказать. Где находится диск в моей системе. В дополнение к этому. Когда я добавляю дополнительные внешние массивы дисков. Я просто делаю то же самое с enclosure1 помощью, enclosure2 и т. Д. , и мой drive_manager.py скрипт будет работать без проблем. Я подключаю новый диск. Форматирую его XFS , монтирую, добавляю, fstab и все. Сценарий делает все остальное.

    Я в основном использую psutil его для получения информации о пространстве диска. А затем использую ее для определения того. Где разместить графики. Когда я звоню psutil я просто говорю ему что хочу чтобы он смотрел на любое устройство которое начинается со /dev/sd слова и на любую точку монтирования которая включает enclosure в себя это слово и заканчивается им drive :

    Таким образом. Я никогда не получу swap, temp. Boot, home и т. Д. Вообще ничего. Кроме накопителей моего сюжета. Для того чтобы это работало с вашей настройкой. Вам придется изменить все эти строки в соответствии с вашей патикулярной конфигурацией.

    Как только вы это выяснили. Есть еще несколько мелочей. Которые нужно установить:

    В верхней части сценария вы хотите установить их в соответствии с вашими потребностями:

    receive_plot.sh Сценарий создается динамически сценарием здесь:

    Как только система определяет. Какой диск она хочет использовать для хранения графиков. Она сохраняет эту информацию в конфигурационном файле. Который называется plot_manager_config и выглядит следующим образом:

    Это важно по нескольким причинам. Во-первых, это то. Что сообщает системе наш текущий диск построения графика. А также используется сервером построения графика для сопоставления правильного пути для проверки размера файла после отправки графика. Если вы измените этот файл или его местоположение. Вам необходимо обновить строки 167 на плоттере. Обратите внимание . Что я специально цепляюсь за это слово enclosure , вы хотите убедиться. Что все это совпадает с тем. Как вы планируете действовать!

    Хорошо. Как только у вас все настроено. На плоттере вы просто запускаете скрипт. И если все настроено правильно. То увидите следующее:

    Это говорит о том. Что все прошло гладко. Вы должны иметь возможность войти в свой NAS и убедиться. Что участок находится там. Где он должен быть. Излишне говорить. Что я бы придерживался кучи тестовых участков. Пока не получил бы их правильно. Я бы также прокомментировал эту строку:

    До тех пор. Пока вы не будете абсолютно уверены. Что он работает так. Как вы хотели бы. Чтобы он работал!

    Теперь на сервере NAS я запускаю свой сценарий один раз в минуту. Это то. Что вы должны увидеть. Если все идет хорошо:

    Когда сюжет действительно меняется. Вы получаете красиво отформатированное электронное письмо:

    и текстовое или pushbullet сообщение: Plot Drive Updated: Was: /mnt/enclosure0/front/column3/drive17, Now: /mnt/enclosure0/front/column3/drive18

    И если вы решите. То раз в день вы можете получать ежедневное обновление по электронной почте:

    Если вы также используете NAS в качестве локального плоттера. Прочтите это…..

    Я также использую свой NAS/Harvester в качестве локального плоттера. И мне нужно уметь управлять созданными участками так же. Как и удаленными участками. Я использую Вы можете указать его на одно местоположение rsync. Но вы должны управлять этим участком самостоятельно. Как только он туда попадет. Диск Поэтому я создал `move_local_plots.py`.

    Этот сценарий очень прост. Он смотрит в том месте. Где вы говорите ему. Что храните завершенные локальные графики. И перемещает их на выбранный в данный момент диск построения графиков. Настроенный `drive_manager.py`. Затем он проверяет размеры участка и удаляет участок с контролируемого диска. Это попытка проверить. Что копирование происходит и не провалилось. Я использую Если на диске нет ввода-вывода. То предполагается. Что процесс копирования отсутствует. Если сценарий обнаруживает. Что он думает. Что есть копия. Но нет никакого ввода-вывода диска. Он пытается сбросить себя и перезапустить копию, надеясь. Что на этот раз все завершится правильно.

    Убедитесь. Что вы установили ‘ Dstat`. Прежде чем пытаться использовать этот скрипт. Иначе он потерпит неудачу. Настройки см. в начале скрипта.

    Один совет — если вы используете одну из ваших дисков. Что `drive_manager.py` обычно используют для размещения графиков на темп местные `-д` — накопитель. Вы должны автономного диска с помощью`/.drive_manager.py —команды drivexx`. Иначе `drive_manager.py может начать делать заговоры на диске вызывает вопросы.

    Параметры командной строки

    Глядя с V0.3 (4 апреля 2021) (и обновлено снова в V0.4) я начал добавлять в командной строке параметры. Чтобы сделать получение сюжета и другой информации проще и создавать отчеты на лету. В настоящее время доступны следующие параметры командной строки:

    -h-help и-v-version
    Эти параметры распечатывают сообщение справки или информацию о версии и завершают работу.

    -dr —drive_report
    Эта опция выводит на экран HTML-версию электронной почты Daily Drive Report. А также электронные письма. Это работает только в том случае. Если настроено. Если это уведомление установлено в положение off. Это ничего не даст.

    -ct —check_temps
    Эта опция печатает серийный номер. Имя устройства. Номер привода и температуру всех устройств. Предназначенных для построения графиков.

    -pr —plot_report
    Этот параметр выводит на экран быструю версию ежедневного сюжетного отчета и завершает работу.

    -ud —update_daily
    Эта опция действительно предназначена для вызова из вашего кронтаба прямо перед запуском ежедневной электронной почты:

    Он предназначен для расчета информации. Необходимой для ежедневного сюжетного отчета. Вы можете запустить его в любое время. Но он сбросит эту информацию в тот момент времени. Который вы назвали. Чтобы дать вам 24 -часовое представление вашей системы.

    Монетный монитор (Только версия Chia 1.1.1 или выше)

    Мне нужен был простой способ отслеживать. Когда я выиграл монеты и сколько их у меня было. Поэтому я добавил coin_monitor.py их в эту смесь. Как я уже сказал. В моей конфигурации у меня есть три сервера: мой plotter , мой nas и мой farmer . Монетный монитор сидит на моем фермере и просматривает лог-файлы на предмет новых монет. Когда он видит. Что появилась новая монета. Он проверяет файл журнала монет ( /root/coin_monitor/logs/new_coins.log ), чтобы убедиться. Что мы еще не сосчитали эти монеты. Если это новая монета. То она записывает эту информацию в файл журнала ( new_coins.log ), и в зависимости от того. Какие уведомления вы настроили. Вы можете получать уведомления по SMS. Электронной почте и PushBullet. Если вы per_coin_email установили значение True/1 в coin_monitoring_config вы также получите красиво отформатированное электронное письмо поверх других ваших уведомлений.

    Это автономно и может использоваться как в сочетании с моими сценариями plot_manager. Так и без них.

    Установка довольно прямолинейна. Скопировать его в нужную директорию. А затем отредактировать coinf_monitor.py и убедитесь. Что эта линия указывает на правильное расположение файла журнала:

    также убедитесь. Что следующая строка также необходимую для вашей системы:

    наконец, вы должны убедиться. Что чиа-это вход в информационный режим. А не предупреждение. В противном случае это будет не регистрировать новые монеты. Посмотрите здесь. Чтобы убедиться:
    /home/chia/.chia/mainnet/config/config.yaml

    Вы должны увидеть что-то вроде этого:

    Просто убедитесь log_level , что установлен на INFO. И вы должны быть хороши.

    Если вы хотите протестировать сценарий. Просто создайте тестовый файл
    2021-04-24T14:16:11.298 wallet chia.wallet.wallet_state_manager: INFO Confirmed balance amount is 9200000000000

    Сохраните файл и отредактируйте coin_monitor.py сценарий. Чтобы посмотреть на этот файл и запустить сценарий. Если все настроено правильно. Вы должны получить электронное письмо (или любое другое уведомление. Которое вы настроили). Если вы запустите его снова . Вы должны увидеть это в журнале отладки coin_monitor:
    coin_monitor:82 — check_for_chia_coins: DEBUG: Found coins that were already accounted for in the log!: [‘2021-04-24T14:16:11.298’. ‘9200000000000’]

    Просто убедитесь. Что после тестирования скрипт вернулся к правильному лог-файлу!

    Оборудование. Которое я использовал в своей установке

    У меня было несколько человек. Которые спрашивали об оборудовании. Которое я использовал в своей установке. Поэтому я решил включить его сюда. Почти все, что я купил. Было использовано на eBay. Были небольшие исключения. Но 95% — это eBay.

    Построение Графика Сервера

    NAS для хранения участков

    Шасси расширения NAS

    Узел Chia Famer

    Мое дополнительное шасси диска сейчас пусто. Новы можете видеть из моей компоновки диска и стратегии монтажа выше. Очень легко добавить больше дисков.

    • Незначительные обновления move_local_plots.py , чтобы использовать дисковый ввод-вывод. Чтобы убедиться. Что мы не остановили движение сюжета. Пытается автоматически исправить и перезапустить процесс копирования/перемещения. Если мы обнаружим сбой.
    • Добавлена проверка участка через журналы Chia. Чтобы соответствовать тому. Сколько участков в настоящее время сообщается как находящихся в системе. Также включено общее пространство на диске. Используемое Chia.
    • Обновил отчет о графике. А также Ежедневный отчет с приведенной выше информацией о графике. Нет ничего необычного в том. Что есть небольшая разница в числах в результате перемещений/копий в процессе и т. Д. Но если число больше, чем, скажем, 5 или 6 участков. Вы можете проверить свои журналы на наличие других проблем.
    • Добавлена возможность управления локально построенными участками в дополнение к удаленным участкам. Это позволяет вам строить графики на вашем NAS/Harvester и управлять этими участками так же. Как и участками из удаленной системы. Это настраивается как отдельный скрипт под названием move_local_plots.py . Пожалуйста, ознакомьтесь с примечаниями в этом сценарии для получения дополнительной информации.
    • Добавлена возможность Когда вы отключаете диск. Он предотвращает drive_manager.py от использования этого диска для хранения сюжетов до тех пор. Пока вы снова не
    • Отключать можно только диски. Которые в настоящее время смонтированы и доступны в системе и перечислены в качестве накопителей.
    • Только диски. Которые были отключены. Могут быть включены. Если вы запустите ./drive_manager.py -h , вы получите список дисков. Которые были отключены. Если никакие диски не были отключены. Вы не увидите параметры -on или —online_hdd .
    • Изменена опция сортировки для всех приводов участков natsort . Это сортирует теперь полностью по номеру диска естественно.
    • -off или —offline_hdd отключает определенный диск для обслуживания. Ошибка в stdout. Если диск не смонтирован или не aplot диск.
    • -on или —online_hdd онлайн-диск. Который был отключен. Что делает его немедленно доступным для сюжетов. В список будут включены только те диски. Которые были отключены.

    V0.3 2021-04-04 Добавлено несколько утилит командной строки drive_manager.py , в том числе:

    • -dr или —drive_report сразу же запускает Ежедневный отчет и отправляет электронную почту (если настроено).
    • -ct или —check_temps проверяет температуру всех дисков и возвращает отчет в stdout.
    • -pr или —plot_report быстрый отчет о графике. Как отчет по электронной почте. Но в stdout.
    • -ud или —update_daily предназначен для вызова из cron one за 24 часа. Обновляет ежедневную статистику заговора. Чтобы обеспечить 24-часовую статистику заговора (общие заговоры. Часовые заговоры. Дни до полного).

    Добавлена информация о времени участка в отчет электронной почты dailey, включая:

    • Всего участков за последние 24 часа
    • Средние участки в час (последние 24 часа)
    • Средняя скорость построения графика (последние 24 часа)
    • Переместил системные типы ведения журнала в plot_manager_config и обновил необходимые функции.
    • Добавлена функция уведомления системы per_plot (send_new_plot_notification()).
    • Обновлено read_config_data() для поддержки логических возвращений ConfigParser.
    • Обновлены необходимые функции для изменения read_config_data()

    Я все еще очень много хочу сделать с этими сценариями. Мне нужно сделать гораздо больше проверки ошибок и управления. Дополнительных возможностей и типов уведомлений и в конечном итоге добавить веб-интерфейс через Flask. Я не программист, я делаю это для удовольствия, поэтому я уверен, что могут быть лучшие способы сделать некоторые вещи. Которые я сделал ей, но это работает для меня, и, надеюсь. Может работать и для кого-то еще.

    Источник

    Читайте также:  Самые надежные видеокарты для майнинга
    Оцените статью