Dive into Litecoin, или как начать майнить sCrypt валюту

в 12:08, , рубрики: bitcoin, linux, litecoin, scrypt, майнинг, метки: , ,

image

Предисловие

Ни для кого уже не секрет, что криптовалюта набирает силу, становясь все ближе к мировому признанию. В свое время я занимался майнингом Bitcoin на видеокартах, но вот уже больше года как я остался «не при делах» с появлением ASIC майнеров. Я всегда был против ASIC — ферм, а потому решил для себя не присоединятся к их владельцам. Пару слов о причинах — ASIC фермы дорого стоят, мало распространены и весьма специфичны, это очень сильно увеличивает порог вхождения в майнинг и в криптовалюту как таковую, а выборочное распределение этих устройств способствует падению энтропии. Кому-то эти причины могут показаться недостаточно весомыми, но для меня они стали решающими. Не так давно я понял, что один из форков Bitcoin начинает набирать силу, и он защищен от ASIC-ферм, что вызвало мой серьезный интерес. Тем не менее большинство информации в интернете устарело, и мне пришлось пройти тернистым путем чтобы заставить свою первую ферму работать, потому я решил поделится с вами опытом.

Шаг 0 — Оцениваем ситуацию и понимаем, как работает криптовалюта

Все мы, как энтузиасты криптовалюты желаем ей процветания, особенно если от ее процветания зависит наш доход. Но стоит помнить, что рынок криптовалюты пока еще не стабилен, и что делать криптовалюту единственным источником дохода не стоит из-за сопутствующих рисков. Если вашей целью являются легкие деньги — то лучше поискать их в другом месте, а если нет — добро пожаловать в сообщество!

Так что же такое майнинг? Майнинг — это по сути обеспечение сети. Подключая свой компьютер к сети вы становитесь частью одной большой криптосети, вычисляющей много хешей. Каждый раз, когда вычисляется хеш, у машины, совершающей вычисление есть шанс обнаружить блок. За нахождение блока майнера награждают 50LTC (у других валют это число может отличаться). Нахождение блока зависит от удачи, тем не менее система запрограммирована на постоянное количество блоков, и среднее время, требующееся для нахождения блока можно рассчитать. Регуляция осуществляется с помощью сложности системы, которая настраивается гибко в зависимости от скорости всей системы в целом. Скорость измеряется в хешах в секунду. На момент написания статьи актуальной единицей измерения хешей в секунду были kh/s (килокеши в секунду).
1000 h/s = 1kh/s
1000 kh/s = 1mh/s
1000 mh/s = 1gh/s

Майнер должен всегда стремиться получить как можно больше kh/s при минимальном расхоже электричества на 1 килохеш.

Шаг 1 — Строим ферму

image

Итак, допустим вы решили заняться майнингом Litecoin (или же иной sCrypt валюты). Конечно можно использовать свой основной ПК для майнинга, но так как обычно в ПК ставят всего одну видеокарту, а видеокарта не всегда ATI — я буду начинать именно с постройки фермы. К тому же на момент написания статьи майнинг с 1 видеокартой на грани, и очень скоро может перестать приносить доход. Если вас интересует настройка ПО — переходите к следующему пункту.

Собирая ферму железо стоит выбирать исходя из правила — все для видеокарт. Это значит, что нам не очень важно, какой у нас будет процессор, оперативная память или жесткий диск — нам важно количество PCI-e слотов и хороший источник питания.

Допустим вы уже нашли модульный блок питания на 1200 ватт и уже имеете на руках материнскую плату с оперативной памятью, каким-никаким процессором и флешку на 16гб. Самой плохой идеей будет запрятать все это в корпус — фермы, как правило, генерируют много тепла, а значит необходимо охлаждать их соответственно. Очень простое решение — выпилить на скорую руку деревянный корпус или купить уже готовый металлический.

Теперь самое главное — выбор видеокарт. При выборе стоит руководствоваться данной таблицей и этим калькулятором. Ваша цель — количество kh/s. Подробнее о нем чуть позднее. Стоит помнить, что иногда дешевле купить 2 видеокарты выдающие 700kh/s, чем одну выдающую 1000kh/s, и далеко не всегда полюбившуюся карту легко найти, так что доступность тоже является важным фактором.

