Энергоэффективный майнинг на примере NovaСoin

8 мая 2014, четверг 22:58
для раздела Блоги
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, поскольку в дистрибутиве есть некоторые проблемы с консольными шрифтами — в кирилице корректно отображаются только символы одинакового начертания для латиницы.

Временную зону ставим свою. Никаких батареек плата не содержит, поэтому при отключении питания время сбрасывается. Если есть доступ в сеть, время автоматически синхронизируется. Не очень хороший расклад, но если повесить кубик на любой бесперебойник, проблемы не будет. В противном случае, необходимо будет контролировать время в программах, для которых это критично.
Клавиатуру имеет смысл настраивать, если работать непосредственно с 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.
Отлично! Скачал и установил на винду рекомендуемый tightVNC
Нет коннекта!
Смотрю открыт ли порт 5900:
netstat -tulpan
Eсли его нет в списке то 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%
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают