Настройка пула добычи криптовалют [Stratum+MPOS] на Ubuntu 13.10

#1 2015.08.04 07:40:16

0

Ubuntu 13.10 + Strarum + MPOS

В этой статье описано как настроить собственный пул по добыче криптовалюты. В данной статье все данные настроек будут относиться к монете EarthCoin, хотя, это не столь важно, все данные можно использовать практически для всех scrypt валют.

Начать надо с выбора сервера, купить физический или арендовать виртуальный. Рекомендуем DigitalOcean (Авторизуйтесь, для доступа к ссылке). Если на вашем пуле будет всего одна монета - достаточно будет купить 2 процессора и 4 гигабайта оперативной памяти.

Пара слов о защите, естественно общее правило для всех пулов - не хранить криптовалюту на пулах!

Общие рекомендации для сервера пула, это конечно пакетный фильтр, fail2ban и самые последние версии ПО, в лучшем случае - хранить кошельки на отдельном сервере.

Данная статья писалась в процессе развертывания пула на виртуальном сервере под управление с ОС Ubuntu 13.10, в небольшими изменениями ее можно применять и на других операционных системах этого семейства.

Подготовка сервера, установка необходимого ПО

Перед началом настройки необходимо обновить все ПО на сервере до последней версии:

apt-get update
apt-get upgrade


Для сборки кошелька (wallet) необходимо установить средства разработки и дополнительные библиотеки:

apt-get install build-essential libboost1.53-all-dev libssl-dev libdb5.3++-dev libcurl4-openssl-dev git python-simplejson python-mysqldb python-pylibmc python-twisted memcached

Это еще не все необходимое ПО, но мы будем устанавливать его по мере необходимости. Далее клонируем с Git нужные нам исходные файлы для сборки (напомню, мы устанавливаем пул для монеты EarthCoin):

mkdir ~build/wallet
cd ~build/wallet
git clone git://github.com/earthcoinproject/earthcoin.git


После этого приступаем непосредственно к сборке:

cd earthcoin/src
make -f makefile.unix USE_UPNP=- USE_IPV6=-


После того как у нас скомпилировался кошелек, копируем его бинарный файл в /usr/bin и создаем файл конфигурации:

cp earthcoind /usr/bin/
mkdir /root/.earthcoin
vi /root/.earthcoin/earthcoin.conf


Помещаем в файл earthcoin.conf следующие строчки:

server=1
daemon=1
gen=0
rpcport=9033
listen=0
rpcallowip=127.0.0.1
rpcuser=earthcoin-rpcuser
rpcpassword=DKkdjhk34324jhgkjdshgKFJHAgkjfhd32krj3hkJHDFKJSDhf


За какую настройку отвечает каждая из этих строк вы можете прочитать в wiki или другом источнике. После сохранения этого файла, запускаем демон кошелька earthcoind, наблюдаем за синхронизацией в файле /root/.earthcoin/debug.log. В среднем процесс синхронизации заняло около 1,5-2 часов.

Настройка stratum сервера

Пока синхронизируется кошелек - не будем терять времени, и перейдем к настройкам stratum сервера, для этого клонируем его исходные файлы с Git (в дополнение клонируем и необходимые библиотеки Python):

cd /opt/
git clone git://github.com/Crypto-Expert/stratum-mining.git
cd stratum-mining/externals
git clone git://github.com/Tydus/litecoin_scrypt.git
git clone git://github.com/ahmedbodi/stratum.git


Инсталлируем необходимые для запуска сервера дополнения Python:

cd /opt/stratum-mining/externals/litecoin_scrypt
python setup.py install
cd /opt/stratum-mining/externals/stratum
python setup.py install


Приступаем к настройке, нам необходимо узнать номер кошелька нашего earthcoind:

# earthcoind getaddressesbyaccount ""
[
"eT8qysLHpaSACJjcdJThDErVn2d7LpkHPt"
]


Теперь открываем и редактируем конфигурационный файл stratum сервера:

cd /opt/stratum-mining/conf
cp config_sample.py config.py
vi config.py


Основные настройки:

#
CENTRAL_WALLET = 'eT8qysLHpaSACJjcdJThDErVn2d7LpkHPt'
#
LITECOIN_TRUSTED_HOST = '127.0.0.1'
LITECOIN_TRUSTED_PORT = 9033
LITECOIN_TRUSTED_USER = 'earthcoin-rpcuser'
LITECOIN_TRUSTED_PASSWORD = 'DKkdjhk34324jhgkjdshgKFJHAgkjfhd32krj3hkJHDFKJSDhf'
#
LOGFILE = 'stratum.log''
#
LISTEN_SOCKET_TRANSPORT = 3333
#
DB_MYSQL_HOST = 'localhost'
DB_MYSQL_DBNAME = 'earthcoin'
DB_MYSQL_USER = 'earthcoin'
DB_MYSQL_PASS = 'Qwe123'
#
POOL_TARGET = 32
VARIABLE_DIFF = True
VDIFF_MIN_TARGET = 15
VDIFF_MAX_TARGET = 64
#


