Майнинг,  Статьи

Компиляция майнера XMRig для ОС Windows

В статье «Настройка и компиляция майнеров для процессора в Ubuntu» рассматривались вопросы, связанные с компиляцией программ для майнинга на процессорах в ОС типа Ubuntu.

Операционная система Windows является наиболее распространенной (по крайней мере, до настоящего времени), поэтому вопрос компиляции майнера именно в ней является более актуальным. В то же время, в силу некоторых особенностей этой оси, она не очень дружественна пользователю, мало разбирающемуся в программировании и вопросах компиляции.

Для компиляции майнера под Windows можно использовать Майкрософт Visual Studio и свободно распространяемый пакет MSYS2.

Разработчики XMRig очень кратко описали процесс компиляции своего майнера на странице Windows Build, но представленной там информации недостаточно для неподготовленного пользователя (продвинутого майнера) для самостоятельной сборки и компиляции исполняемого фала майнера.

В данной статье рассматривается последовательность действий по самостоятельной компиляции исполняемого файла майнера XMRig в ОС Виндовс с помощью Microsoft Visual Studio и MSYS2.

Статья рассчитана на пользователей компьютера/майнеров, не являющихся программистами/разработчиками.

Установка среды разработки для компиляции майнера XMRig

Для компиляции исполняемой программы из исходного кода на C и С++ на обычном компьютере нужно иметь соответствующее программное окружение — подходящий дистрибутив (платформу) для разработчиков под Windows и Linux. Очень удобные пакеты для этих целей – это платформа MSYS2 и/или Microsoft Visual Studio.

Для использования Visual Studio достаточно скачать ее свободно распространяемую версию Community со страницы сайта Майкрософт.

MSYS2 представляет собой интерпретацию Linux-овской командной оболочки Bourne Shell (sh), заточенную для операционной системы Windows. MSYS2 заменяет штатный командный интерпретатор cmd.exe от компании Microsoft, встроенный в каждую ее ось.

Кроме оболочек MSYS2/Microsoft Visual Studio, для разработки и компиляции программных приложений нужно иметь подходящую среду: компиляторы (например, GCC и/или MSVC), библиотеки (GTK+ или Qt5) и прочие инструменты для программирования.

Также нужно инсталлировать кроссплатформенную утилиту для сборки программ CMake, скачав ее инсталлятор для Windows (win64-x64 Installer) со страницы загрузок.

Установка Microsoft Visual Studio

При установке Visual Studio нужно выбрать инструменты разработки классических приложений на C++ и MSVC версий 141 и 142 (средства сборки на C++ для VS2017 и 2019).

Установка MSVC 141, 142 производится через правую колонку инсталлятора Visual Studio (меню сведений об установке):

При инсталляции только VS2019 у автора статьи успешно скомпилировать XMRig версии 5.1.0 не удалось.

Компилятор VS2019 не мог создать без ошибок исполняемого файла из сборки, в итоге удачную компиляцию XMRig получилось сделать только в MSYS2 при установленных VS2017 и 2019.

Скачивание и установка набора утилит CMake

Скачивание инсталлятора Симейк производится со страницы, где для установки выбирают файл инсталлятора для 64-разрядной версии Windows (файл cmake-*-win64-x64.msi):

При установке CMake нужно добавить эту утилиту в system Path для текущего юзера (или для всех пользователей):

Установка командного интерпретатора MSYS2?

Установка MSYS2 производится с помощью инсталлятора, который скачивается на сайте https://www.msys2.org/.

Для инсталляции MSYS2 на 64-разрядную систему Виндовс используется файл msys2-x86_64-*.exe. Скриншот части страницы сайта https://www.msys2.org/ с загрузочными файлами:

При запуске исполняемого файла установки появляется окно приветствия, в котором нужно нажать кнопку далее:

Затем установщик запросит путь для записи файлов программы MSYS2:

Также будет предложено подтвердить/изменить название папки для ярлыков:

Затем начнется установка пакета MSYS2:

По окончанию инсталляции будет предложен запуск пакета, с чем нужно согласиться и кликнуть на ее завершение, оставив активной соответствующую галочку:

Затем производится обновление и установка необходимых пакетов для MSYS2 командой:

pacman –Syu

После скачивания пакетов нужно подтвердить установку, нажав y и ввод:

