воскресенье, 28 декабря 2014 г.

Создание litecoin пула с MPOS на Ubuntu 14.04

Предположим, что есть необъяснимая необходимость запустить litecoin пул, да не простой, а с MPOS (Mining Portal Open Source). Работать это всё будет на базе LTS релизе Ubuntu 14.04.1, естественно в серверной редакции и, конечно же, x64.

Немного о требованиях. Запустится всё может на одноядерном компьютере с 512 Мб оперативной памяти, но в частности здесь рекомендуется использовать как минимум двухядерник с гигабайтом памяти, а здесь уже хотя бы два гигабайта ОЗУ. Таким образом надо отталкиваться от конфигурации как в старых рекламах магазинов - "два ядра, два гига" + резерв. Так же потребуется настроить сетевое оборудование, в случае если пул будет служить не только для частных нужд в локальной сети.

Установка зависимостей

Для начала обновим систему:
sudo apt-get update; apt-get upgrade
Затем установим пакет software-properties-common, так как в дальнейшем нужно будет устанавливать пакет из PPA:
sudo apt-get install software-properties-common
Для python-stratum:
sudo apt-get install python-twisted python-mysqldb python-dev
python-setuptools python-memcache python-simplejson python-pylibmc
sudo easy_install -U distribute

Для MPOS:
sudo apt-get install php5-memcached php5-mysqlnd php5-curl
libapache2-mod-php5 build-essential libboost-all-dev
libcurl4-openssl-dev libdb5.1-dev libdb5.1++-dev mysql-server
sudo apache2ctl -k stop; sleep 2; sudo apache2ctl -k start
Litecoind будем устанавливать из PPA.
sudo add-apt-repository ppa:k-dg/litecoin
sudo apt-get update
sudo apt-get install litecoind

Stratum сервер

В качестве Stratum сервера попробуем использовать NOMP (Node Open Mining Portal). Для запуска выполним несколько команд:
sudo apt-get install git node
git clone https://github.com/zone117x/node-open-mining-portal
cd node-open-mining-portal
cp config_example.json config.json
Отредактируем config.json. В нём нужно найти строки
 "website": {
         "enabled": true,
И заменить значение true на false. Таким образом мы выключим веб-сервер NOMP (потому что собираемся использовать веб-интерфейс MPOS). Теперь подредактируем конфигурацию для конкретного пула:
cp pool_configs/litecoin_example.json pool_configs/litecoin.json
В файле pool_configs/litecoin.json нужно заменить значение "address" на адрес своего кошелька... ну или на такой - "Lcq4cicVZQEvGPa8W4FCgjR9fMehvgbQL2" ;) В этом же файле нужно найти раздел "mposMode" и заменить значение "false" на "true". Там же поменяйте значение "ports" на "3333". И последнее... в разделе про демонов "daemons" следует поменять имя пользователя и пароль на те, что используются для rpc-подключений к litecoind, либо сделать как-то так, чтобы они самое главное совпадали. Теперь можно запустить наш Stratum-сервер командой:
node init.js

MPOS

Загрузим последнюю версию MPOS:
cd /var/www
sudo git clone git://github.com/MPOS/php-mpos.git MPOS
cd MPOS
sudo git checkout master
Для того, чтобы сервер мог посылать сообщения, установим почтовый сервер postfix:

sudo apt-get install postfix
В запущенном Postfix Configuration выберем параметр по умолчанию "Internet site".
Теперь создадим базу данных и импортируем структуру:
sudo mysql -p -e "create database mpos"
sudo mysql -p mpos < sql/000_base_structure.sql
Можно перейти к настройке MPOS. Дадим права веб-сервера для каталогов, которые этого заслуживают:
sudo chown -R www-data templates/compile templates/cache logs
Для удобства возьмём шаблон файла конфигурации:
sudo cp include/config/global.inc.dist.php include/config/global.inc.php
Отредактируем созданный конфиг подобным образом:
$config['db']['host'] = 'localhost';
$config['db']['user'] = 'root';
$config['db']['pass'] = 'root';
$config['db']['port'] = 3306;
$config['db']['name'] = 'mpos';
[...]
$config['wallet']['type'] = 'http';
$config['wallet']['host'] = 'localhost:19334';
$config['wallet']['username'] = 'testnet';
$config['wallet']['password'] = 'testnet';
[...]
$config['gettingstarted']['stratumurl'] = 'localhost';
Теперь необходимо найти в конфиге $config['SALT'] и
$config['SALTY'], и установить вместо SALT и SALTY пароли (разные) минимум в 24-ре символа.

И ещё одно... необходимо отредактировать файл
/usr/local/lib/python2.7/dist-packages/stratum-0.2.13-py2.7.egg/stratum/websocket_transport.py
поменяв в нём строчку: from autobahn.websocket import WebSocketServerProtocol, WebSocketServerFactory на from autobahn.twisted.websocket import WebSocketServerProtocol, WebSocketServerFactory
На этом почти всё. Осталось указать Apache, чтобы открывал по умолчанию именно сайт MPOS при обращении. Для этого в файле /etc/apache2/sites-available/000-default.conf значение параметра DocumentRoot изменим на /var/www/MPOS/public

Настройка Litecoind

Litecoind без указания логина и пароля на подключения запускаться не будет поэтому следует создать ~/.litecoin/litecoin.conf и указать в нём что-то вроде:
rpcuser=testuser
rpcpassword=testpassword

Запускаем командой litecoind --daemon --rpcport=19334 и лучше подождать несколько часов пока закончится синхронизация с сетью.

В общем то это всё. Можно заходить в веб-интерфейс пула и регистрировать администратора. Пул будет выглядеть вот так:
Главная страница

Статистика пула
Но это нормально. Далее уже идёт настройка "под себя".

Для удобства, запуск litecoind и node init.js можно поместить в автозагрузку.

2 комментария:

  1. Привет! Можешь помочь создать pool для конкретной монеты?

    ОтветитьУдалить
    Ответы
    1. Приветствую. Нет, не на столько хорошо разбираюсь.

      Удалить