Майнинг в программе ethminer на поздних эпохах DAG в операционной системе Linux
В связи с постоянным увеличением размера данных DAG а алгоритме Ethash, который используется при вычислениях в Ethereum-подобных блокчейнах, при приближении DAG к 4 Гб отвалятся от майнинга монет ETC и ETH видеокарты производства компании AMD.
Это коснется не только четырехгиговых, но и других GPU с большим объемом памяти из-за проблем в реализации многопотоковых вычислений в технологии OpenCL и официальных драйверах AMD.
Разработчики майнера с открытым исходным кодом ethminer уже решили проблему большого DAG путем разбиения его на части. Это отличный майнер без комиссии, поддерживающий майнинг с устройствами, поддерживающими технологии OpenCL (для видеокарт AMD) и Nvidia CUDA, имеющий правдивое отображение статистики и ряд необходимых для майнинга функций, включая поддержку failover-пулов.
Благодаря отсутствию комиссии (devfee), использование последних версий ethminer оправданно не только с точки зрения поддержки больших DAG, но и в системах со старыми видеокартами AMD.
Например, Radeon R9 290/390 с 4-8 гигабайтами памяти, которые уже не являются приоритетом для разработчиков майнеров, до сих пор способны неплохо майнить на алгоритме Ethash (подробнее в статье «Как добиться от видеокарт Radeon R9 290/390 хешрейта 29-30 Mh/s на Ethash»). Использование технологии DAG-split в майнере ethminer позволяет увеличить продолжительности майнинга GPU с 4 Gb на Ethash algo на 3-3,5 месяцев!
Для того чтобы максимально использовать возможности этого открытого майнера, лучше самостоятельно провести его компиляцию, а также произвести сборку ядра для использующихся видеокарт. Для обычных пользователей это сделать довольно сложно, поэтому готовый Ethminer для Linux (Ubuntu разных версий) проще скачать с репозитория hiveos:
Такой, немного странный процесс получения майнера, связан с тем, что в официальном разделе ethminer на Github нет выложенной (скомпилированной) последней версии.
Для майнинга в программе ethminer в (x)ubuntu можно использовать такой скрипт:
#!/bin/sh export GPU_FORCE_64BIT_PTR=0 export GPU_MAX_HEAP_SIZE=100 export GPU_USE_SYNC_OBJECTS=1 export GPU_MAX_ALLOC_PERCENT=100 export GPU_SINGLE_ALLOC_PERCENT=100 sudo ./ethminer --farm-recheck 200 -G -P stratum+tcp://кошелек.воркер@eu1.ethermine.org:4444
Скриншот майнера ethminer при майнинге Ethereum на трех видеокартах AMD Radeon R9 290 (хешрейт 28-29 mh/s на 336-й эпохе, DAG равен 3,68 Гб):
Если добавить в скрипт параметр
--api-bind 192.168.2.46:3333
где 192.168.2.46 – локальный адрес рига,
то можно мониторить работу майнера по сети в любом браузере, если создать html-файл с таким содержимым:
<html> <body bgcolor=gray> <table border=0> <tr> <td> <iframe src="http://192.168.2.46:3333" width="950px" height="590px"> </iframe> </td> </tr> </table> </body> </html>
Скриншот окна мониторинга майнинга в программе ethminer в браузере по локальной сети:
Майнинг в программе ethminer дает на Ethash хешрейт, сравнимый с другими майнерами, но без комиссии (Phoenix – 0.65%, Claymore – 1%, Teamredminer – 0,75-1%, Nbminer – 1%).
Периодические спады хешрейта при использовании Phoenix Miner, вызванные работой майнера на разработчика (0,65%, 35 секунд каждые 90 минут):
Использование ethminer позволяет сгладить график хешрейта за счет уменьшения простоев, вызванных вшитой в закрытые майнеры devfee.
График хешрейта в майнере ethminer немного более гладкий по сравнению с Phoenix Miner при одинаковой скорости майнинга:
Кроме описанных преимуществ, ethminer дает возможность максимально долго майнить на любых картах AMD, используя всю доступную видеопамять. Ее объем можно увидеть с помощью команды:
./ethminer --list-devices
В ethminer версий старше 0.19.0+ доступна практически вся имеющаяся видеопамять, хотя отображение в консоли может быть и некорректным.
Например, у R9 290 с 4 Gb памяти доступны 3,98 гигабайт, хотя в терминале показано 0 байт доступной памяти (доступна максимальная эпоха №374 с DAG 3,98 Гб).
Скриншот доступной памяти у R9 290 в версии ethminer 0.19.0+nhfix (последний релиз в дистрибутиве hiveos):
В старых версиях ethminer на этих же картах доступно всего 3,74 гигабайт памяти (максимальная доступная эпоха DAG – примерно 350).
Скриншот доступной памяти в версии ethminer 0.19.0-alpha (последний официальный скомпилированный релиз):
Новый ethminer позволяет использовать четырехгигабайтные карты на 24 эпохи дольше – вплоть до 374-й epoch, а 8-гигабайтные – не только до 380-й епохи, но и еще несколько лет до полного заполнения их видеопамяти.
Проверка максимально доступной эпохи при майнинге на Ethash
Для запуска бенчмарка на заданной эпохе DAG в ethminer нужно использовать команду:
./ethminer -M 374
где число 374 – номер тестирующейся эпохи для определенного размера ДАГ
или
./ethminer -M 11220000
где число 11220000 – номер тестирующегося блока (в данном случае соответствует 374-й эпохе).
Скриншот бенчмарка ethminer версии 0.19.0+nhfix на эпохе 374 (размер DAG 3,98 Гб):
Несмотря на отсутствие ядра ethash_hawaii_lws128, майнер продолжает майнить при наличии доступной памяти. Это сообщение об ошибке появляется только в начале работы майнера, затем он успешно продолжает работу и без недостающего kernel.
Старые версии ethminer (до 0.19.0-alpha включительно) на эпохе 374 (блок 11220000) не работают, при запуске бенчмарка командой ethminer -M 11220000 возникает ошибка Creating DAG buffer failed: clCreateBuffer: CL_INVALID_BUFFER_SIZE (-61):
Как видно из скриншота, майнер пытается создать DAG-буфер, но возникает ошибка OpenCL, которая обходится в новых версиях ethminer путем разделения DAG-файла.
В новой версии программы ethminer 0.19.0+nhfix бенчмарк на блоке 11220000 (та же 374-я эпоха) идет успешно, остается еще 7,27 мегабайт свободной видеопамяти (для каждой эпохи нужно 8 Мб):
Исходя из вышеизложенного, можно сделать следующие выводы:
- в программе ethminer 0.19.0+nhfix в Linux-подобных системах можно майнить на видеокартах AMD с 4 ГБ памяти на алгоритме Ethash на эпохах до 374-й эпохи включительно. Ориентировочно можно будет добывать монеты ETC – до 14.09.2020, ETH – до 10.11.2020. Это – на 3,5 месяцев дольше, чем в старых майнерах, не поддерживающих технологию split-DAG;
- в старых версиях ethminer (и других майнерах без разбиения DAG) можно будет майнить до примерно 350-й эпохи (ETC – до начала июня 2020, ETH – середина июля 2020);
- видеокарты AMD с памятью объемом 8 гигабайт в новых майнерах с технологией DAG-split будут майнить еще много лет до полного заполнения их памяти;
- в операционной системе Windows выигрыш от использования технологии DAG-split на картах с 4 Гб памяти нивелируется ограничениями драйверов/ОС, излишне резервирующими видеопамять.
P.S. Phoenix Miner 5.0b+ добавил костыль, позволяющий использовать всю доступную память на четырехгиговых картах AMD. Для активации нужно добавить в батник команду:
-dagrestart 2
3 комментария
Павел
Спасибо за Вашу работу. Всегда читаю с удовольствием.
cryptoprofi
Спасибо за Вашу оценку! Стараемся писать о том, что интересно самим, а не для индексирования ботами/поисковыми машинами.
Sergey
DAG-split можно уже не использовать. В последнем нашем релизе RaveOS мы сняли это ограничение и теперь все майнеры могут работать…