Как стать автором
Обновить

Bitcoin: реализация фермы из двух видеокарт ati 7850 на ubuntu

Настройка Linux *
Из песочницы

Доброе время суток, хабражители.


Это мой первый пост на получение инвайта за который дали инвайт (спасибо!). Ничего умнее не пришло в голову, чем отписаться о собственном опыте добычи bitcoin (BTC).
Сборка и настройка фермы добычи BTC уже описана и на Habrahabr, и на различных тематических площадках, пулах. Однако, в процессе вылезали всевозможные недоговорки статей, в связи с чем пришлось гуглить и производить тесты, в моем случае на работающем файловом сервере.
Итак, приступим:

Валюта биткоин, при всех ее недостатках, которые можно привести к общепринятым высказываниям:

— это пирамида;
— это не подкрепленная ничем валюта, завтра она обесценится;
— курс валюты нестабилен;
— зачем это;
имеет важное и неоспоримое достоинство — хороший курс к доллару.
Исходя из вышеперечисленного считаю, что это заработок, которым не стоит пренебрегать. И около года добывал BTC на 3 видеокартах ATI, установленных на машины инженеров- проектировщиков, в нерабочее время.
В течение года добывал на скорости 200 MH/s за ночь, что составляло около 0,02 BTC в сутки. Когда в начале апреля 2013 курс уверенно пошел вверх, я получил рублевый эквивалент своих накоплений по курсу 1 BTC = $200, что в пересчете на рубли составило около 15 000.
Курс снова упал до $100-120 за 1 BTC, а я задумался о получении прибыли, аналогичной своей официальной зарплате админа в регионе.
Были приобретены в ближайшем магазине две видеокарты ATI 7850 производства Gigabyte по 5500 рублей за штуку и смонтированы в файловый сервер, он же торрентокачалка на ubuntu 12. Выбор был сделан исходя из наличия в мат.плате сервера 2-х портов PCI-E и блока питания на 500 ватт.
bessome@xxx:~$ uname -a
Linux xxx 3.5.0-22-generic #34-Ubuntu SMP Tue Jan 8 21:47:00 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux


Ubuntu стояла с графической оболочкой, поэтому оставалось выкатить только драйвера. Все, что я делал, было взято отсюда
Если раскидывать поэтапно, то выглядело так:
1. Подготовка
sudo apt-get update
sudo apt-get upgrade
sudo apt-get remove nvidia-common
sudo apt-get install libqtgui4 python-setuptools python-numpy subversion g++ libboost-all-dev autoconf


2. Качаем драйвера ATI текущие (13.1 на данный момент) с сайта ati.com (так как видеокарты относительно новые, и файлы по ссылке могут просто не увидеть видеокарты).
3. Инсталлируем драйвера «sh atixxxxxxxxx.run --install» — я обошелся без сборки пакетов. Да, в процессе ставил linux-headers (apt-get install linux-headers-(uname -r)) для текущего ядра.
Обязательно запускаем:
aticonfig -f --initial --adapter=all
cd /opt/
mkdir bfgminer

4. Устанавливаем python-jsonrpc
svn checkout svn.json-rpc.org/trunk/python-jsonrpc
cd python-jsonrpc/
sudo python setup.py install

5. Качаем и ставим bfgminer:
wget https://github.com/luke-jr/bfgminer/archive/bfgminer.zip

распаковываем
unzip bfgminer.zip

Собираем:
./autogen.sh

Компилируем:
make -j3


После всего проделанного в папке bfgminer-xxx появляется исполняемый файл bfgminer. При запуске майнер сам все карты находит, начинает добывать BTC. Строка запуска чуть далее.

Оказалось, что средняя скорость 200 MH/s с одной видеокарты, ожидал большего. Надо заметить, что при включении crossfire в ATI Control Panel (а я его поставил при монтаже, и оказалось, что расстояние между PIC_E портами материнской платы великовато — пришлось натягивать) производительность падает, Так что убрал я этот проводок и вздохнул спокойно.
При изучении aticonfig --help родился следующий скрипт:
#!/bin/sh