По окончанию установки пакет Мсис2 можно запускать через меню Пуск Windows:

После инсталляции MSYS2 нужно установить дополнительные пакеты командами:

pacman –Su

pacman -Sy

pacman -S mingw-w64-x86_64-gcc make mingw-w64-x86_64-cmake mingw-w64-x86_64-pkg-config

Сборка и компиляция майнера XMRig из исходного кода на Github

Сначала выполняется скачивание с Github исходного кода майнера XMRig и программных пакетов, от которых зависит работа программы (dependencies).

Исходный код XMRig:

Архив с исходным кодом распаковывается в папку XMR, которую помещают на диск C.

Затем подстраивают исходный код программы XMRig под себя.

Изменение программного кода майнера XMRig под нужды пользователя

Конфигурация майнера производится в файле CMakeLists.txt по аналогии с компиляцией под Ubuntu:

Конфигурация майнера редактируется в коде файла CMakeLists.txt в строках:

option(WITH_LIBCPUID "Enable libcpuid support" ON)

option(WITH_HWLOC "Enable hwloc support" ON)

option(WITH_CN_LITE "Enable CryptoNight-Lite algorithms family" ON)

option(WITH_CN_HEAVY "Enable CryptoNight-Heavy algorithms family" ON)

option(WITH_CN_PICO "Enable CryptoNight-Pico algorithm" ON)

option(WITH_CN_GPU "Enable CryptoNight-GPU algorithm" OFF)

option(WITH_RANDOMX "Enable RandomX algorithms family" ON)

option(WITH_ARGON2 "Enable Argon2 algorithms family" ON)

option(WITH_HTTP "Enable HTTP protocol support (client/server)" ON)

option(WITH_DEBUG_LOG "Enable debug log output" OFF)

option(WITH_TLS "Enable OpenSSL support" OFF)

option(WITH_ASM "Enable ASM PoW implementations" ON)

option(WITH_EMBEDDED_CONFIG "Enable internal embedded JSON config" OFF)

option(WITH_OPENCL "Enable OpenCL backend" OFF)

option(WITH_CUDA "Enable CUDA backend" OFF)

option(WITH_NVML "Enable NVML (NVIDIA Management Library) support (only if CUDA backend enabled)" OFF)

option(WITH_STRICT_CACHE "Enable strict checks for OpenCL cache" ON)

option(WITH_INTERLEAVE_DEBUG_LOG "Enable debug log for threads interleave" OFF)

option(BUILD_STATIC "Build static binary" OFF)

option(ARM_TARGET "Force use specific ARM target 8 or 7" 0)

option(HWLOC_DEBUG "Enable hwloc debug helpers and log" OFF)

При желании отключить какую-то опцию в конце строки пишут OFF. Для включения ее в исполняемый файл – используют команду ON.

К примеру, при майнинге только на процессоре можно отключить модули для видеокарт. Кроме того, можно отключить опцию Enable OpenSSL support, что в итоге создаст файл xmrig-notls (версия без шифровки трафика майнера), который потребляет меньше ресурсов.

Комиссия разработчику (devfee) устанавливается/отключается в файле donate.h (папка src) в строках:

constexpr const int kDefaultDonateLevel = 5;

constexpr const int kMinimumDonateLevel = 1;

Для компиляции файла майнера нужно также скачать архив его зависимостей со страницы xmrig-deps:

Скачанный архив xmrig-deps-*.zip разархивируют в корень диска C в папку с названием xmrig-deps.

В папке должны быть подпапки gcc, msvc 2015, msvc2017, msvc2019:

Затем запускают командный интерпретатор MSYS2 и с помощью команды

cd C:\XMR

переходят в директорию XMR, куда предварительно был распакован архив Source code.zip с исходниками майнера:

Затем создают папку build и переходят в нее. Для этого последовательно выполняют команды:

mkdir build

cd build

Затем совершают сборку проекта XMRig, для чего запускают команды:

cmake .. -G "Unix Makefiles" -DXMRIG_DEPS=c:/xmrig-deps/gcc/x64

make

При успешной сборке и компиляции в папке build появится файл майнера:

Запуск майнинга Monero описан в статье «Майнинг криптовалюты Monero (XMR) на алгоритме RandomX».

Скриншот работы самостоятельно сконфигурированного и скомпилированнного майнера XMRig для Windows:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *