Энергоэффективный майнинг на примере NovaСoin
Энергоэффективный майнинг на примере NovaСoin
NovaCoin децентрализованная криптовалюта, совмещающая в себе два равноправных способа подтверждения транзакций: Pow и PoS (мощностями и долей).
Целевой темп генерации:
PoS: 144 stake блока в сутки;
PoW: От 48 до 144 work блока в сутки.
Награда за блоки:
Work — динамическая, определяется функцией сложности;
Stake — динамическая, определяется произведением функции сложности на сумму уничтоженных генерирующей транзакцией coin*days.
Для PoW генерации нужны большие вычислительные мощности и соответствующие затраты на электричество, в то время как для PoS нужно запущенное приложения кошелька и n-ое количество монет (доля) в нем. Pos майнинг начинается спустя 30 дней нахождения монет в кошельке «неподвижными». Доходность на текущий момент более30% годовых.
Держать на постоянную работу одного приложения целый ПК/Ноутбук и т.д. не целесообразно.
Сейчас довольно популярны мини ARM ПК по типу Cubieboard/Raspberry PI и т.д., потребление этих крох минимально. После некоторых раздумий был выбран Cubieboard2 (кликабельно)
Потребление электроэнергии без подключенного SSD/HDD 2.5″ не превышает 2.5W (5V DC 0.5A). Изначально на NAND Cubieboard стоит Android, но нам он не подходит ввиду отсутствия приложения «кошелька» под эту мобильную ОС. Под ARM существует другая бинарная сборка для Debian.
В качестве ОС мой выбор пал на дистрибутив Cubieez. Поставляется в виде образа для карты памяти. Качаем образ со странички анонса. Заливаем на карту памяти образ с помощью программы Win32 Disk Imager. MicroSD карты на 2Gb должно хватить, но лучше взять большего размера — пригодится. После того, как карта готова, вставляем ее в слот и загружаемся. Снимок загруженной системы позаимствован у автора дистрибутива:
Стандартные логин/пароль указаны на странице дистрибутива:
users: root / cubie
unified password: cubieboard
Default IP: 192.168.1.124(у вас будет другой, легче всего посмотреть на Web-морде маршрутизатора или любым другим способом вплоть до морзянки через светодиоды Cubieboard)
Первым делом открываем терминал и запускаем настройку нашей системы:
sudo cubie-config
Настраиваем пункты 1, 4.
1. Expand Filesystem — когда мы разворачивали образ на карту памяти, была создана файловая система, использующая часть карты. Этот пункт позволит нам задействовать все доступное место на карте памяти.
4. Internationalisation Options — позволяет задать локаль, клавиатуры и часовой пояс.
Локаль выбираем en_US.UTF-8 и ru_RU.UTF-8 (ну или кому какая нужна). По умолчанию можно выбрать любую локаль, но я рекомендую en_US, поскольку в дистрибутиве есть некоторые проблемы с консольными шрифтами — в кириллице корректно отображаются только символы одинакового начертания для латиницы.
Временную зону ставим свою. Никаких батареек плата не содержит, поэтому при отключении питания время сбрасывается. Если есть доступ в сеть, время автоматически синхронизируется. Не очень хороший расклад, но если повесить кубик на любой UPS, проблемы не будет. В противном случае, необходимо будет контролировать время в программах, для которых это критично.
Клавиатуру имеет смысл настраивать, если работать непосредственно с Cubieboard, по SSH/VNC это не принципиально.
Можно выходить из конфигуратора.
Теперь необходимо настроить сеть. Дефолтом прописан статический адрес. Открываем настройки:
sudo nano /etc/network/interfaces
# configuring manual IP
iface eth0 inet static
address 192.168.2.124
netmask 255.255.255.0
gateway 192.168.2.1″
Меняем на собственные адреса либо прописываем DHCP:
# configuring manual IP
iface eth0 inet dhcp
#address 192.168.2.124
#netmask 255.255.255.0
#gateway 192.168.2.1″
DNS записи указываются в файле /etc/resolv.conf либо получаются по DHCP. Если настраивается DHCP необходимо прописать резерв адреса на вашем DHCP-сервере.
Теперь необходимо перезапустить сетевой интерфейс:
sudo ifdown eth0
sudo ifup eth0
Или перезагрузить кубик:
sudo reboot
Сеть появилась, качаем приложение кошелька novacoin-0.4.4.6-update3-debian-armv6l. Извлекаем из архива, нажимаем по novacoin-qt
1. Изначально скачанное приложение кошелька не запустилось, смотрим почему:
ldd novacoin-qt
ldd novacoind
———————
root@cubieez:~/Desktop/novacoin-0.4.4.6-update3-debian-armv6l# ldd novacoin-qt
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6eca000)
libQtGui.so.4 => not found
libQtCore.so.4 => not found
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb6e1e000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6db3000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6d8f000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6ca9000)
/lib/ld-linux-armhf.so.3 (0xb6ef4000)
libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0xb6c90000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6c85000)
root@cubieez:~/Desktop/novacoin-0.4.4.6-update3-debian-armv6l# ldd novacoind
libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0xb6f06000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6efa000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6edf000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb6e34000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6dc9000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6da5000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6cbf000)
/lib/ld-linux-armhf.so.3 (0xb6f2e000)
——————-
как видно из лога проблемы с библиотеками Qt.
2. Далее делаем апдейт системе:
apt-get update
3. Устанавливаем недостающие библиотеки Qt:
apt-get install libqtgui4
4. Исполнять локально на cubieboard
бинарные файлы запускаются просто указанием его имени с путем:
./novacoin-qt или нажимаем мышкой
5. Для того чтобы не держать постоянно подключенную периферию к cubieboard настроим удаленный рабочий стол:
В файле Readme.txt на рабочем столе читаем: Cubieez имеет запущенные
по умолчанию ssh и x11vnc.
Отлично! Скачал и установил на windows рекомендуемый tightVNC
Нет коннекта!
Смотрю открыт ли порт 5900:
netstat -tulpan
Если его нет в списке то VNC не запущен.
По крайней мере нужно генерировать пароль для пользователя VNC командой:
x11vnc -savepasswd(если не получается, то нужно запустить X11VNC Server локально и в соответствующих графах вбить пароль)
Идем далее: VNCServer надо запускать вместе с дисплей-менеджером. У нас стоит lightdm.
Открываем редактором:
sudo nano /etc/lightdm/lightdm.conf
В нем находим и исправляем строчки:
autologin-user=cubie
autologin-user-timeout=0
[VNCServer]
enabled=True
port=5900
width=1024
height=768
depth=8
Перезагружаем Cubieboard, пытаемся соединиться с помощью TightVNC Viewer… вводим IP, нажимаем connect, пароль.
файл «кошелька» (wallet.dat) и индексы блоков находятся по данному пути:
/root/.novacoin
синхронизация с сетью проходит за ~1.5 часа, загрузка процессора при активном PoS майнинге порядка 15%
0