Влад Василенко
10
All posts from Влад Василенко
Влад Василенко in Свежий взгляд,

Как добывать эфир: Майнинг для чайников

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

В марте курс эфира, одной из ведущих криптовалют, поднялся до $25. Это
весьма порадовало инвесторов Ethereum — распределенной вычислительной
платформы на базе блокчейна, которая использует эфир как основное
средство обмена, — особенно учитывая, что с момента запуска в июле 2015
года стоимость криптовалюты застыла ниже $10. Но у резкого роста было
еще одно важное последствие: впервые за всю историю эфира майнинг
криптовалюты стал действительно выгодным занятием.

Я подумывал о создании установки для майнинга уже несколько месяцев, и
майский всплеск цен заставил меня решить, что самое время начать.
Поэтому я потратил часть эфира, который у меня уже был, на оборудование и
начал постигать тонкости сбора ПК и искусство Linux.

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

Майнинг — это процесс извлечения токенов криптовалюты из системы
блокчейн.

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

Алгоритм хэширования, используемый Ethereum, называется ethash. Он
хеширует метаданные последнего блока в системе, используя специальный
код под названием nonce: случайное двоичное число, которое и задает
уникальное значение хэш-функции. Для каждого нового блока в блокчейне
сеть устанавливает целевое значение хэша, и все майнеры в сети пытаются
угадать значение nonce, которое приведет к такому значению.

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


Майнер, нашедший
правильное значение nonce, расшифровывает блок и получает пять эфиров,
после чего процесс начинается заново. Цикл повторяется каждые 12 секунд.

Итак, мы описали общую схему. Но как процесс выглядит на стороне
майнера? Для начала, установка для майнинга требует серьезной
вычислительной мощности.

Лучших результатов можно добиться, используя графические процессоры
(GPU), которые обычно используются при обработке 3D-графики для
видеоигр. Майнинг возможен и на CPU — центральном процессоре системы,
который отвечает за все основные операции, но GPU изначально
оптимизированы для проведения подобных операций, поэтому лучше подходят
для хэширования в сети Ethereum.

И вот тут-то начинаются проблемы. Сейчас затраты на электроэнергию,
которая нужна для поддержания работы системы майнинга, оказались
значительно ниже, чем стоимость добытого эфира. Как следствие, число
майнеров резко выросло.

До появления криптовалют мощные графические процессоры интересовали
почти исключительно геймеров, но теперь, когда они стали основным
инструментом майнинга, спрос на видеокарты резко превысил предложение.
Если исключить рынок подержанной техники, поиск подходящих GPU в
обозримом будущем обещает стать непростой задачей.

Мне повезло заполучить шесть видеокарт RX 470 в самом начале
стремительного роста цен на эфир. Уже тогда лучшие видеокарты были в
дефиците, и мне пришлось пойти на компромисс в плане производительности.
Но это было лучше, чем ничего — всего через несколько часов после того,
как я сделал покупку, все видеокарты на сайте магазина оказались
проданы.

Допустим, вам каким-то образом удалось заполучить достаточное число
подходящих видеокарт. Следующая задача — найти материнскую плату и блок
питания, которые смогут поддерживать их одновременную работу. Я выбрал
материнскую плату MSI Z170a и блок питания Corsair на 1200 Вт. Каждая
видеокарта потребляет от 100 до 250 Вт мощности. Мои видеокарты были по
120 Вт каждая, — итого около 800 Вт. Блоки питания обеспечивают
оптимальную работу, если загружены примерно на три четверти от
номинальной мощности, поэтому блок питания на 1200 Вт вполне отвечал
моим потребностям.

Вам также понадобится специальная стойка — шесть видеокарт не вставишь
прямо в слоты PCI на материнской плате. К тому же размещение видеокарт
на расстоянии от процессора помогает рассеивать тепло и избегать
перегрева системы.