Еще необходимо обязательно обзавестись рейзерами — шлейфами, служащими для вынесения видеокарт от материнской платы.

image

Рейзеры бывают двух типов — с дополнительным питанием и без. Питание — главный бич любой фермы, и если у вас задействовано больше 3х видеокарт — рекомендуется использовать именно рейзеры с дополнительным питанием. Иначе видеокарты могут либо не запускаться вообще, либо вы рискуете перегрузить дорожки питания на материнской плате и сжечь их. Рейзеры без питания можно переделать в рейзеры с питанием следуя инструкциям отсюда.

Осталось только настроить железо — заходим в UEFI/BIOS и выставляем следующие настройки:

  • Автоматически включаться после отключения питания.
  • Отключаем ВСЮ лишнюю периферию. Оставляем только USB, сетевую карту и IOMMU.
  • Устанавливаем загрузку с USB-HDD как основную.
  • Отключаем проверку на наличие клавиатуры и монитора.

Так как, увы, нет единого интерфейса для UEFI/BIOS — некоторые из этих настроек могут отсутствовать вовсе или же быть скрыты — придется прочитать инструкцию к материнской плате.

Шаг 2 — Ставим софт

Так как ферма — устройство подразумевающее удаленное управление и требующее работы с видеокартами — Linux будет очень хорошим решением. В этом гайде я буду описывать настройку Ubuntu 12.04.

Для начала готовим установочную флешку, для этого скачиваем x86 или x64 версию мини-образа.

Если вы используете Linux или OSX, то записываем ее с помощью

sudo dd if=mini.iso of=/dev/sdX bs=4M
где mini.iso — путь к скачанному файлу, а /dev/sdX — флешка.

Если же вы все еще используете Windows — тогда воспользуйтесь Unetbootin.

Как только все готово — втыкаем флешку в ферму (в которой уже есть другая флешка, призванная служить ей жестким диском) и следуем инструкциям на экране до появления списка пакетов, в нем выбираем Xubuntu-desktop. OpenSSH server и заканчиваем установку. После перезагрузки вы должны уже иметь возможность сразу подключиться к ферме по SSH.

На этом этапе, если вы собираетесь настраивать ферму удаленно очень полезно иметь Filezilla, я же советую отключать монитор только тогда, когда у вас уже все работает — личный опыт подсказывает, что это хорошая идея.

В первую очерендь необходимо включить автологин в lightDM — в терминал вводим

sudo /usr/lib/lightdm/lightdm-set-defaults --autologin username

username заменяем на свой логин.

Теперь необходиом установить проприетарный модуль ATI

sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install fglrx-installer

Перезагружаемся и продолжаем. Теперь необходимо скачать два набора для разработки, открываем браузер и скачиваем их один, два.

Еще надо поставить кое-какие библиотеки и пару полезных вещей

sudo apt-get install build-essential cdbs fakeroot dh-make debhelper debconf libstdc++6 dkms libqtgui4 wget execstack libelfg0 dh-modaliases ia32-libs ia32-libs-multiarch i386 lib32gcc1 libc6-i386 linux-headers-3.5.0-17-generic install libcurl4-openssl-dev libncurses5-dev pkg-config automake yasm screen

Для майнинга нам необходим cgminer 3.7.2, именно этой версии! В последующих поддержка майнинга на GPU вырезана.

Скачиваем его:

wget http://ck.kolivas.org/apps/cgminer/3.7/cgminer-3.7.2.tar.bz2 && tar xf cgminer-3.7.2.tar.bz2

Теперь установим SDK:

