- CHIA -Технические настройки, наблюдения и возможные пути оптимизации.
- Синхронизация chia долгая
- Синхронизация кошелька
- Это действительно синхронизация?
- Кошелек не синхронизируется – Устранение неполадок с несинхронизированным QT-кошельком
- Проблемы с подключением к Интернету и брандмауэром
- Проверьте подключение кошелька и добавьте узлы
- Поврежденный блокчейн
- Обновите и переиндексируйте свой кошелек
CHIA -Технические настройки, наблюдения и возможные пути оптимизации.
CHIA. Технические настройки, наблюдения и возможные пути оптимизации.
Дано
Processor: Intel Pentium G4560 3.5GHz (2c/4t)
Matherboard: ASUS ROG STRIX Z270F GAMING
RAM: 2x8GB Crucial Ballistix (XMP 2400 MHz)
SSD под винду: WD Green 120GB (2,5″ SATA)
NVMe под плоттинг: Silicon Power 1000GB (U.2)
HDD (в кол-ве N штук) под фарминг: Toshiba X300 8TB (3,5″ SATA)
Файл подкачки: 16GB
Кратко про свои эксперименты
Как видно, характеристики не самые впечатляющие. Собиралось все из того, что было + покупалось новое в самом начале хайпа монеты. После установки мастер-ноды была долгая синхронизация (о ней чуть дальше) + производилась проверка жизнеспособности системы. Естественно, начиналось все с одного плота и без каких-либо доп. настроек. Проверялось потребление памяти, ресурсов и энергопотребления. И вот спустя пару десятков проверок и несколько десятков часов исследований нарисовалась следующая картина. Ниже приведена выборка разного рода попыток для наглядности (указывается средний Total time для одного плота).
Сделанные выводы
1) Как видно, увеличение кол-во потоков даже на 4-х поточном (но 2-х ядерном) стареньком процессоре дает выигрыш при засеивании. В моем случае почти в 10%, но при этом процессор загружен на 99% всегда. Если бы это были честные 4 ядра, то выигрыш был бы больше. Но тут есть нюанс — если проц всегда загружен на 99%, то он потом может «захлебнуться» и завершить все процессы chia (и дочерние тоже), что чревато простоями и пересеиванием. У меня такое случалось раз в 3 дня где-то. Возможно причина была в старой версии блокчейна (сейчас уже перешел на 1.1.4) или еще в чем-то, но если проц загружен не на максималку, то проблем не наблюдалось. Тут уж каждый сам для себя решает.
2) Уменьшение бакетов (BUCKETS) в два раза практически не дает какого-либо выигрыша в скорости, но (. ) уменьшает кол-во операций перезаписи на вашем SSD/NVMe в 2 раза (более подробно в пункте «Немного про опыт других фермеров»)! Т.е. при уменьшении бакетов ваш SSD/NVMe будет жить дольше (хотя бы в первой фазе), но и объема памяти при этом нужно больше. В теории можно подобрать кол-во бакетов ровно столько, сколько памяти RAM (или около того), дабы сократить чрезмерную перезапись. При этом можно сделать адекватный файл подкачки, чтобы Windows жила нормальной жизни (за владельцев Mac/Linux ничего не могу сказать), но это сократит ресурс SSD под винду.
3) Скоростная память (с низкими задержками) очень важна и особенно важна, когда кол-во бакетов меньше стандартных 128. В первой фазе все вычисления производятся в оперативной памяти. Тут довольно простая арифметика. Чем выше скорость, тем больше данных можно записать в память или считать из памяти за единицу времени. Чем ниже тайминги (задержки), тем меньше процессору нужно времени, чтобы обращаться к памяти.
4) Увеличение частоты процессора дает прирост. Правда в моем случае он весьма скромный — всего лишь около 2%-3%. Возможно это совокупоность разгона частоты процессора и памяти, ну или же просто стабильная погрешность (нет) после переразгрузки рига. Проверить на другом железе, к сожалению, нет возможности. Скорее всего именно поэтому у многих обзорщиков на современных ПК (вроде AMD Ryzen 5900x) не удается получить хорошей скорости плоттинга при увеличении потоков, т.к. при увеличении потоков тот же Ryzen, например, сбрасывает частоты кардинально, дабы уложиться в потребление и теплопакет. Плюс никто из обзощиков не указывает при какой частоте и при каких таймингах работает у них память. Что ж, можно залочить на определенном урове разгон процессора, сделать адекватное охлаждение, увеличить допустимое потребление процессором, купить шустрее память и т.д.
5) Ну и естественно пункты 3 и 4 не будут играть большой роли (именно в многопоточном плоттинге), если ваш SSD/NVMe также не вытягивает по скорости. В моей конфигурации какой-нибудь диск с громким названием вроде EVO 980 Pro Mega Super FX будет просто бесполезен, зато он точно не будет узким местом.
6) Внимательно относитесь к единицам измерения chia. Т.е. наши привычные KB, MB и GB — это не то же самое, что и KiB, MiB и GiB. Например, 3250MiB = 3407.872MB, а 6500MiB = 6815.744MB. В GUI-программе chia мы указываем именно MiB! Вот тут есть калькулятор: https://www.gbmb.org/mib-to-mb
7) Ну и тут все как с майнингом на видеокартах. Сначала долго подбираешь оптимальные комплектующие и оптимальные настройки, а потом это все работает на тебя. Единственный момент — гораздо больше узлов для настройки.
Немного про опыт других фермеров
Вот тут https://thechiafarmer.com/2021/04/21/optimizing-plotters-in-windows один фермер рассказывает, что он оптимизировал свою систему (Ryzen 5900x 12c/24t, 32GB RAM . MHz, 6x2TB NVMe 3200MBs/2900MBs) таким образом, что она засеивает 12 плотов каждые 8 часов. В двух словах: на такой системе он засеивает параллельно 12 участков k=32 в 2 потока при 128 бакетах, при этом выделяет каждому участку всего (. ) 2400MB (2288.82MiB) памяти. И все ок. Тут есть одна хитрость: если не хватает памяти для US (uniform sort), то выполняется QS (quick sort). QS выполняется дольше, чем US, поэтому некоторые операции (и фазы в итоге) могут длиться несколько дольше. Если же памяти не хватает и для QS, то плоттить вообще не получится! У этого фермера с таким подходом все выполняется с QS, но дольше (хотя за счет хорошего проца и памяти разница не сильно велика). В теории он для QS мог оставить только 1625MiB (в реальности нужно где-то 1700MiB-1750MiB), т.к. максимальное значение US при 128 бакетах ровно 3250MiB, а QS, в свою очередь, ровно 1625MiB (ровно в 2 раза меньше). Т.е. у каждого из нас есть еще пространство для оптимизаций. И небольшое отступление — иногда процесс chia сам выполняет принудительно QS (видимо по свом каким-то алгоритмам), но этого не стоит пугаться, т.к. потребление памяти в этот момент обычно минимальное. И да — выводы про бакеты были взяты у этого фермера По крайней мере, он заявлял, что при 256 бакетах нагрузка операций чтения/записи на диски возрастает значительно ¯\_(ツ)_/¯
Важный момент: если вы в chia программе указали 3250MiB (например, для плоттинга при 128 бакетах), то реально выделено будет чуть меньше (видимо часть памяти резервируется еще под что-то) и сортировка все равно будет вывалиться в QS
Немного про отложенное засеивание
Можно поставить на поток (например, 50 плотов подряд) даже на малых объемах SSD и эффективность будет гораздо выше. Самое главное — это определить длину первой фазы (т.к. именно она работает в многопотоке и потребляет больше всего процессорного времени и памяти, а остальное время уходит на работу с дисками). Т.е. берем обычное засеивание одного плота в 2 потока (в идеале смотрим еще и большее кол-во потоков), прогоняем цикл и смотрим логи. Например, в моем случае для 2 потоков первая фаза (Time for phase 1) длится около 15700 секунд (261 минут). Весь же процесс занимает (Total time) около 32800 секунд (547 минут). Т.е. имея в своем распоряжении 1 TB можно спокойно ставить засеивание 30 плотов с отложенным запуском на 265 минут (т.е. лучше накинуть 3-5 минут сверху от завершения первой фазы) и засеивание будет происходит равномерно, как на конвеере. Не забываем про QS и US, иначе время может быть больше. В Windows PowerShell, по всей видимости, можно тоже смело ставить отложенное засеивание.
Самым же эффективным лично у меня оказалось засеивание 1 плота в 4 потока при 64 бакетах и выделением 6750 MiB (хотя нужно было указать чуть больше, чтобы сортировка не вывалилась в QS). Но, к сожалению, отложено плоттить таким образом не получится, т.к. первая фаза занимает 160 минут, а общее время выполнения 375 минут + не остается провессорного пространства… 1 плот в 3 потока тоже ок (173 минуты под первую фазу и общее время 389 минут) + 1 поток всегда свободен, но и тут плоттить не получится нормально. Т.е. у меня можно нормально отложено сеять только 1 плот в 2 потока (сейчас как раз проверяю этот момент).
Немного про максимальное засеивание HDD
Вот тут https://plot-plan.chia.foxypool.io есть калькулятор максимального засеивания. Т.е. указываете свой реальный объем диска и он показывает, как эффективно (т.е. каким кол-вом k32, k33 и k34) с максимально занятым местом можно его засеять. В моем случае HDD носит гордое значение 8TB, но реально в Windows доступно 7.27TB (ну знаете все эти 1TB=1000GB, хотя реально 1TB=1024GB), поэтому следует указать реальное значение объема. Соответственно, программка предлагает мне засеять 40*k32 и 13*k33 с эффективностью использования дискового пространства в 99.98% (. ) или же 66*k32 с эффективностью 98.81% (тоже неплохо).
Немного про синхронизацию
Когда только запустил мастер-ноду синхронизация шла около суток (+/-). Естественно, я задался вопросом, а почему так. Изначально грешил на WI-FI свисток, по которому подключен риг к сети, но все оказалось одновременно и просто, и сложно. Как оказалось, необходимо адекватное кол-во подключений к нодам пиров (peers), интродюсеров (introducers) и синкноды (syncnodes). Итак, что нужно делать, если запускаешь ноду в первый раз (да и вообще после перезапуска ПК или самой ноды тоже полезно)? Первое — это необходимо добавить хотя бы одну ноду интродюсера. Второе — добавить синкноду (можно даже первым пунктом). Третье — это вручную добавить публичные и актуальные ноды пиров. Понятное дело, что главный процесс сам перебирает ноды и пытается к ним подключиться, но делает это очень долго. Поэтому лучше слегка помочь. В графической программе CHIA жмем кнопку «CONNECT TO OTHER PEERS» на вкладке «FULL NODE» (самая верхняя вкладка) и добавляем ручками по списку. Лично я сразу добавил европейскую ноду интродюсера, синкноду и пяток пиров.
Список нод интродюсеров тут: https://github.com/Chia-Network/chi…sues—Port-8444#speed-up-connecting-to-nodes
Список нод для синхронизации: https://github.com/Chia-Network/chia-blockchain/issues/3732
Список актуальных нод пиров тут (обновляется каждый час): https://chia.keva.app
Адрес синкноды тут (возможно есть и другие адреса): https://chiafactory.com/guides/cant-sync-chia-node
Важный момент: иногда добавление пиров вручную происходит не с первого и даже не со второго раза, поэтому лучше сделать несколько попыток подключения к каждому пиру.
Установка часового пояса
Если сделано все возможное, но синхронизация не идет, то необходимо проверить корректно ли установлен ваш часовой пояс и время. Если некорректно, то выставлен как нужно и перезапускаем главный процесс chia.
Открытие порта 8444
Важным пунктом является открытие порта 8444. Изначально CHIA — это распределенная сеть (ака торрент). Общественные ноды, к которым вы подключаетесь, это ноды таких же работяг, как и вы. В свою очередь вы, как участник, тоже должны раздать свою ноду коллегам по цеху и тогда все будет ок. В оригинальном описании сказано, что это якобы поможет быстрее устанавливать соединения пиров с вами, а вы свою очередь быстрее присоединитесь как к самим пирам, так и к пирам пиров и т.д. (вот такой вот каламбур). Подробнее тут: https://github.com/Chia-Network/chia-blockchain/wiki/Resolving-Sync-Issues—Port-8444
Так что не забудьте открыть доступ на уровне роутера. У меня TP-Link и к нему есть куча инструкций и понятных описаний. Если же на уровне роутера все открыто, но доступа нет, то смело звоните/пишите провайдеру. Если провайдер не может открыть нужный порт, то можно попытаться воспользоваться услугами другого провайдера. У моего провайдера порт закрыт, а чтобы открыть нужен выделенный IP-адрес, который стоит сколько-то денег в месяц
Проверить доступность порта можно тут https://portchecker.co и тут https://2ip.ru/check-port/?port=8444
Если понравился пост и ждешь дальнейших исследований, то можно и отблагодарить:
XCH: xch1rrctcts0njzd6unpmtc5pe27k58y36w5pz45lldk0vyy0xle2zvst4jwly
ETH: 0x41e4623382bd23ef92c0a7f00745d9b7d1838613
ETC: 0x25f4b6298b6aabdf24d584b572bdb21d75181c85
BTC: 1JpkuqXsE9keXGPW8CoCdXvzCUp45UBzS5
Буду очень признателен!
Источник
Синхронизация chia долгая
Причина. По которой пользователи выбирают core wallet, заключается в том, чтобы запустить полный узел. Поддерживать сеть и дополнительно иметь полный контроль над своими средствами. Поскольку он обеспечивает лучшую конфиденциальность и безопасность. С другой стороны, почему пользователи не выбирают QT wallet, в основном из-за проблем с синхронизацией кошелька. Прежде чем мы сможем использовать этот кошелек, нам нужно дождаться его полной синхронизации с сетью. Если он не синхронизирован, вы не сможете отправлять или получать монеты. И он не будет показывать вам самые последние транзакции.
Одной из наиболее распространенных проблем, с которой сталкиваются пользователи core wallet. Является “Рассинхронизация кошелька”.
Либо процесс синхронизации кошелька будет медленнее. Либо он застрянет в определенном блоке и вообще не будет синхронизироваться. Так почему же ваш кошелек не синхронизируется или работает медленно и что делать. Если он не синхронизирует / не обрабатывает блокчейн?
Синхронизация кошелька
Bitcoin, Dash, Litecoin и каждый Альткоин имеет свой основной кошелек. В то время как внешний вид каждого кошелька может немного отличаться, его функциональные возможности остаются прежними.
Всякий раз, когда вы открываете свой QT кошелек, первое. Что делает ваш кошелек: он начинает сканировать все последние блоки на блокчейне и пытается догнать сеть. Независимо от того. Является ли ваш кошелек новой установкой или вы используете его в течение длительного времени; если он не обновлен. Он начнет загрузку блокчейна.
Ваш кошелек загружает и проверяет блоки, инициируя связь с другими узлами сети. Из-за этого процесс синхронизации обычно будет происходить медленнее. Во время этого процесса ваша недавняя транзакция может быть не видна. И поэтому баланс вашего кошелька может быть неправильным.
Также попытки потратить монеты, на которые влияют еще не отображенные транзакции, не будут приняты сетью. Поэтому все, что вам нужно сделать, это дождаться полной синхронизации. Пока он не покажет символ тика в правом нижнем углу вашего кошелька.
После завершения синхронизации информация, отображаемая на вашем кошельке, будет исправлена. Теперь вопрос в том, действительно ли ваш кошелек синхронизируется, и если да, то сколько времени это займет?
Это действительно синхронизация?
Откройте свой кошелек, и внизу вы увидите зеленый индикатор выполнения, который покажет состояние синхронизации.
Сначала он показывает “Обработка блоков на диске”, затем он изменится на “Синхронизация с сетью”, что означает. Что он начал загрузку блокчейна. В зависимости от того, когда вы установили и когда ранее открыли свой кошелек, статус будет либо отстать на несколько часов. Либо на несколько недель. Особенно если вы только что установили Bitcoin core, то этот статус будет отставать на годы.
Теперь сколько времени потребуется для синхронизации зависит от следующих факторов:
- Общее количество блоков, оставшихся для обработки
- Количество активных подключений к сети Биткойн и
- Ваша скорость Интернета.
Если вы ищете решение для ускорения синхронизации вашего кошелька, то этот пост не для вас.
Для чего мы предлагаем вам прочитать это руководство по Bitcoin Bootstratp.dat. Этот пост предназначен для пользователей, которые сталкиваются с проблемами синхронизации своих кошельков.
Прежде чем мы перейдем к руководству по устранению неполадок, нам нужно сначала выяснить. Действительно ли ваш кошелек синхронизируется или он действительно застрял?
Наведите курсор на индикатор выполнения или нажмите на значок обновления. И он покажет состояние обработанных блоков и последних полученных блоков.
Просто взглянув на статус загрузки блокчейна, вы узнаете, действительно ли ваш кошелек синхронизируется или застрял. Это показывает что-то вроде этого:
Catching up .
Downloaded 683912 blocks of transaction history.
Last received block was generated 6 days ago.
Если он показывает какой-то прогресс, то он синхронизируется, и будьте терпеливы, пока он это делает. Но если количество обработанных блоков не меняется в течение длительного периода времени, то ваш кошелек застрял. Если это ваш случай, то вот несколько способов устранения неполадок с несинхронизированным qt-кошельком.
Кошелек не синхронизируется – Устранение неполадок с несинхронизированным QT-кошельком
Так почему же ваш кошелек не синхронизируется? Вот несколько распространенных причин:
- Проблемы с широкополосной связью и брандмауэром
- Нет активного подключения к сети монет
- Ваши блокчейн-данные могут быть повреждены и
- Ваш бумажник может быть старым и висеть не на той цепочке.
Теперь, прежде чем вносить какие-либо изменения, первое. Что мы рекомендуем вам сделать. — это сделать резервную копию кошелька.
Проблемы с подключением к Интернету и брандмауэром
Сначала проверьте. Есть ли у вашего компьютера исправное сетевое подключение.
Если с Интернетом все в порядке, проверьте, не блокирует ли ваш брандмауэр или антивирус работу кошелька. Как мы уже говорили. Ваш кошелек должен соединиться с другими узлами. Чтобы загрузить блокчейн. Поэтому убедитесь, что ваш брандмауэр или сеть не блокирует входящие и исходящие соединения ваших кошельков. Обычно это должно устранить проблему, а если нет, то проверьте активное подключение вашего кошелька.
Проверьте подключение кошелька и добавьте узлы
Откройте свой кошелек. И в правом нижнем углу вы увидите значок сигнала. Наведите курсор на вертикальные полосы и проверьте общее количество активных подключений к сети.
Если связь прочная. Переходите к следующему шагу. Если активных подключений ноль или у него меньше 4 или 5 активных подключений, то вам нужно добавить узлы в свой кошелек.
У нас есть руководство для начинающих по добавлению узлов кошелька, которое мы предлагаем вам пройти. Вы можете добавлять узлы либо из окна консоли вашего кошелька, либо отредактировав конфигурационный файл. Как только это будет сделано. Перезагрузите кошелек. Теперь общее количество активных подключений должно быть больше, чем раньше, и ваш кошелек должен начать синхронизацию. Если это все еще не так. То у вас может быть поврежден блокчейн.
Поврежденный блокчейн
Лучший способ получить файлы вашего кошелька поврежденными-это заставить ваш кошелек выключиться во время его работы. Есть также много других случаев. Когда ваш кошелек или загруженный блокчейн могут быть повреждены. Это редкий случай. И если он будет поврежден. То ваш кошелек больше не будет синхронизироваться. В таком случае вам нужно отправиться в папку wallet core и, кроме wallet.dat, удалить все остальные файлы и папки. Но прежде чем вы это сделаете. Закройте свой кошелек и снова не забудьте сделать резервную копию файла wallet.dat После удаления файлов перезагрузите кошелек. И он должен начать синхронизацию с сетью.
Обновите и переиндексируйте свой кошелек
Еще одна причина. По которой ваш кошелек не синхронизируется. Заключается в том. Что он может находиться на неправильной вилке цепочки. Криптовалюта. Которую вы используете, возможно. Подверглась жесткому форку. И вы можете не знать об этом. В результате ваш старый кошелек может оказаться не на той цепочке. Поэтому сначала проверьте репозиторий GitHub на наличие последней версии и обновите кошелек.
После обновления проверьте количество блоков вашего кошелька и сравните его с текущим количеством блоков в block explorer. Если это далеко за пределами. То это на неправильной цепи. Чтобы исправить это. Закройте свой кошелек. А затем запустите его с помощью команды-reindex. Этот процесс займет некоторое время. Так как он запускает процесс синхронизации с самого начала.
Надеюсь, это исправит проблемы с синхронизацией вашего кошелька. Даже после выполнения этого руководства по устранению неполадок, если ваш кошелек не синхронизируется, пожалуйста. Сообщите нам об этой проблеме более подробно.
Источник