
Майнинг на алгоритме Random X
RandomX – это PoW алгоритм, оптимизированный для проведения вычислений на процессорах. В нем используется код с изменением хеш-функции по псевдослучайному алгоритму вместе с использованием требовательных к производительности памяти операций. Благодаря этому уменьшается эффективность вычислений специализированного оборудования типа ASIC-ов и FPGA.
Этот алгоритм вызывает большой интерес среди майнеров в связи с тем, что 30 ноября 2019 года на него планируется перевести одну из популярнейших анонимных криптовалют – Монеро.
В этой статье рассматриваются особенности алгоритма RandomX и майнинг на процессорах и видеокартах с помощью этого algo.
Особенности алгоритма Random X
Алгоритм RandomX был разработан как anti-ASIC algo программистами под никами Monero by tevador, hyc, vielmetti, antanst and SChernykh специально для криптовалюты Монеро на компьютерах/устройствах со следующими архитектурами:
- x86 (32-бит, от младшего к старшему (little-endian);
- x86-64 (64-бит);
- ARMv7+VFPv3 (32-bit);
- ARMv8 (64-бит);
- PPC64 (64-bit).
Благодаря использованию ряда новшеств, этот algo будет использоваться и в других блокчейнах, например, у проектов Wownero (начиная с релиза 0.6, упрощенный алгоритм с названием RandomWOW), Arweave и других.
В зависимости от объема задействованной оперативной памяти, на алгоритме RandomX возможен майнинг в двух режимах: Fast Mode (нужно не менее 2080 MB оперативной памяти) и Light Mode (ОЗУ размером не менее 256 Мб).
Fast Mode предназначен для «чистого» майнинга, а Light Mode – для валидации блоков на узлах с небольшими аппаратными возможностями, например, на одноплатных ARM-компьютерах (Rock64 и т.д.).
Эффективный майнинг (Fast Mode) на алгоритме RandomX задействует более 2 гигабайт оперативной памяти, что осложняет маскировку майнера при несанкционированном использовании ресурсов компьютера, а также практически полностью исключает из процесса майнинга слабые компьютеры и прочие устройства (интернет вещей) с небольшой вычислительной мощностью (типа роутеров, смартфонов и т.д.).
Браузерный майнинг (web-майнинг) также практически невозможен из-за высокой требовательности к памяти и отсутствия полноценной поддержки вычислений с плавающей запятой в Javascript и WebAssembly.
При вычислениях на алгоритме RandomX используются числовые операции, соответствующие стандарту IEEE 754: сложение, вычитание, умножение, деление и вычисление квадратного корня. Применяются фрагменты кода хеш-функций от алгоритмов Argon2d, Blake2b.
Алгоритм RandomX написан на языке программирования C++ и для его использования в системе должны быть установлены соответствующие библиотеки. При вычислениях используется виртуальная машина, выполняющая микропрограммы по специальным инструкциям, включающим переменные различных типов.
Блок-схема виртуальной машины Рандом X:

Часть инструкций может быть интерпретирована в процессорных командах сходу (как ассемблерные программы), а часть выполняется как программы с 256-битной криптографической хеш-функцией Blake2b.
Майнеры, которые можно использовать на алгоритме Random X
Майнить Монеро после перехода на Random X можно с помощью таких программ, как:
- Xmrig (для процессоров);
- xmrigCC (для процессоров);
- XMRig AMD (видеокарты AMD);
- XMRig NVIDIA (видеокарты Nvidia);
После выпуска соответствующего обновления на алгоритме Random X можно будет использовать такие программы:
- Cast XMR (видеокарты AMD);
- SRBMiner (GPU АМД);
- XMR-AEON-STAK (видеокарты Нвидиа и АМД);
- XMR STAK (видеокарты AMD и Nvidia);
- CryptoDredge (видеокарты Nvidia).
До хардфорка Monero проверить хешрейт на алгоритме Random X можно с помощью утилиты RandomX-benchmark-windows-x64-v1.0.4.zip.
Кроме того, скорость майнинга в сети на алгоритме Random X можно узнать, запустив майнер на тестовый пул по адресу randomx-benchmark.xmrig.com:7777.
Подробнее о практическом майнинге на алгоритме RandomX можно почитать в статье «Майнинг криптовалюты Monero (XMR) на алгоритме RandomX«.
Хешрейт популярных видеокарт на алгоритме Random X
В следующей таблице представлены данные по хешрейту популярных видеокарт производства компании Nvidia на алгоритмах Random X и CryptonightR, в h/s (по данным бенчмарка):
| Модель GPU | CryptonightR | RandomX |
| GTX 1660 Ti max overclock (2070/13760 MHz) | 626 (98 ватт) | 660 (103 ватт) |
| GTX 1660 Ti low power (1785/13760 MHz) | 604 (70 Вт) | 555 (70 Вт) |
| GTX 1070 (1850/7600 MHz) | 612 (89 W) | 609 (108 W) |
| GTX 1070 Ti (1900/7600 MHz) | 625 (97 W) | 769 (123 W) |
| GTX 1080 Ti (1930/10010 MHz) | 787 (145 W) | 1136 (190 W) |
| RTX 2080 (1980/13740 MHz) | 828 (142 W) | 1191 (189 W) |
| RTX 2080 Ti (1845/13600 MHz) | 1028 (191 W) | 1692 (235 W) |
| Titan V (1335/850 MHz) | 1436 (101 W) | 2199 (125 W) |
В следующей таблице представлены теоретические данные по хешрейту популярных видеокарт производства компании AMD на алгоритмах Random X и CryptonightR, в h/s (бенчмарк):
| Модель GPU | CryptonightR | RandomX | ||
| Vega 64 |
| 1225 | ||
| RX 480/580 | 960-1000 | 400-410 | ||
| RX 560 4GB (1400/2200 MHz) | 495 | 260 |
Хешрейт процессоров на алгоритме Random X
Большинство процессоров, выпущенных компаниями Intel и AMD с 2011 года должны осуществлять эффективный майнинг на алгоритме RandomX. Самую лучшую производительность будут показывать 64-bit CPU, обладающие следующими функциями:
- поддержка вычислений с плавающей запятой (стандарт IEEE 754);
- поддержка инструкций AES на аппаратном уровне (команды AES-NI для архитектуры x86, криптографические расширения для ARMv8)
- не менее 16 кБ кеша уровня L1, 256 Кб кеша L2 и 2 мегабайта кеша L3 cache для каждого потока майнинга;
- поддержка больших страниц памяти (large memory pages);
- не менее 2.5 Гб свободной оперативной памяти (RAM) для одного узла NUMA;
- может понадобиться поддержка многоканальной передачи данных в оперативной памяти (multiple memory channels):
память типа DDR3 имеет лимит примерно 1500-2000 H/s на один канал (в зависимости от частоты и таймингов);
память DDR4 лимитирована примерно 4000-6000 H/s на один канал.
Для достижения максимального хешрейта на алгоритме RanomX при майнинге на процессоре нужно правильно выбирать количество потоков (T) и включить поддержку больших страниц памяти.
В зависимости от того, включена поддержка больших страниц памяти или нет при майнинге, различаются разновидности алгоритма RanomX по скорости майнинга на CPU (соответственно «Fast mode» и «Light mode»).
При майнинге желательно наличие поддержки инструкций AES в процессоре на аппаратном уровне. Майнить на старом процессоре без поддержки команд AES также возможно, хоть и с меньшей скоростью, включив их эмуляцию в программном режиме.
В следующей таблице приведены данные по хешрейту различных процессоров на алгоритмах CryptoNight-R и Random X (Fast и Light Mode), h/s:

Заключение
Серьезные требования к аппаратному обеспечению для майнинга на алгоритме рандом икс должны отсечь существующие сети ботов и пулы с ASIC-ами и сделать добывание монет типа Монеро более справедливым и доступным для обычных владельцев компьютеров и майнеров с машинами, оборудованными достаточно производительными процессорами с большим объемом оперативной памяти.
Наибольшую выгоду от майнинга Monero после форка Random X будут иметь владельцы процессоров АМД Ryzen с архитектурой ZEN 2. Фантастический хешрейт в 39 kh/s показывает АМД-шный процессор Epyc 7742 стоимостью 7 тысяч долларов. Третье поколение процессоров АМД семейства Threadripper должно стать доступной альтернативой Эпикам, сочетая высокую производительность и приемлемую стоимость. Шестнадцатиядерный процессор при стоимости порядка 750 долларов будет выдавать порядка 9-10 kh/s, а 24 и 32 ядерные монстры при цене 1000 и 2000 доларов соотвтественно выдадут до 20 kh/s, что в 10-15 раз больше RTX 2080 Ti.


