Майнинг на Raspberry pi
Данная статья поможет вам узнать, что такое криптовалюта. Зачем её майнить? В чем её особенность? Как майнить на одноплатном компьютере Raspberry pi? Сколько на этом можно заработать? Статья очень информативная и подходит для новичков в этом деле.
Можете ли вы майнить на raspberry pi? Да, можете. Это возможно делать на Raspberry pi 3 и 4. Конечно, на четвертом майнинг будет идти быстрее.
Мы не будем майнить такие крупные монеты как биткоин или эфириум. Мы будем майнить монеты Монеро. Для этого есть несколько причин, про которые я указал чуть ниже.
Спойлер: это дело не является выгодным. Этот проект скорее будет интересен для тех кто хотел бы попробовать себя в этом деле и для осущетсвления интересного проекта.
![](https://habrastorage.org/getpro/habr/upload_files/e59/3d9/da8/e593d9da8b25a6d7bfbc22100584caff.jpeg)
Что такое криптовалюта и зачем её майнить?
Если данная информация вам уже известна, вы можете переходить к следующей главе. Криптовалюта - это разновидность цифровой валюты, которую используют, как средство оплаты товаров и услуг, простыми словами, это деньги. Особенность криптовалюты в том, что можно совершить процесс денежной транзакции не вовлекая в это банк. Скорее всего вы слышали о монете, под названием биткойн, он относится к крупным монетам, но помимо биткойна существуют и другие виды монет. В данной статье, мы не рассказываем, как майнить биткоин или эфириум, так как майнить такие крупные монеты является слишком трудным процессом для такого одноплатного компьютера, как raspberry pi. А вот монеты Монеро будет самое то. Чуть ниже я указал, почему именно Монеро является оптимальной монетой, для майнинга на raspberry pi.Криптовалюту необходимо майнить для поддержки блокчейна. (Знаю, что не совсем понятно, сейчас во всем разберемся) Давайте сначала разберемся, что такое блокчейн. Как мы говорили ранее, основная фишка криптовалюты в том, что можно отправить деньги не вовлекая банк. Возникает вопрос, кто тогда следит за транзакцией? За транзакцией следят все люди, связанные с данной криптовалютой и отслеживают ее. Криптовалюта децентрализована. Можно сказать, что пользователи записывают транзакции в блокнот и этот самый блокнот называется блокчейн.
В майнинге вы часто будете сталкиваться с таким выражением, как хэш. Хэш или хэш-функция – одна из основных составляющих современной криптографии и алгоритма блокчейна. Хэширование представляет собой преобразование любого объема информации в уникальный набор символов, который присущ только этому массиву входящей информации. Этот набор символов и будет называться хэшем.
Мы генерируем хэш транзакции и объединяем его вместе с кучей других транзакций примерно в одно и то же время, группируем их в блок, а затем связываем с ним еще один блок и с ним еще один блок.. и получаем цепочку блоков - блокчейн. Этот блокчейн, эта бухгалтерская книга или дневник криптовалюты, который содержит каждую транзакцию, когда-либо совершенную для этой криптовалюты. Чтобы убедиться, что его нельзя изменить, подделать или взломать, нужны майнеры. Майнеры заботятся о том, чтобы блокчейн был безопасным. Работа состоит в том, чтобы добавлять новые блоки в блокчейн. В криптовалютах, при переводе денежных средств, запрос на транзакцию помещается в своего рода зал ожидания. Транзакции ждут, когда они будут обработаны майнерами и записаны в блокчейн навсегда. Что должна сделать наша машина для майнинга? Она должна решить своего рода головоломку - криптографическую хэш-головоломку. Если наш компьютер сможет его решить, мы получим честь добавить следующий блок в блокчейн. За наши усилия мы будем щедро вознаграждены. Если вам удастся добавить блок в блокчейн в биткойне, вы будете вознаграждены BTC 6,25, что равно $ 317 538 (на момент написания статьи). Очевидно, это не так просто, потому как мы не единственные майнеры. Есть масса других людей пытающихся решить одну и ту же головоломку. Есть только один правильный ответ и все они соревнуются за то, чтобы найти ответ первыми.В данной статье я не буду углубляться в решение хэш-головоломки, просто знайте что это очень сложная математическая задача.
Именно поэтому raspberry pi не подходит для майнинга Биткоина, Эфириума или любой другой очень известной криптовалюты. Чем больше майнеров, тем сложнее решить эту крипто-головоломку.Есть куча людей, которые майнят биткоин и эфириум. Они используют мощные видеокарты или такие вещи как ASIC-майнеры, которые созданы только для майнинга. ASIC расшифровывается как «интегральная схема специального назначения» (англ.: «Application Specific Integrated Circuit»):
![](https://habrastorage.org/getpro/habr/upload_files/ed0/500/05a/ed050005a25fcc292bf1ae207cfb53b9.png)
Относительно таких крупных гигантов, у raspberry pi нет никаких шансов в добыче биткойна. Итак, теперь давайте поговорим о Монеро и о том, почему это лучший вариант для нас, чем биткоин или Эфириум. Монеро не любит ASIC-майнеры. Создатели Монеро думают, что это плохо для блокчейна. Если у кого-то будет множества этих ASIC-майнеров, то они смогут добавлять больше блоков, чем кто-либо другой и получать больше контроля над тем, что добавляется в блокчейн и соответственно, она станет более централизованной, что может привести к монополии. Монеро решила поступить по другому. Они решили использовать алгоритм random X, который делает майнинг с помощью ASIC-майнеров не выгодным.
Цель Монеро состояла в том, чтобы любой желающий мог бы заниматься майнингом, любой компьютер и даже такое маленькое устройство, как raspberry pi. Это приводит к тому, что их блокчейн более децентрализован, где гораздо больше людей имеют возможность записать блок в блокчейн.
Нам потребуется:
Raspberry pi (третья или четвертая).
Карта памяти MicroSD (у меня 64 гб. После установки всего необходимого память была заполнена на 5.8 гб).
Адаптер для карты памяти.
Скачиваем необходимое и готовим Raspberry pi
Нужно установить Raspberry Pi Imager. Вот ссылка: https://www.raspberrypi.com/software/ Нажимаем download for macOS / Windows / Ubuntu for x86 или же через терминал:
sudo apt install rpi-imager
Нам потребуется 64 битный image - raspios_lite_arm64.
Заходим в папку с последней датой. В момент написания статьи использовалась папка с датой 2021-11-08, скачиваем zip файл и разархивируем папку.
Открываем Raspberry Pi Imager, нажимаем CHOOSE OS > Use custom и выбираем наш разархивированный .img файл. После, подключаем нашу карту памяти к компьютеру и выбираем его через Choose storage.
Открываем Advanced Options через Ctrl+Shift+X.
Enable SSH и задаем пароль для входа в наш raspberry pi.
Задаем wi-fi для подключения через Configure wifi.
Сохраняем (save) и начинаем запись (write).
Нас предупредят, что все, что имеется в карте памяти, будет удалено и спросят, хотим ли мы продолжить. Нажимаем Да.
Запись займет пару минут.
Вытаскиваем карту памяти и вставляем в raspberry pi.
Теперь нам нужно подключить его к питанию, но сперва советую проверить подключенные устройства к wi-fi и после включения raspberry pi проверив его еще раз сможете легко узнать ip raspberry pi.
Проверку подключенных устройств к wi-fi можно сделать разными способами. Я сделал это через терминал.
#Для windows:
ipconfig/all
#для Linux:
ip a
#и для MAC:
arp -a
После подключаемся к raspberry pi через терминал, пишем ip raspberry pi которую мы узнали выше:
ssh pi@192.168.100.4
У нас спросят, хотим ли мы подключиться к raspberry pi, пишем yes.
После, спросят пароль, вводим пароль, которую мы задали через Advanced Options.
Если все сделаете правильно выйдет:
pi@raspberrypi:~ $
Это означает, что мы успешно вошли и можем начать настраивать raspberry pi на майнинг.
Установка программ для Крипто-Майнинга
Давайте обновим наши репозитории:
sudo apt update
Установим предварительно требуемые программы:
sudo apt install git build-essential cmake libuv1-dev libssl-dev libhwloc-dev -y
Клонируем репозиторию:
git clone https://github.com/xmrig/xmrig.git
Заходим в папку:
cd xmrig
Создаем папку и заходим туда:
mkdir build
cd build
Устанавливаем программу, создав ее из исходного кода:
cmake ..
make
Это займет приличное количество времени. У меня заняло примерно 30 минут.
Прогресс удобно следить по проценту выполнения который идет слева.
Подготовка Цифрового Кошелька
![](https://habrastorage.org/getpro/habr/upload_files/195/0c8/810/1950c8810a534f9832ace120de7c8531.jpeg)
Мы будем майнить криптовалюту Monero и будем получать XMR деньги/монеты. Для их хранения нам понадобиться цифровой кошелек. Открываем https://www.getmonero.org/downloads/. Скачиваем для соответствующей ОС, устанавливаем и открываем. Выбираем нужный язык и нажимаем продолжить. Выбираем Простой режим. Создаем новый кошелек. Здесь нам выдадут мнемоническую фразу которую нужно записать себе. Она нам понадобиться при восстановлении кошелька. После, задаем пароль для кошелька. Нажимаем создать. Сразу же спросят у нас пароль от кошелька который мы только задали. Если перейдем в левом меню в счет, мы сможем увидеть наши счета. Нам здесь нужен адрес нашего счета для запуска майнинга.
Начинаем майнинг
Если находимся в той же папке, вводим команду:
./xmrig -o gulf.moneroocean.stream:10128 -u 41d...zd
или данную команду если перезагружали raspberry pi:
xmrig/build/xmrig -o gulf.moneroocean.stream:10128 -u 41d...zd
gulf.monerooceon.stream:10128 - майнинг-пул. Дело в том что мощности одной raspberry pi будет очень мало, чтобы решить задачу, которую дает нам система. Майнинг-пул это место где собираются другие люди (компьютеры) для того чтобы вместе решить сложную хеш-головоломку, получить XMR деньги и поделить их в соответствии кто сколько решил.
451...zd - ваш счет куда должно поступить награждение.
Так же, если вы используете больше одной машины для майнинга, вы можете добавить команду, чтобы дать имена (pi1) вашим машинам: -p pi1
После запуска этой команды, начинается майнинг на нашей raspberry pi.
Мы можем следить за процессом.
Появление new job означает, что наша машина взяла новую задачу для решения.
Появление accepted означает, что наше решение было принято и мы были вознаграждены за это.
Появление rejected означает, что мы были слишком медленные для внесения вклада в решении задачи.
Также, есть несколько команд для проверки и получения информации с процесса. Нажав кнопку С, мы получим информацию по данному соединению.
Нажав кнопку H, мы можем увидеть нашу скорость хэширования. Это своего рода скорость нашего майнинга.
Нажав кнопку S, мы получим информацию сколько решении было принято.
Выгодно ли майнить на raspberry pi и сколько на нем можно заработать?
Открыв https://moneroocean.stream/ и введя туда наш кошелек, мы можем увидеть с какой скоростью идет майнинг:
![](https://habrastorage.org/getpro/habr/upload_files/b97/5f8/bec/b975f8becaf00e9402bd3c92e7f4815f.png)
У меня это примерно 10H/s. Это информация нам понадобиться для дальнейших вычислений. Открываем майнинг калькулятор, выбираем крипту которую майним, в нашем случае это XMR, вбиваем скорость майнинга, энергопотребление и цену за электричество. Если не учитывать расходы на электричество, с курсом на момент написания статьи, мой raspberry pi 3 зарабатывает $ 0.01047 или XMR 0.00005732 в месяц:
![](https://habrastorage.org/getpro/habr/upload_files/be7/677/fe5/be7677fe56e91150eb4371c3f4b91d59.png)
На raspberry pi 4 (8 GB RAM) скорость может доходить до 100H/s. Очевидно, майнить на raspberry pi является не самым выгодным делом. Но думаю для входа в эту сферу, это является довольно простым и доступным способом. Также, если у вас есть свободный raspberry pi, почему бы и не попробовать заняться таким интересным проектом.
Дополнение
Хотел бы поделиться несколькими командами, которые были для меня полезными.
Настройка на несколько вай-фай с приоритетами
Raspberry Pi использует файл wpa_supplicant.conf для подключения к вай-фай.
Чтобы редактировать файл, используем следующую команду:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Если прокрутим файл до конца, можем увидеть следующее:
network = {
ssid = "Wi-Fi"
psk = "password"
}
Если такое уже есть можем его заменить на нужное с приоритетами или добавить его:
network={
ssid="wifiOne"
Priority=100
psk="password"
}
network={
ssid="wifiTwo"
Priority=70
psk="password"
}
Raspberry pi подключается сперва к вай-фай с более высоким приоритетом и дальше по очереди.
Чтобы сохранить и закрыть файл, нужно нажать Ctrl + X, затем Y и ввод. На этом этапе Raspberry Pi должен автоматически подключиться к новой сети. Иногда это не случается и требуется перезагрузить для подключения:
sudo reboot
Автоматический запуск майнинга на Raspberry Pi при запуске
Это для нас будет полезным при сбоях с электричеством. Есть несколько способов это сделать. Один из них crontab.
Начать редактирование файла:
crontab -e
Нажимаем 1 и ввод.
В самый конец добавляем нужную нам команду:
@reboot sleep 30 && xmrig/build/xmrig -o gulf.moneroocean.stream:10128 -u 41d...zd
Здесь мы используем полный путь к файлу (xmrig/build/xmrig) для его запуска.
@reboot sleep 30 - означает запуск нашего майнинга после перезагрузки через 30 секунд. Сохраняем файл и выходим нажав Ctrl + X, затем Y и ввод.