Инсталлируем и создаем базу данных MySQL, именно в ней будут храниться все данные о пользователях, блоках, выплатах и т.д.

apt-get install mysql-server
mysql -p -u root
mysql> create database earthcoin;
mysql> grant all privileges on earthcoin.* to earthcoin@localhost identified by 'Qwe123';
mysql> flush privileges;


Клонируем с Git веб-интерфейс PHP-MPOS:

mkdir ~build/mpos
cd ~build/mpos
git clone git://github.com/MPOS/php-mpos.git


Заливаем дамп базы данных в базу MySQL:

cd php-mpos/sql
mysql -p -u earthcoin earthcoin < 000_base_structure.sql
*** Пароль Qwe123 ***


После этого можно запустить startum сервер. Для этого выполним команды:

cd /opt/stratum-mining/
mv launcher.tac launcher-earthcoin.tac
twistd -ny launcher-earthcoin.tac


Демон должен перейти в режим готовоности для майнинга, если этого не произошло - смотрите на возникшие ошибки, возможно, в вашей системе не будет хватать некоторых библиотек, все они легко устанавливаются через apt-get.

Если запуск удался, выходим из twistd комбинацией Ctrl-C, и создаем файл для запуска:

echo twistd -y launcher-earthcoin.tac > start.sh
chmod 755 start.sh
./start.sh


Смотрим содержимое файла log/startum.log на предмет ошибок, если их нет - все сделали правило. Переходим к настройке веб-интерфейса.

Настройка веб-интерфейса (фронтенд PHP-MPOS)

Инсталлируем веб-сервер и все необходимое для работы фронтенда:

apt-get install apache2 php5 php5-curl php5-xmlrpc php5-memcached php5-mysqlnd php5-json

Копируем содержимое ~build/mpos/public в каталог /var/www (или другой, если вы прописывали его в конфигурационных файлах apache2).

Редактируем конфигурационный файл:

cd /var/www/earthcoin/include/config
cp global.inc.dist.php global.inc.php
vi global.inc.php


Основные настройки:

$config['algorithm'] = 'scrypt';
$config['db']['host'] = 'localhost';
$config['db']['user'] = 'earthcoin';
$config['db']['pass'] = 'Qwe123';
$config['db']['port'] = 3306;
$config['db']['name'] = 'earthcoin';
$config['wallet']['type'] = 'http';
$config['wallet']['host'] = '127.0.0.1:9033';
$config['wallet']['username'] = 'earthcoin-rpcuser';
$config['wallet']['password'] = 'DKkdjhk34324jhgkjdshgKFJHAgkjfhd32krj3hkJHDFKJSDhf';
$config['gettingstarted']['coinname'] = 'EarthCoin';
$config['gettingstarted']['coinurl'] = 'http://earthcoin.biz/';
$config['gettingstarted']['stratumport'] = '3333';
$config['price']['url'] = 'http://pubapi.cryptsy.com';
$config['price']['target'] = '/api.php?method=singlemarketdata&marketid=139';
$config['price']['currency'] = 'BTC';
$config['currency'] = 'EAC';
$config['txfee'] = 0.1; <= Процент при выводе монет
$config['payout_system'] = 'prop';
$config['fees'] = 0; <= Общий процент пула
$config['reward_type'] = 'block';
$config['memcache']['enabled'] = true;
$config['memcache']['host'] = 'localhost';
$config['memcache']['port'] = 11211;
$config['memcache']['keyprefix'] = 'earthcoin_';
$config['memcache']['expiration'] = 90;
$config['memcache']['splay'] = 15;


Стартуем веб-сервер (/etc/init.d/apache2 restart) и пытаемся зайти на веб интерфейс:

http://ваш_внешний_IP/

Создаем первого пользователя (регистрация), он будет основным администратором системы. Производим необходимые настройки в пункте Settings.

Создаем воркеров и начинаем майнинг!
Отредактировано: 2015.08.04 07:45:45
#2 2015.08.04 07:42:18

0

Создаем воркеров и начинаем майнинг!

Пост-настройка, CRON

Копируем содержимое каталога ~build/mpos/cronjobs в каталог /var/cronjobs (или другой).

Исправляем путь к нашему веб-фронтенду:

vi /var/cronjobs/shared.inc.php
define("BASEPATH", "/var/www/");


Добавляем запуск скрипта в CRON:

crontab -e
*/5 * * * * /var/cronjobs/run-crons.sh -f


Настройка пакетного фильтра (firewall)

Создаем файл /etc/iptables.rule с таким содержанием:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 3333 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -j DROP
COMMIT


Применяем правила пакетного фильтра:

iptables-restore < /etc/iptables.rule

Применение правил пакетного фильтра при старте ОС:

vi /etc/network/interfaces

Добавить в конце:

pre-up iptables-restore < /etc/iptables.rule
post-down iptables-save > /etc/iptables.rule


Наш пул полностью готов!
Отредактировано: 2015.08.04 17:45:17
8193
Серверов всего
6113
Серверов онлайн
157062
Игроков онлайн
Добавить сервер