
Компиляция программы XMR-Stak в ОС Windows
В статье «Компиляция майнера XMRig для ОС Windows» рассматривался процесс компиляции программы XMRig в операционной системе Windows.
Одной из сходных и довольно популярных программ для майнинга является XMRStack.
Эта программа поддерживает одновременный майнинг на процессоре и/или видеокартах AMD/Nvidia на алгоритмах семейства Cryptonight.
Рассмотрим процесс компиляции этой программы в ОС Windows c изменением devfee под свои предпочтения.
Подготовка к компилированию майнера XMRStack в Windows
Прежде всего, нужно скачать и установить пакет Visual Studio Community 2017 (это официальная бесплатная версия). Последняя версия Визуал Студио 2019-года еще сырая и при компилировании майнера XMRStack в ней могут появиться непредвиденные сложности и ошибки.
При инсталляции пакета программ нужно установить следующие компоненты:
пакет для разработки классических приложений на C++ (в англ. версии Desktop development with C++;

набор инструментов VC++ 2015.3 v140 (toolset for desktop);

При желании, вместо VS можно использовать альтернативный пакет msys2.
Затем необходимо скачать и инсталлировать систему автоматизации сборки программ CMake для Win64
При инсталляции CMake нужно зарегистрировать эту программу для всех пользователей системы.
При необходимости включить в программу поддержку майнинга на картах Nvidia нужно также скачать и инсталлировать пакет Cuda 8.0 или выше.

Для поддержки майнинга на видеокартах AMD нужно скачать и инсталлировать драйвера AMD DRIVER, также OCL-SDK (облегченную версию).

Затем нужно установить библиотеки (dependencies), от которых зависит работа программы, а именно: OpenSSL/Hwloc и Microhttpd.
При майнинге на видеокартах с поддержкой CUDA 8 нужно скачать первую версию архива с библиотеками (она не совместима с набором инструментов Visual Studio v141).
Для компиляции майнера с поддержкой технологии CUDA 9 и/или видеокарт AMD, а также процессоров нужно скачать вторую версию архива скомпилированных библиотек (она не совместима с набором инструментов Visual Studio v140).
Скачанный архив с dependencies нужно разархивировать в папку C:\xmr-stak-dep. Далее нужно скачать архив с исходным кодом программы XMRStack, разархивировать его в корневой каталог диска C: (файлы должны быть в папке C:\xmr-stack\xmrstak) и сконфигурировать его под свои предпочтения.

Конфигурирование исходного кода XMRStack под свои предпочтения
Наибольший интерес при самостоятельной компиляции вызывает изменение размера доната.
Он изменяется в текстовом редакторе в файле donate-level.hpp в папке C:\xmr-stack\xmrstak:

Размер доната изменяется в строке constexpr double fDevDonationLevel = 0.0 / 100.0:

Отключить поддержку видеокарт АМД или Нвидиа, а также отключить шифрование трафика SSL можно при компиляции.
Компиляция программы XMRStack для майнинга в операционной системе Windows
Для сборки кода и компиляции майнера xmr-stack нужно открыть любой командный интерпретатор, например cmd – штатную утилиту для работы с командной строкой.
Для этого нажимают комбинацию клавиш Win + r, а затем выполняю команду cmd.
В командной строке переходят в директорию с исходным кодом майнера. Для этого используют команду:
cd C:\xmr-stack\xmrstak

Для компиляции майнера под Cuda 9.x в Visual Studio 2017 выполняют команду (нужно скопировать и вставить в cmd всю команду полностью с точками и кавычками):
«C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsMSBuildCmd.bat»

Затем в директории с исходным кодом C:\xmr-stack создают папку build и переходят в нее:
mkdir build cd build

Для указания пути к необходимым библиотекам выполняют команду:
set CMAKE_PREFIX_PATH=C:\xmr-stak-dep\hwloc;C:\xmr-stak-dep\libmicrohttpd;C:\xmr-stak-dep\openssl

Далее необходимо собрать сборку майнера в CMake.
Для версии с поддержкой CUDA 8 выполняют команду:
cmake -G "Visual Studio 15 2017 Win64" -T v140,host=x64 ..
Для CUDA 9* и/или видеокарт AMD и процессора выполняют команду:
cmake -G "Visual Studio 15 2017 Win64" -T v141,host=x64 ..

Затем компилируют файл майнера командой:
cmake --build . --config Release --target install

В результате выполнения этой команды будет скомпилирован майнер с поддержкой AMD, Nvidia и CPU со всеми функциями, предусмотренными разработчиками.
Для его работы также понадобяться библиотеки openssl, котрые можно скопировать в папку со скомпилированным майнером с помощью команд:
cd bin\Release copy C:\xmr-stak-dep\openssl\bin\* .
Для исключения ненужных опций можно использовать команду с расширенными атрибутами (отключение ненужной опции осуществляется командой OFF, а включение – ENABLE):
make -G "Visual Studio 15 2017 Win64" -T v141,host=x64 -DCMAKE_BUILD_TYPE=Release -DMICROHTTPD_ENABLE=OFF -DCUDA_ENABLE=OFF -DOpenCL_ENABLE=OFF ..
Здесь команда -DOpenCL_ENABLE=OFF отключает майнинг на видеокартах АМД, -DCUDA_ENABLE=OFF – на Nvidia. Командой -DOpenSSL_ENABLE=OFF .. при компиляции можно отключить шифрование трафика.
Например, для создания майнера для видеокарт AMD и процессора без шифрования трафика можно применить команду:
cmake -G "Visual Studio 16 2019" -T v141,host=x64 -DCMAKE_BUILD_TYPE=Release -DMICROHTTPD_ENABLE=OFF -DCUDA_ENABLE=OFF -DOpenSSL_ENABLE=OFF ..

Майнер с необходимыми библиотеками находится в папке C:\xmr-stack\build\bin\Release:

Эти 4 файла копируют в отдельную папку и работают в ней с майнером xmr-stack с нулевой комиссией.



Один комментарий
Макс
Спасибо за отличное пособие для начинающих (вроде меня). К сожалению, не рассмотрен, например, вопрос о том, как отключить лишние алгоритмы хэширования, чтобы ту же память не «ели», и вообще минимализировать собранный майнер под свои конкретные нужды.