CRC (циклический избыточный код) — это метод проверки целостности данных. В майнинге CRC встречается в нескольких местах: при обмене контроллера с хэшбордами, валидации промежуточных сообщений чипов и фиксации корректности результатов (nonce). Когда в логах растут «CRC/nonce CRC», это сигнал, что где-то в цепочке «контроллер → шины → плата → чипы → датчики» нарушается стабильность передачи или инициализации.
Коротко по CRC
- CRC = контроль целостности. Если «nonce CRC» растёт, данные искажаются по пути: питание, шлейфы, помехи, перегрев, неверные частоты.
- Где смотреть: kernel/current/history логи майнера — инициализация плат, обмены по I2C/SPI/UART, сообщения о CRC/nonce CRC.
- Что делать сначала: вернуть сток-профиль, проверить PSU, охладить, заменить шлейфы/порты, изолировать «проблемную» плату.
- Когда ремонт: если в стоке и на заведомо исправной инфраструктуре счётчик CRC растёт стабильно — тест хэшборда на стенде.
Зачем CRC в майнинге
CRC используется для быстрой проверки, что сообщения не искажены шумом, просадкой питания или ошибкой передачи. Это не криптографическая подпись, а лёгкая математическая проверка. В ASIC-майнере CRC помогает:
- при инициализации плат: читаются «паспорта»/калибровки (см. EEPROM), контроллер убеждается, что ответ корректен;
- при передаче команд и статусов между контроллером и хэшбордом;
- при приёме результатов от чипов: если результат совпал по CRC, сообщение принято; если нет — записывается ошибка, счётчик растёт.
Где встречается CRC и «nonce CRC» в логах
Формулировки разнятся по брендам и прошивкам, но смысл похож:
- «nonce CRC error», «CRC counter is high», «CRC mismatch» — растёт показатель ошибок при приёме/валидации nonce.
- «EEPROM/CRC fail» — ошибки целостности при чтении данных с платы (на этапе старта).
- «chain X CRC too high» — аномально высокий уровень ошибок на конкретной плате/цепочке.
Важно: единичные ошибки возможны даже в норме (электромагнитные помехи никто не отменял). Проблема — когда счётчик растёт быстро и параллельно падает стабильность/хешрейт.
Почему растёт nonce CRC: главные причины
- Питание (PSU): просадки и «пила» по напряжению/току. При пиках нагрузки CRC может взлетать пачками. См. PSU.
- Перегрев/перепады температуры: горячие зоны вокруг силовых элементов и контроллеров, «пульсирующие» профили вентиляторов.
- Шлейфы/контакты: окисление, микротрещины, неплотные коннекторы, натяжение кабеля.
- Разгон/частоты: чрезмерные частоты и напряжения без запаса по охлаждению.
- Помехи/заземление: шумная сеть, земляные петли, неправильная коммутация.
- Повреждённые/несовместимые калибровки: «битые» данные платы, несоответствие ревизии (часто идёт в связке с EEPROM). См. EEPROM.
- Сбой датчиков: неверные показания приводят к агрессивным/нестабильным режимам вентиляторов и частот. См. NTC-термистор и PWM вентилятора.
Как читать сообщения про CRC в журналах
- Смотрите инициализацию: именно на старте проявляются «тонкие места» — читается «паспорт» платы, проверяются цепочки.
- Отслеживайте время и условия: растёт ли CRC при росте температуры или в момент резкого увеличения хешрейта.
- Сопоставляйте с другими симптомами: «chain X missing», «find 0 asic», «fan/thermal faults», падение частоты/хешрейта.
- Идентифицируйте конкретную плату/цепочку: на какой из плат счётчик ползёт быстрее — изолируйте её для проверки.
Пошаговая диагностика CRC (без пайки)
1. Вернуть сток-профиль: отключить разгон/касты, включить рекомендуемые частоты/напряжения. 2. Питание: проверить линию/кабели/контакты, по возможности заменить на другой блок питания той же мощности (или выше по спецификации). 3. Охлаждение: очистить пыль, проверить обороты, сопоставить температуру «до/после»; при возможности протестировать в более прохладной комнате. 4. Шлейфы/порты: переставить/заменить шлейфы между контроллером и платами, осмотреть коннекторы, протестировать альтернативные порты. 5. Изоляция: запуск по одной плате, меняя слоты; фиксируем, с какой платой CRC растёт быстрее всего. 6. Стабильное питание при пике: смоделировать нагрузку, наблюдать, не «сыпется» ли CRC именно на переходах нагрузок. 7. Проверка калибровок/совместимости: убедиться, что прошивка/профиль соответствует ревизии платы; исключить «чужие» дампы. 8. Повторяемость на другом стенде: если возможно, проверить проблемную плату с другим PSU/контроллером. 9. Решение: если в стоке и на другом PSU/шлейфах рост CRC сохраняется — стендовая диагностика хэшборда.
Таблица «симптом → причина → действие»
| Симптом в логах | Вероятная причина | Что сделать сначала | Если не помогло |
|---|---|---|---|
| nonce CRC error / CRC counter high | Питание «пилит», перегрев, разгон, шлейфы/помехи | Сток-профиль, другой PSU, чистка и охлаждение, замена шлейфов | Изоляция платы, проверка на другом стенде, ремонт хэшборда |
| EEPROM/CRC fail при старте | «Битые» калибровки, несоответствие ревизии, проблемы шины | Сток, проверка шлейфов/портов, сверка ревизий/прошивок | Восстановление по инструкции производителя, сервисная диагностика |
| chain X CRC too high | Локальная проблема цепочки (плата/шина/контакт) | Поменять местами платы/шлейфы, найти, за кем следует симптом | Ремонт конкретной платы/соединения |
| CRC всплески при росте температуры | Охлаждение недостаточно, вентиляторы не держат режим | Чистка, заменить вентиляторы, отстроить PWM/пороговые настройки | Ревизия воздухообмена/каналов, снижение частоты/напряжения |
| CRC всплески при скачках хешрейта | Быстрые переходы нагрузок и просадки по PSU | Проверить кабели/контакты, запас мощности, равномерность линий | Замена/апгрейд PSU, переразводка питания |
Как уменьшить CRC: практический чек-лист
- Сток и чистый старт: любые изменения — после возвращения к базовому профилю.
- Питание с запасом: блок питания в хорошем состоянии, контакты без нагара, кабели не перегретые.
- Охлаждение: чистые радиаторы, адекватные обороты вентиляторов, ровный температурный режим без «пилы».
- Шлейфы: без перегибов, плотная посадка, коннекторы без окислов; периодическая профилактическая замена.
- Заземление и коммутация: избегаем петель и «шумных» соседей по линии; минимизируем помехи.
- Совместимость прошивки: использовать рекомендованные версии для конкретной ревизии платы; не мешать разные калибровки.
- Нагрузочные тесты: проверка CRC при разных сценариях — холодный старт, длительная нагрузка, пиковые переходы.
CRC, контрольная сумма и ECC: в чём разница
- CRC — быстрая проверка целостности, хорошо ловит «случайные» ошибки в потоке данных.
- Контрольная сумма — упрощённая проверка, как правило менее надёжна (зависит от реализации).
- ECC — код с исправлением ошибок (например, в памяти), позволяет не только обнаружить, но и исправить часть ошибок.
В майнере применяются лёгкие проверки (CRC/контрольные суммы) там, где критична скорость и низкие накладные расходы.
Частые вопросы (FAQ)
Насколько много «nonce CRC» — это проблема? Единичные ошибки допустимы, особенно на старте и при пиковых нагрузках. Повод для действий — когда счётчик растёт быстро, а параллельно падает стабильность/хешрейт.
Может ли разгон «сам по себе» поднять CRC? Да. Повышенные частоты/напряжения без запаса по охлаждению/питанию увеличивают вероятность ошибок передачи и проверки данных.
Если поменять PSU, а CRC осталось — это точно плата? Часто да, особенно если изоляция показывает, что симптом «следует» за конкретной платой. Но проверьте ещё шлейфы и коннекторы.
CRC связано с EEPROM? Непрямо. «Битые» калибровки в EEPROM ухудшают режимы платы и могут привести к росту ошибок CRC, но сама проверка CRC — про целостность сообщений, а не про хранение данных.
Можно ли «вылечить прошивкой» рост CRC? Если причина — неверные профили/калибровки, иногда помогает восстановление. Если аппаратная — прошивка не исправит.
Примеры ситуаций и разбор
- После чистки и смены помещения CRC упал: улучшилось охлаждение и снизились помехи — классический кейс влияния среды.
- CRC растёт только на одной цепочке: изолируйте её — вероятность аппаратной проблемы именно на этой плате высока.
- CRC всплески на пиках хешрейта: проверьте питание и кабели; равномерность распределения нагрузки по линиям.
Профилактика на будущее
- Плановая чистка и контроль температуры, особенно в пыльных помещениях.
- Периодическая ревизия кабелей/коннекторов и точек нагрева.
- Журнал версий прошивок и ревизий плат — фиксируйте изменения, чтобы отслеживать, после чего пошли ошибки.
- Тесты при разных режимах — это помогает поймать «редкие» условия, при которых начинает расти CRC.