mkdir amdapp_2-8
cd amdapp_2-8
tar -zxvf ~/Загрузки/AMD-APP-SDK-v2.8-lnx64.tgz
sudo ./Install-AMD-APP.sh
mkdir ADL_SDK
cd ADL_SDK
mv ~/Загрузки/ADL_SDK_5.0.zip .
unzip ADL_SDK_5.0.zip
cp include/* ../cgminer-3.7.2/ADL_SDK

И соберем cgminer:

cd cgminer-3.7.2
CFLAGS="-O2 -Wall -march=native -I /opt/AMDAPP/include/" LDFLAGS="-L/opt/AMDAPP/lib/x86_64" ./configure --enable-scrypt --enable-opencl
make -j2
sudo make install

Перезагружаемся еще раз и все — сложное позади, настало время для самого сложного — настройки.

Шаг 3 — Настраиваем софт и выбираем пул

Итак, теперь стоит ненадолго прервать возню с софтом и выбрать себе пул. Пул — это ваш «работодатель», вы отдаете пулу свою ферму, а он вам платит за ее использование. Пул нужен для того, чтобы иметь более-менее стабильную прибыль, так как без него искать блок (за который выдают 50 LTC) можно очень долго, и большую роль играет удача. У пула, тем не менее, как правило солидная мощность, а значит блоки он находит часто, деля доход между своими майнерами. Многие гуру майнинга придерживаются мнения, что если вы майните долго — пул не имеет значения, тем не менее это не совсем так. Пул должен как-то распределять средства, которые он получает, и не все пулы делают это одинаково. При выборе пула стоит выбирать подходящую для вас систему оплаты. На данный момент есть 2 основных вида оплаты:

  • PPS — Pay Per Share
  • PPLNS — Pay Per Last N Shares

PPS подразумевает, что пул платит вам за каждое вычисление. Это звучит заманчиво, так как ваш доход будет зависить только от сложности, но никак не от удачи. Тем не менее за такую стабильность приходится платить — пулы с этим методом оплаты берут большую комиссию, к тому же если пулу внезапно начнет сильно не везти есть шанс, что пул обанкротится.
PPLNS сводит комиссию к минимуму, а шанс банкротства к 0, так как платит только за последние Н вычислений, которые имели место до нахождения очередного блока. Таким образом вы зависите от удачи пула и сложности одновременно.

Список пулов

Как только вы определились с пулом и заведете аккаунт — можно начинать настройку. Создаем в домашней папке .sh скрипт, например start.sh и пишем туда следующее:

#!/bin/bash
export DISPLAY=:0
export GPU_USE_SYNC_OBJECTS=1
export GPU_MAX_ALLOC_PERCENT=100
./cgminer --scrypt -o stratum+tcp://poo.l:3333 -u username.worker -p pass

Заменяем username.worker на свое имя пользователя и воркера, pass — на пароль stratum+tcp://poo.l:3333 — на адрес вашего пула

Запускаем — и ура, ферма работает!

Но это еще не все. С такими настройками вы можете терять очень много kh/s, которых вы могли бы получить, применив тонкую настройку. Это нечто из области шаманства, так что новичкам я советую взять конфигурацию из уже известной нам таблицы, или же найти в интернете. Для тех же, кто считает себя продвинутым я приведу небольшую справку по настройкам:

— thread-concurrency — отвечает за параллелизм, то есть сколько хешей за раз попытается посчитать cgminer. Это значение надо подбирать, еще проще взять из таблицы, или задать количество шейдеров.

— shaders — альтернатива указанию thread-concurrency, надо знать, сколько шейдеров содержит ваша видеокарта и указать их, тогда параллелизм cgminer выберет сам.

— g — колличество процессов на одном GPU

— auto-fan — автоматическая регуляция кулера

— gpu-memclock — частота памяти. Очень важное значение, необходимо указывать значение кратное 250. Именно эта частота самая важная при работе с алгоритмом шифрования sCrypt, на котором строится Litecoin.

— gpu-engine — частота ядра — тут не так важна. На самом деле важно «волшебное соотношение» этой частоты к частоте памяти. Нахождение такой частоты может дать сильный прирост в производительности.

Помните, что два последних параметра использовать опасно! Разгоняя свои видеокарты вы всегда имеете шанс их сжечь, так что до тех пор, пока вы не уверены в том, что делаете — не используйте эти параметры.

Чтобы иметь возможность удаленно открыть майнер запускать его стоит через GNU Screen

screen -dmS miner start.sh

Как только вы захотите выйте из него не выключая майнер — нажмите Ctrl+A+D, чтобы вернуться вводим команду

screen -r miner

Теперь монитор можно отключить, как и клавиатуру.

Послесловие

Я надеюсь, что эта статья поможет всем, кто хочет начать майнить криптовалюту, но не знает как. Мне пришлось искать эту информацию достаточно долго, и я потратил около недели на то, чтобы моя ферма заработала в полную силу.
Спасибо хорошему сообществу /r/litecoinminig за помощь!
Удачного майнинга и с наступающим!

Автор: NeoTheFox

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js