Новости проекта:

Программы скачать
Конкурсы
Заработать на сервер

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

2015.08.04 14:25:12
Настройка пула добычи криптовалют [Stratum+MPOS] на Ubuntu 14.04
[#1]
No avatar

0

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

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

apt-get update
apt-get upgrade


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

apt-get install build-essential libboost-all-dev libssl-dev libdb5.1++-dev libcurl4-openssl-dev dh-autoreconf git

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

mkdir ~build/wallet
cd ~build/wallet
git clone git://github.com/bitcoin/bitcoin/tree/v0.9.4.git


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

cd bitcoin-0.9.4
./autogen.sh
./configure --with-incompatible-bdb
make


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

cp bitcoind /usr/bin/
mkdir /root/.bitcoin
vi /root/.bitcoin/bitcoin.conf


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

server=1
daemon=1
gen=0
rpcport=9033
listen=0
rpcallowip=127.0.0.1
rpcuser=bitcoin-rpcuser
rpcpassword=JKHgfkjdsh323kjHGKJHgf2343kjhKJHfg32rgk32hkgJHFKJhKHF


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

Установка Redis

Пул NOMP данные о шарах майнеров хранит в Redis, поэтому просто инсталлируем его, он не требует каких либо настроек и работает прямо "из коробки":

apt-get install redis-server

Установка и настройка NOMP

Переходим непосредственно к установке и настройке NOMP. Для этого инсталлируем необходимые пакеты:

apt-get install node.js npm

Клонируем репозиторий NOMP:

git clone git://github.com/zone117x/node-open-mining-portal.git

Приступаем к настройке. Конфигурация NOMP состоит из трех основных файлов (которые могут быть расширены), это основной конфиг, конфиг стратум-сервера и конфиг кошельков, рассмотрим эти настройки:

Файл config.json, это основной конфигурационный файл вашего пула, в нем мы указываем настройки логирования, порт для доступа к статистике и веб-интерфейсу, настройки redis сервера.

# config.json
{
"logLevel": "error",
"logColors": true,

"cliPort": 17117,

"clustering": {
"enabled": true,
"forks": "auto"
},

"defaultPoolConfigs": {
"blockRefreshInterval": 1000,
"jobRebroadcastTimeout": 55,
"connectionTimeout": 600,
"emitInvalidBlockHashes": false,
"validateWorkerUsername": true,
"tcpProxyProtocol": false,
"banning": {
"enabled": true,
"time": 600,
"invalidPercent": 50,
"checkThreshold": 500,
"purgeInterval": 300
},
"redis": {
"host": "127.0.0.1",
"port": 6379
}
},

"website": {
"enabled": true,
"host": "0.0.0.0",
"port": 80,
"stratumHost": "xx.xx.xx.xx",
"stats": {
"updateInterval": 60,
"historicalRetention": 43200,
"hashrateWindow": 300
},
"adminCenter": {
"enabled": false,
"password": "MySuperPuperPassword000"
}
},

"redis": {
"host": "127.0.0.1",
"port": 6379
},

"profitSwitch": {
"enabled": false,
"updateInterval": 600,
"depth": 0.90,
"usePoloniex": true,
"useCryptsy": true,
"useMintpal": true,
"useBittrex": true
}
}


Файл pool-configs/bitcoin.json, в этом файле мы прописываем основные настройки нашего stratum пула, доступ к кошельку, доступ к кошельку с выплатами (в данном случае он один и тот же), настройки vardif, комиссий и т.д.

Для настроек этого файла нам потребуется знать номер кошелька нашего bitcoin сервера, для этого выполним;

# bitcoind getaddressesbyaccount ""
[
"1J4ErTrQeA3tNX9qSNViTJEYjiKXxa4bxV"
]


Пример кошелька Bitcoin - 1J4ErTrQeA3tNX9qSNViTJEYjiKXxa4bxV, его будем использовать для пула и выплат комиссий.

# pool-configs/bitcoin.json
{
"enabled": true,
"coin": "bitcoin.json",

"address": "1J4ErTrQeA3tNX9qSNViTJEYjiKXxa4bxV",

"rewardRecipients": {
"1J4ErTrQeA3tNX9qSNViTJEYjiKXxa4bxV": 2
},

"paymentProcessing": {
"enabled": true,
"paymentInterval": 20,
"minimumPayment": 0.05,
"daemon": {
"host": "127.0.0.1",
"port": 9033,
"user": "bitcoin-rpcuser",
"password": "JKHgfkjdsh323kjHGKJHgf2343kjhKJHfg32rgk32hkgJHFKJhKHF"
}
},

"ports": {
"3333": {
"diff": 64,
"varDiff": {
"minDiff": 64,
"maxDiff": 1024,
"targetTime": 15,
"retargetTime": 90,
"variancePercent": 30
}
}
},

"daemons": [
{
"host": "127.0.0.1",
"port": 9033,
"user": "bitcoin-rpcuser",
"password": "JKHgfkjdsh323kjHGKJHgf2343kjhKJHfg32rgk32hkgJHFKJhKHF"
}
],

"p2p": {
"enabled": false,
"host": "127.0.0.1",
"port": 4444,
"disableTransactions": true
},

"mposMode": {
"enabled": false,
"host": "127.0.0.1",
"port": 3306,
"user": "bitcoin",
"password": "Qwe123",
"database": "bitcoin",
"checkPassword": false,
"autoCreateWorker": true
}


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

# coins/bitcoin.json
{
"name": "Bitcoin",
"symbol": "BTC",
"algorithm": "sha256"
}


Теперь необходимо инсталлировать все зависимости NOMP, для этого выполнил команду:

npm install

На этом настройка NOMP окончена, осталось только запустить сервер. Я знаю два варианта это сделать, использовать nohup или screen.

# nohup
nohup node init.js


или

#screen
screen node init.js


После этого можно зайти на веб-интерфейс и убедиться, что все работает как надо:

http://xx.xx.xx.xx/

Настройка пакетного фильтра (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:44:42

556
Серверов всего
490
Серверов онлайн
4180
Игроков онлайн
Добавить сервер