#1 2015.08.04 14:25:12
0
Подготовка сервера, установка необходимого ПО
Перед началом настройки необходимо обновить все ПО на сервере до последней версии:
Для сборки кошелька (wallet) необходимо установить средства разработки и дополнительные библиотеки:
Это еще не все необходимое ПО, но мы будем устанавливать его по мере необходимости. Далее склонируем с Git нужные нам исходные файлы для сборки (напомню, мы устанавливаем пул для монеты Bitcoin версии 0.9.4):
После этого приступаем непосредственно к сборке:
После того как у нас скомпилировался кошелек, копируем его бинарный файл в /usr/bin и создаем файл конфигурации:
Помещаем в файл bitcoin.conf следующие строчки:
За какую настройку отвечает каждая из этих строк вы можете прочитать в wiki или другом источнике. После сохранения этого файла, запускаем демон кошелька bitcoind, наблюдаем за синхронизацией в файле /root/.bitcoin/debug.log. В среднем процесс синхронизации Bitcoin у меня занимал до 3х суток.
Установка Redis
Пул NOMP данные о шарах майнеров хранит в Redis, поэтому просто инсталлируем его, он не требует каких либо настроек и работает прямо "из коробки":
Установка и настройка NOMP
Переходим непосредственно к установке и настройке NOMP. Для этого инсталлируем необходимые пакеты:
Клонируем репозиторий NOMP:
Приступаем к настройке. Конфигурация NOMP состоит из трех основных файлов (которые могут быть расширены), это основной конфиг, конфиг стратум-сервера и конфиг кошельков, рассмотрим эти настройки:
Файл config.json, это основной конфигурационный файл вашего пула, в нем мы указываем настройки логирования, порт для доступа к статистике и веб-интерфейсу, настройки redis сервера.
Файл pool-configs/bitcoin.json, в этом файле мы прописываем основные настройки нашего stratum пула, доступ к кошельку, доступ к кошельку с выплатами (в данном случае он один и тот же), настройки vardif, комиссий и т.д.
Для настроек этого файла нам потребуется знать номер кошелька нашего bitcoin сервера, для этого выполним;
Пример кошелька Bitcoin - 1J4ErTrQeA3tNX9qSNViTJEYjiKXxa4bxV, его будем использовать для пула и выплат комиссий.
И последний файл конфигурации, непосредственно самой монеты:
Теперь необходимо инсталлировать все зависимости NOMP, для этого выполнил команду:
На этом настройка NOMP окончена, осталось только запустить сервер. Я знаю два варианта это сделать, использовать nohup или screen.
или
После этого можно зайти на веб-интерфейс и убедиться, что все работает как надо:
Авторизуйтесь, для доступа к ссылке
Настройка пакетного фильтра (firewall)
Создаем файл /etc/iptables.rule с таким содержанием:
Применяем правила пакетного фильтра:
Применение правил пакетного фильтра при старте ОС:
Добавить в конце:
Наш пул полностью готов!
Перед началом настройки необходимо обновить все ПО на сервере до последней версии:
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=JKHgfkjdsh323kjHGKJHgf2343kjhKJHfg32 rgk32hkgJHFKJhKHF
За какую настройку отвечает каждая из этих строк вы можете прочитать в 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": "JKHgfkjdsh323kjHGKJHgf2343kjhKJHfg32rgk32h kgJHFKJhKHF"
}
},
"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": "JKHgfkjdsh323kjHGKJHgf2343kjhKJHfg32rgk32h kgJHFKJhKHF"
}
],
"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
После этого можно зайти на веб-интерфейс и убедиться, что все работает как надо:
Авторизуйтесь, для доступа к ссылке
Настройка пакетного фильтра (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