Я использовал двухъядерный процессор Intel на 2,8 ГГц и всего 4 ГБ
оперативной памяти, соответственно. Звучит скромно, но добыча эфира не
требует многозадачности, поэтому на процессоре и оперативной памяти
можно сэкономить.

Последним элементом
станет корпус. В обычном корпусе для ПК не поместятся шесть видеокарт,
поэтому приходится изобретать альтернативные решения. Многие компании
продают готовые корпуса для майнинга, но они могут стоить более $150,
при том что сделать нечто подобное самостоятельно не так уж трудно. Я
взял в хозяйственном магазине немного алюминиевого уголка, несколько
деревянных досок, несколько десятков саморезов и шуруповерт.

Если не вдаваться в подробности, весь процесс сбора корпуса занял около
часа и обошелся мне чуть меньше чем в $50. С учетом стоимости
оборудования мои затраты составили чуть менее $2000.

Итак, система настроена и хорошо выглядит. Пришло время для программного
обеспечения!

Здесь ваши варианты
относительно ограничены: вы можете запустить свою установку на Windows,
Linux или ethOS. Главное преимущество Windows — улучшенная поддержка
драйверов видеокарт. EthOS, в свою очередь, привлекает многих тем, что
это готовое решение для тех, кто не знает Linux и не хочет учиться.

Но само создание установки для майнинга эфира для меня наполовину было
поводом начать изучение Linux, поэтому я решил не искать легких путей.
Сначала мне пришлось загрузить и установить Xubuntu, легкую версию
популярного дистрибутива Ubuntu Linux. Для этого понадобилось записать
файла образа диска Linux на 32-гигабайтный USB-накопитель и подключить
его к материнской плате. Не самая сложная задача.

Затем мне пришлось загрузить драйверы для своих видеокарт, чтобы они
могли взаимодействовать с материнской платой и выполнять параллельную
обработку. Эти драйверы находятся в открытом доступе на сайте AMD, и их
установка достаточно проста, — нужно ввести всего несколько команд на
терминале Ubuntu.

Наконец, пришло время установить Geth — программу для выполнения команд
на моем узле Ethereum. После загрузки блокчейна мне осталось только
привязать установку к кошельку, который я уже завел на сервисе Mist — и
можно было начинать добычу. 

Изначально мои шесть
графических процессоров обеспечивали около 120 MH/с — т. е. около 120
млн операций хеширования в секунду. Изменив некоторые настройки, я
надеюсь довести этот показатель до 125?130 MH/с, но больше мне из них не
выжать.

Может показаться, что это много, но сейчас, когда я это пишу, вся сеть
Ethereum производит 39 трлн операций хеширования в секунду, что делает
мою установку лишь каплей в этом океане вычислительной мощности.

Поскольку эфир зачисляется на ваш кошелек только в случае обнаружения
правильного nonce, чем больше операций хэширования вы можете выполнить в
каждом блоке, тем выше ваши шансы. Если бы я положился исключительно на
свою установку, первого «выигрыша» пришлось бы ждать несколько месяцев.

Большинство других майнеров находятся в той же лодке, что и я, и у меня
нет доступа к огромным криптофермам. Чтобы увеличить свои шансы, мелкие
майнеры объединяются в пулы, которые объединяют вычислительную мощность
каждого отдельного майнера в хэш-блоки.

Благодаря объединенной вычислительной мощности пулы установок могут
находить решение каждые несколько минут, а вознаграждение распределяется
среди майнеров пула пропорционально вкладу их вычислительной мощности в
решение конкретной задачи.

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

Каждый пул предъявляет разные требования участникам и взимает разную
плату за присоединение. Хотя я вношу в пул всего 120 MH/с, в год моя
установка приносит около 35 эфиров. Учитывая текущую сложность майнинга и
цену эфира на момент написания, я могу зарабатывать почти $8000 в год
после вычета затрат на электроэнергию.

Итак, вот он я — полный нуб, не имеющий опыта работы с Linux, который
смог с минимальными усилиями оборудовать систему для майнинга эфира. Так
что, возможно, это не так сложно, как кажется!