export DISPLAY=:0.0
/usr/bin/aticonfig --od-disable --adapter=0
/usr/bin/aticonfig --od-enable --adapter=0
/usr/bin/aticonfig --adapter=0 --od-setclocks=1150,1200
/usr/bin/aticonfig --pplib-cmd "set fanspeed 0 80"

export DISPLAY=:0.1
/usr/bin/aticonfig --od-disable --adapter=1
/usr/bin/aticonfig --od-enable --adapter=1
/usr/bin/aticonfig --pplib-cmd "set fanspeed 1 80"
/usr/bin/aticonfig --adapter=1 --od-setclocks=1150,1200

/opt/bfgminer-2.6.3/bfgminer --url http://pit.deepbit.net:8332 -O xxxx@xxxx.xx:xxxxxx --gpu-dyninterval 7


Делает он собственно вот что: сначала для видеокарты 0 (default), в потом для видеокарты 1 отключает (вдруг был рестарт скрипта) и включает overdrive (od) и дает возможность руками установить частоту процессора видеокарты (GPU) и памяти видеокарты. --od-setclock=частота процессора, частота памяти.
При тестировании вывел, что частота памяти на майнинг не влияет и поставил по нижней границе. Что касается частоты GPU, то выяснилось, что драйвер падает при частоте выше 1150 Мегагерц. Полагаю, это связано с мощностью блока питания, который две видеокарты, материнку, процессор, охлаждение и жесткий просто напросто не вытягивает. В среднем производительность одной карты после разгона составила 350 Мегахешей, что полностью меня удовлетворило.
aticonfig --adapter=x --od-gettemperature — посмотреть температуру адаптера х.

Сам вывод bfgminer:
image

Теперь считаем деньги:

На сегодня курс BTC/USD = $120/BTC. Курс $ к рублю составляет 31,46 за 1 USD.
deepbit.net показывает, что я добываю около 0.06 BTC в сутки.
При текущей ситуации, ниже $100 продавать я 1 BTC точно не буду, то есть минимум
30 * 0.06 = 1.8 BTC в месяц.
$100 * 1.8 = $180 в месяц.
$180 * 31,4 = 5 650 в месяц.
То есть, за 2 месяца работы файлового сервера, если я ничего не спалю в конторе, я верну стоимость видеокарт и уйду в чистую прибыль. Приятная прибавка к зарплате. Кстати, вывод BTC в рубли мне обходится в 6% от суммы.

Теперь смотрим, что нужно, чтобы иметь 35 000 рублей в месяц ничего не делая:

1. Халявное электричество (хотя затраты на него очень невелики — 10%, по моим подсчетам). Например, если добывать дома на лоджии — лучшее охлаждение и шумоизоляция, можно поставить трехзонный электросчетчик и экономить ночами.
2. Материнская плата с 2-мя или более разъемами PCI-E = 3000 рублей. Смотрю в сторону матерей под AMD, ибо дешевле они; процессор от 3000 рублей; память 700 рублей — копейки. Видеокарта от 5500 рублей за штуку, на материнскую плату планирую ставить минимум 3 штуки; 2 блока питания по 1500 рублей (один для материнской платы обязательно с разъемом питания для видеокарты; второй с двумя разъемами для видеокарты — есть такие, подороже). То есть один блок питания будет питать видеокарты, другой материнскую плату, и если что дублировать первый. Корпус не нужен, обдув будет лучше. Всего на ферму выходит 26200 рублей.
3. Одна ферма добывает со скоростью 350 * 3 = 1050 MH/s, что в рублях составит
(0,08 BTC * 30 дней * $100 * 31.4 рубля) = 7500 рублей в месяц
и полностью себя окупит за 4 месяца.
4. Чтобы иметь 35000 в месяц нужно 5 (без малого) ферм. Считаем 5*26200 = 131 000 рублей (стоимость непрестижной подержанной иномарки или ВАЗ года этак 2000 выпуска).
5 Пересчитываем окупаемость вложений:
5 ферм * 1050 MH/s = 5250 MH/s,
то есть 0,4 BTC в день.
0,4 * 30 дней * $100 * 31,4 = 37 680 (- 10% электричество 3768 = 33 912 рублей).

UPD 26.04.2013: Внимание, чтобы получить такую же прибыль по тому же курсу BTC/USD = $120 (как самому возможному на текущий момент), пересчиталось количество ферм по 3 видеокарты (1050 MH/s): если неделю назад было 4.7 ферм, то на данный момент 5,3 фермы. То есть наши пять ферм уже приносят 32 883 рублей, без учета стоимости электричества.
Однако, курс вырос за это время и составляет $140/BTC, так что то на то и вышло.
Рост сложности по экспоненте ставит под вопрос дальнейшую «любительскую» добычу на одной-двух видеокартах.


Или 452 160 рублей в год. Годовая прибыль на вложенные средства составляет 245%.
6. Так как процессор свободен (у меня загрузка 7%), можно сделать маленький дата-центр а-ля облако, и на нем размещать, например сайты.
7. Анализируя историю роста сложности отсюда, пришел к выводу, что график роста сложности похож на экспоненту (Показательная функция (экспонента). Это функция вида f(x)=a в степени x. Вывод простой: с каждым блоком сложность будет увеличиваться в разы. По моим прикидкам в неделю около 14% пока. Так что жду либо выхода супер-быстрых видеокарт, либо оптимизаций добычи BTC. Однако, подозреваю что с ростом сложности так или иначе вырастет курс BTC/USD.

Нерешенные проблемы и недостатки:

1. Автозапуск скрипта из rc.local и автозагрузки графической оболочки через cron и автозапуск Gnome не работает, с этим разбираюсь.
UDP 26.04.2013 — start-stop-daemon из автозагрузки и из rc.local тоже не стартует скрипт. Видимо с моей ubuntu что-то не так.
2. Запуск в терминале типа PuTTy скрипта ругается на отсутствие Х-ов, однако сам bfgminer стартует.
3. Греется не сильно, что-то около 72 градусов на видеокарту. Видимо, потому что новые. Смотрим температуру командой aticonfig --odgt --adapter=all, скорость кулера aticonfig --pplib-cmd "get fanspeed 0" для карты 0 или aticonfig --pplib-cmd "get fanspeed 1" для карты 1.
4. Первая видеокарта (которая default) добывает с несколько меньшей скоростью, на 30 MH/s меньше. Видимо потому, что она еще тянет за собой рабочий стол с графикой и TeamViewer. Устранить проблему, думаю лучше всего приобретением материнской платы со встроенной в чипсет видеокартой, и к ней цеплять монитор, запускать X-ы.
UPD 26.04.2013: отключил все в comipz, в том числе и панельки. Один рабочий стол, на нем ярлык для майнинга. Все остальное запускаю через терминал. Теперь разница составляет ~ 10 MH/s

Необходимо учитывать амортизацию оборудования и рост сложности вычисления хешей. Решение простое, когда видеокарте исполняется 8-9 месяцев, выставляем ее на продажу, за 60-70% стоимости, взамен ее приобретаем новую современную. Тут скупиться не надо, потерять можно больше в виде падения количества заработанных BTC или уничтоженной видеокарты.

Выводы о использовании такого способа заработка оставляю за аудиторией, прошу битвы не начинать. Думаю, что каждый сам для себя решит вопрос о необходимости участия в такой «пирамиде» по зарабатыванию денег.
Тем, кто дочитал до этой строки: «Спасибо за внимание! ».
Теги:
Хабы:
Всего голосов 42: ↑17 и ↓25 -8
Просмотры 75K
Комментарии Комментарии 33