Перейти к содержанию
  • записи
    4
  • комментариев
    428
  • просмотров
    65 660

Создание собственного пула UNOMP+MPOS+Merged Mining.


igorwhite

97 346 просмотров

Создание собственного пула UNOMP+MPOS+Merged Mining. Поддерживающий Stratum и Vardiff.

 

И так приступим к созданию собственного пула с мергедом и плюшками.

 

Тестовая версия пула будет основана на Bitcoin и Unobtanium.

 

Данная инструкция дает возможность настроить пул практически на любую монету с любым алгоритмом.

 

Внимание дальше очень много букафф и картинок! :o

 

Если обнаружите недочеты - пишите поправим.

 

Я использую Ubuntu Server 14.04.3 LTS -- скачать.

 

Для удобства навигации и редактирования в Ubuntu Server используйте программу mc

Для удобства навигации и редактирования в Windows используйте программу WinSCP

 

Систему установили, обновляемся:

$ sudo apt-get update$ sudo apt-get upgrade$ sudo apt-get dist-upgrade$ sudo reboot

Установим необходимые пакеты и зависимости:

$ sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev$ sudo apt-get install libboost-all-dev git mc htop npm nodejs nodejs-legacy libminiupnpc-dev redis-server

Установим nvm

$ curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh$ source ~/.profile$ nvm install 0.10.25$ nvm use 0.10.25

Изменим лимиты в /etc/security/limits.conf

$ sudo nano /etc/security/limits.conf# В конце перед end дописываем такие строки:* soft nofile 1000000* hard nofile 1000000# Сохраняемся "Ctrl+o" и "Ctrl+x"Должно получиться как на скриншоте. 

blogentry-14647-0-81648000-1446106024_thumb.jpg

 

Подредактируем (изменим размер буфера передачи) нашу сетевую карточку в /etc/rc.local

$ sudo nano /etc/rc.local# В конце перед exit дописываем строку:/sbin/ifconfig eth0 txqueuelen 10000# Сохраняемся "Ctrl+o" и "Ctrl+x"Должно получиться как на скриншоте.

blogentry-14647-0-49694700-1446106790_thumb.jpg

Перезагружаем наш сервер

$ sudo reboot

Проверим наши изменения

$ ulimit -n$ ifconfigДолжно быть как на скриншоте.

blogentry-14647-0-35036200-1446107517_thumb.jpg

 

Проверим как работает redis server, для этого запустим его.

$ redis-server

Скорее всего редис выдаст ошибку как на скриншоте: "WARNING overcommit_memory is set to 0!"

blogentry-14647-0-51685100-1446107901_thumb.jpg

 

Поправим это

$ sudo nano /etc/sysctl.confВ конце дописываем строку:vm.overcommit_memory=1# Сохраняемся "Ctrl+o" и "Ctrl+x"Перезагружаем сервер$ sudo rebootПроверяем редис$ redis-serverОшибок не должно быть.Смотри скриншот.

blogentry-14647-0-72363900-1446109083_thumb.jpg

 

Так с этим покончили, переходим к демонам наших криптомонет.

 

Устанавливаем Bitcoin

$ sudo add-apt-repository ppa:bitcoin/bitcoin$ sudo apt-get update$ sudo apt-get install libdb4.8-dev libdb4.8++-dev$ sudo apt-get install bitcoind

Создаем файл bitcoin.conf

$ mkdir ~/.bitcoin$ nano .bitcoin/bitcoin.conf# Записываем туда:server=1daemon=1rpcuser=server ## Не забудьте поменять на свой более сложный логин!    rpcpassword=ServerPass  ## Не забудьте поменять на свой более сложный пароль!port=8333rpcport=8332rpcallowip=127.0.0.1upnp=0

Создаем скрипт авто-запуска демона Bitcoin

Основа скриптов это файл "skeleton" находящийся по пути /etc/init.d

$ cd /etc/init.d/$ sudo cp skeleton bitcoind$ sudo nano bitcoind# Далее вносим следующие изменения:#! /bin/sh### BEGIN INIT INFO# Provides:          bitcoind# Required-Start:    $network $local_fs# Required-Stop:     $remote_fs# Default-Start:     2 3 4 5# Default-Stop:      0 1 6# Short-Description: Auto init bitcoind# Description:       Auto init bitcoind via booting system#                    placed in /etc/init.d.### END INIT INFO# Author: Wzor <poolcrypto.org@gmail.com>## Please remove the "Author" lines above and replace them# with your own name if you copy and modify this script.# Do NOT "set -e"# PATH should only include /usr/* if it runs after the mountnfs.sh scriptPATH=/sbin:/usr/sbin:/bin:/usr/binDESC="Bitcoin daemon"NAME=/usr/bin/bitcoindDAEMON=$NAMEDAEMON_ARGS="-daemon"CLI=/usr/bin/bitcoin-cliDAEMON_LOADER=$DAEMONPIDFILE=/var/run/$NAME.pidSCRIPTNAME=/etc/init.d/$NAMECHUID=server:server# Exit if the package is not installed[ -x "$DAEMON" ] || exit 0# Read configuration variable file if it is present[ -r /etc/default/$NAME ] && . /etc/default/$NAME# Load the VERBOSE setting and other rcS variables. /lib/init/vars.sh# Define LSB log_* functions.# Depend on lsb-base (>= 3.2-14) to ensure that this file is present# and status_of_proc is working.. /lib/lsb/init-functions## Function that starts the daemon/service#do_start(){	# Return	#   0 if daemon has been started	#   1 if daemon was already running	#   2 if daemon could not be started	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON_LOADER --test > /dev/null \		|| return 1	start-stop-daemon --start --quiet --chuid $CHUID --pidfile $PIDFILE --exec $DAEMON_LOADER -- \		$DAEMON_ARGS \		|| return 2	# Add code here, if necessary, that waits for the process to be ready	# to handle requests from services started subsequently which depend	# on this one.  As a last resort, sleep for some time.}## Function that stops the daemon/service#stop_daemon_by_cli(){        #[ ! -e "$PIDFILE" ] && echo "$DESC not running!" && return 0        start-stop-daemon --start --chuid $CHUID --exec $CLI -- -rpcwait stop        return 0}do_stop(){	# Return	#   0 if daemon has been stopped	#   1 if daemon was already stopped	#   2 if daemon could not be stopped	#   other if a failure occurred        stop_daemon_by_cli	start-stop-daemon --stop --quiet --chuid $CHUID --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $NAME        RETVAL="$?"	[ "$RETVAL" = 2 ] && return 2	# Wait for children to finish too if this is a daemon that forks	# and if the daemon is only ever run from this initscript.	# If the above conditions are not satisfied then add some other code	# that waits for the process to drop all resources that could be	# needed by services started subsequently.  A last resort is to	# sleep for some time.	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON	[ "$?" = 2 ] && return 2	# Many daemons don't delete their pidfiles when they exit.	rm -f $PIDFILE	return "$RETVAL"}## Function that sends a SIGHUP to the daemon/service#do_reload() {	#	# If the daemon can reload its configuration without	# restarting (for example, when it is sent a SIGHUP),	# then implement that here.	#	start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME	return 0}case "$1" in  start)	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"	do_start	case "$?" in		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;	esac	;;  stop)	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"	do_stop	case "$?" in		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;	esac	;;  status)	status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?	;;  #reload|force-reload)	#	# If do_reload() is not implemented then leave this commented out	# and leave 'force-reload' as an alias for 'restart'.	#	#log_daemon_msg "Reloading $DESC" "$NAME"	#do_reload	#log_end_msg $?	#;;  restart|force-reload)	#	# If the "reload" option is implemented then remove the	# 'force-reload' alias	#	log_daemon_msg "Restarting $DESC" "$NAME"	do_stop	case "$?" in	  0|1)		do_start		case "$?" in			0) log_end_msg 0 ;;			1) log_end_msg 1 ;; # Old process is still running			*) log_end_msg 1 ;; # Failed to start		esac		;;	  *)		# Failed to stop		log_end_msg 1		;;	esac	;;  *)	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2	exit 3	;;esac:

Незабываем в CHUID изменить пользователя и группу на свои это от кого будет запускаться демон Bitcoin

 

Далее

# Делаем скрипт исполняемым (находимся в папке /etc/init.d)sudo chmod +x bitcoind# Выходим из папки /etc/init.d и Запускаем скрипт:/etc/init.d/bitcoind# Должна появиться строка "{start|stop|restart|reload|force-reload}" нас интересует "start" и "stop"/etc/init.d/bitcoind start# Проверяем запустился демон Bitcoin утилитой "htop"sudo htop# Если видим как на скрине то все ОК если нет ищем ошибки!!!# Остановка нашего демона /etc/init.d/bitcoind stop # Если старт-стоп происходит без ошибок добавляем скрипт а автозагрузку sudo update-rc.d bitcoind defaults # С этого момента демон Bitcoin будет запускаться и останавливаться сам при включении или отключении сервера!!!# Если нужно удалить из автостарта то выполняем следующую команду sudo update-rc.d -f bitcoind remove

blogentry-14647-0-12206100-1446123010_thumb.jpg

 

Устанавливаем Unobtanium

$ sudo apt-get install libevent-dev$ git clone https://github.com/unobtanium-official/Unobtanium.git unobtanium$ cd unobtanium$ chmod +x autogen.sh$ chmod +x share/genbuild.sh$ chmod +x src/leveldb/build_detect_platform$ ./autogen.sh $ ./configure --enable-upnp-default --with-miniupnpc $ make # Можете для "make" использовать ключ -j для быстрой сборки демона. Например "make -j4" где "4" количество ядер процессора $ sudo make install # Если хотите установить в /usr/local/bin

Создаем файл unobtanium.conf

$ mkdir ~/.unobtanium$ nano .unobtanium/unobtanium.conf# Записываем туда:server=1daemon=1listen=1rpcuser=server1 ## Не забудьте поменять на свой более сложный логин!    rpcpassword=ServerPass1  ## Не забудьте поменять на свой более сложный пароль!port=65534rpcport=65535rpcallowip=127.0.0.1addnode=104.131.25.221addnode=108.61.10.90addnode=137.135.57.119addnode=144.76.239.66addnode=144.76.64.123addnode=158.255.89.244addnode=162.216.4.199addnode=162.243.47.14addnode=167.114.156.87addnode=178.33.209.208addnode=178.62.145.250addnode=185.50.213.123addnode=188.138.33.239addnode=188.138.94.6addnode=192.95.29.153addnode=192.99.245.21addnode=195.117.180.229addnode=198.15.127.242addnode=199.192.77.162addnode=199.192.78.194addnode=203.206.142.19addnode=63.247.147.166addnode=64.156.193.100addnode=68.232.186.171addnode=69.197.61.58addnode=74.120.220.54addnode=74.131.163.95addnode=75.19.27.26addnode=79.251.172.84addnode=91.235.254.37addnode=92.3.42.66addnode=93.197.227.99addnode=94.23.32.109

По аналогии с Bitcoin создайте скрипт авто-запуска демона Unobtanium

 

Все с монетами покончили идем дальше.

 

Устанавливаем UNOMP пул.

$ git clone https://github.com/UNOMP/unified-node-open-mining-portal.git unomp$ cd unomp$ sudo npm update

Должно закончиться без ошибок. приблизительно как на скриншоте.

blogentry-14647-0-09221800-1446126545_thumb.jpg

 

Приступаем к конфигурированию UNOMP пула.

# Создаем config.json из config.json.example$ cp config.json.example config.json

$ cd# Получаем номер своего кошелька Bitcoin. Он нам потребуется дальше.$ bitcoin-cli getnewaddress# Сохраняем его куда нибудь.$ cd unomp/pool_configs$ cp litecoin.json.example bitcoin.jsonРедактируем bitcoin.json (Для удобства в Windows можете отредактировать его через WinSCP или nano в Ubuntu)1. В "enabled" меняем  false на true2. В "coin" меняем  litecoin.json на bitcoin.json3. В "auxes" меняем lottoshares.json на unobtanium.jsonТам же в "port":, "user", "password" меняем на свои из unobtanium.conf4. В "address" меняем на свой ранее сгенерированный кошелек.5. В "rewardRecipients" я меняю указанные там значения на вскую ерунду например ставлю "111"6. В "minimumPayment" ставим 0.00017. В "daemon" где "port", "user", "password" меняем на свои из bitcoin.conf8. В "ports" порт 3032 меняем на 3333Там же в "maxDiff" ставим 4096 или больше 81929. В "daemons" где "port", "user", "password" меняем на свои из bitcoin.conf

Должно получиться как на скриншотах

blogentry-14647-0-86968600-1446136450_thumb.jpg

blogentry-14647-0-98997100-1446136351_thumb.jpg

 

Приступаем к тестовому запуску UNOMP пула.

# Перед запуском проверьте синхронизировались демоны наших монет!$ cd unomp$ sudo node init.js 

Если все OK то должно быть как на скриншоте:

blogentry-14647-0-84278300-1446137019_thumb.jpg

 

Заходим на веб страничку пула http://ваш_ip_адрес_пула/

Должно быть как на скриншоте:

blogentry-14647-0-85894600-1446137587_thumb.jpg

 

Можно начинать майнить:

URL stratum+tcp://ваш_ip_адрес_пула:3333Worker ваш_кошелек_bitcoinпароль любой

После устранения каких нибудь недочетов нам нужно чтобы в случае отвала node init.js она сама восстановила свою работу

Для этого установим Forever

$ cd$ cd unomp$ sudo npm install forever -g# Запускаем наш пул$ sudo forever start init.js# Чтобы остановить$ sudo forever stop init.js

Вот у нас готовый UNOMP пул с Merged-ом! Можно на этом остановиться.

 

Но нам же все мало.... Нам давай там всякие Апачи, Базы данных MySQL, Регистрацию на пуле. Ну вообщем побольше геморроя...

И так продолжаем....

 

Начнем с установки пароля для root он нам дальше понадобится.

$ sudo passwd root# Вводим придуманный пароль два раза.

Установим дополнительные пакеты и MySQL

$ sudo apt-get install build-essential libboost-all-dev libcurl4-openssl-dev libdb5.1-dev libdb5.1++-dev mysql-server

MySQL потребует ввести пароль рута. Смотри скриншоты:

blogentry-14647-0-64607500-1446139076_thumb.jpg

blogentry-14647-0-99364900-1446139081_thumb.jpg

 

Установим дополнительные пакеты для MPOS пула. И перезапустим apache

$ sudo apt-get install memcached php5-memcached php5-mysqlnd php5-curl php5-json libapache2-mod-php5$ sudo apache2ctl -k stop; sleep 2; sudo apache2ctl -k start

После данных действий, если вы зайдете на веб страничку вашего сервера должны увидеть как на скриншоте:

blogentry-14647-0-24926400-1446140037_thumb.jpg

 

Дальше надо будет изменять конфигурационные файлы апач и устанавливать базу данных. Все это можно сделать так сказать руками, но не все могут работать в консоле так что для облегчения выполнения задания привлечем дополнительные графические программы это Webmin и phpMyAdmin

 

Установим Webmin.

Webmin — это графический web интерфейс для управления сервером на базе Unix подобных операционных систем. То есть установив Webmin вы можете удалённо конфигурировать и управлять Linux сервер в удобном графическом интерфейсе.

 

Добавляем репозиторий Webmin, редактируем файл /etc/apt/sources.list:

$ sudo nano /etc/apt/sources.list

В самом конце добавляем строку:

deb http://download.webmin.com/download/repository sarge contrib

Сохраняем изменения Ctrl+o Enter и закрываем редактор Ctrl+x

Устанавливаем GPG ключ:

$ wget http://www.webmin.com/jcameron-key.asc$ sudo apt-key add jcameron-key.asc

Устанавливаем Webmin для этого вводим команду:

$ sudo apt-get update$ sudo apt-get install webmin

Запустить Webmin можно через браузер для этого введите следующий адресу в строку url:

https://ваш_ip_адрес_сервера:10000

Вводим логин root и пароль от рута. Смотри скриншот:

blogentry-14647-0-86118900-1446141618_thumb.jpg

blogentry-14647-0-96353400-1446141626_thumb.jpg

 

Дальше установим phpMyAdmin

$ sudo apt-get install phpmyadmin# Выбираем apche2, далее будет предложено настроить базу данных соглашаемся, потом вводим пароль от рута

Смотри скриншоты:

blogentry-14647-0-31751800-1446142433_thumb.jpg

blogentry-14647-0-62755000-1446142439_thumb.jpg

blogentry-14647-0-51153200-1446142445_thumb.jpg

blogentry-14647-0-51365300-1446142453_thumb.jpg

blogentry-14647-0-18045000-1446142460_thumb.jpg

 

На всякий случай перезапустим Апач

$ sudo service apache2 reload

Заходим на веб страничку phpmyadmin

http://ваш_ip_адрес_сервера/phpmyadmin

Смотри скриншоты:

blogentry-14647-0-69445400-1446144080_thumb.jpg

blogentry-14647-0-96676100-1446144098_thumb.jpg

 

Если видим ошибку (Расширение mcrypt не найдено. Пожалуйста, проверьте ваши настройки PHP.) как выше на скрине.

То проделываем следующие

$ sudo php5enmod mcrypt$ sudo service apache2 restart

Ошибка должна пропасть.

 

Переходим к установке MPOS пула.

$ git clone https://github.com/MPOS/php-mpos.git mpos

Установим базу данных.

Заходим под рутом в phpmyadmin http://ваш_ip_адрес_сервера/phpmyadminДалее "Пользователи" Смотри скриншот:

blogentry-14647-0-58049300-1446150090_thumb.jpg

Создаем учетную запись.Я назвал "poolbitcoin"Генерируем пароль. # Запоминаем его.Ставим галочку где "Создать базу данных с именем пользователя в названии и предоставить на нее полные привилегии"Сохраняемся "OK"Подробности смотри скриншоты:

blogentry-14647-0-54936900-1446150813_thumb.jpg

blogentry-14647-0-56183300-1446150822_thumb.jpg

blogentry-14647-0-38081700-1446151306_thumb.jpg

 

Скачаем себе на компьютер MPOS в виде архива

> Распаковываем архив, нас там интересует папка "sql"> Дальше опять идем в phpmyadmin выбираем своего пользователя в данном примере это "poolbitcoin"> Нажимаем "Импорт"> Нажимаем "Выберите файл"> Выбираем нашу базу данных "000_base_structure.sql"> Нажимаем "OK"Подробности в скриншотах:

blogentry-14647-0-34366500-1446153835_thumb.jpg

blogentry-14647-0-28674200-1446153842_thumb.jpg

blogentry-14647-0-91405100-1446153851_thumb.jpg

blogentry-14647-0-41545000-1446153859_thumb.jpg

 

Дальше начинаем так сказать связывать наш UNOMP пул с MPOS пулом.

Отредактируем файл "config.json" по пути unomp/config.json (как угодно через WinSCP или nano)$ cd$ nano unomp/config.json# Изменяем в "website" где "enabled" true на false# Сохраняем изменения Ctrl+o Enter и закрываем редактор Ctrl+xСмотри скриншот:

blogentry-14647-0-23623200-1446155175_thumb.jpg

 

Отредактируем файл "bitcoin.json" по пути unomp/pool_configs/bitcoin.json (как угодно через WinSCP или nano)

$ cd$ nano unomp/pool_configs/bitcoin.json# Изменяем в "paymentProcessing" где "enabled" true на false# Изменяем в "mposMode" где "enabled" false на trueТам же:В "user" меняем на то что регистрировали в phpmyadmin в данном примере это "poolbitcoin";В "password" пароль что ранее нам сгенерировал phpmyadmin в данном примере это "tbXJUvJ7THDVeHpQ";В "database" на название нашей базы в данном примере это "poolbitcoin";Меняем "checkPassword" с false на true # Сохраняем изменения Ctrl+o Enter и закрываем редактор Ctrl+xПодробности в скриншотах:

blogentry-14647-0-99367200-1446157078_thumb.jpg

blogentry-14647-0-81835800-1446157086_thumb.jpg

 

Если на пуле будет предусмотрена регистрация то надо подумать о почтовом сервере.

Проще воспользоваться бесплатным почтовым ящиком от gmail.com

Хороша и подробная инструкция по настройке postfix + gmail здесь

 

Приступаем к конфигурированию MPOS пула.

MPOS пул мы скачали раньше.

$ cd$ cd mpos# Установим разрешения для www-data$ sudo chown -R www-data templates/compile templates/cache logs

Создадим файл global.inc.php из global.inc.dist.php находящийся по пути mpos/include/config/

$ cd$ cd mpos/include/config/$ cp global.inc.dist.php global.inc.php# Редактируем global.inc.php через nano или WinSCP вообщем как удобно.# Внимание для разных алгоритмов значения в этом файле будут разные!!!$ nano global.inc.php> Находим ['SALT'] и ['SALTY'] вносим туда рандомный набор цифр букв от 25 символов, причем ['SALTY'] должен быть на несколько символов больше.> В ['algorithm'] меняем на наш алгоритм в данном примере это "sha256d"> В Database configuration где ['user'], ['pass'], ['name'] вносим все данные что раньше нам выдал phpmyadmin> В Local wallet RPC где ['host'], ['username'], ['password'] все вписываем из bitcoin coinf> В Getting Started Config где ['coinname'] меняем на нашу крипто-валюту в данном случае на Bitcoin;['coinurl'] --- https://bitcoin.org;['stratumurl'] --- localhost или можно получить бесплатный домен DDNS и в писать туда доменное имя.> В Ticker API можно настроить вывод курса крипто-валюты.Где ['enabled'] меняем false на true;Где ['target'] прописываем API биржи в данном случае биржа btc-e "/api/2/btc_usd/ticker"> В Automatic Payout Thresholds где ['ap_threshold']['min'] меняем на 0.0001; в ['ap_threshold']['max'] на 100> В Minimum manual Payout Threshold где ['mp_threshold'] меняем на 0.0001> В Currency где ['currency'] меняем на свою крипто-валюту в данном примере "BTC"> В Coin Target где ['cointarget'] меняем на "600" Внимание у разных криптомонет это значение разное.> В TX Fees где ['txfee_auto'] и ['txfee_manual'] меняем на 0.0001> В Payout System где ['payout_system'] по умолчанию система выплат вознаграждений prop можно прописать pplns или pps> В Pool Fees где ['fees'] можно установить комиссию пула> В Block Reward где ['reward'] это количество монет в блоке меняем на "25"> В Confirmations где ['confirmations'] меняем на 101, и в ['network_confirmations'] меняем на "101" Это подтверждения. Внимание у разных криптомонет это значение разное.# Сохраняем изменения Ctrl+o Enter и закрываем редактор Ctrl+x

blogentry-14647-0-06262100-1446189654_thumb.jpg

blogentry-14647-0-62326600-1446189661_thumb.jpg

blogentry-14647-0-28351200-1446189670_thumb.jpg

blogentry-14647-0-29537800-1446189677_thumb.jpg

 

Так, отлично с этим справились идем дальше.

Начинаем конфигурировать Apache.

# Идем в Webmin https://ваш_ip_адрес_сервера:10000> дальше выбираем  Servers > Apache Webserver > Virtual ServerТам дальше где Virtual Server Details меняем путь с /var/www/html на свой в моем примере это /home/server/mpos/publicСохраняемся нажимаем SAVEИдем в Global configuration > Edit Config Files там в конце файла вносим такие строки:<Directory /home/server/mpos/public>         Options Indexes FollowSymLinks      AllowOverride None      Require all granted</Directory>## Обратите внимание что в место где server должен быть ваш пользователь.!!!Сохраняемся ----> SAVE и применим наши изменения Apply Changes# Подробности смотри скриншоты:

blogentry-14647-0-52129800-1446192809_thumb.jpg

blogentry-14647-0-00175800-1446192817_thumb.jpg

blogentry-14647-0-79224700-1446192823_thumb.jpg

blogentry-14647-0-92391200-1446192832_thumb.jpg

blogentry-14647-0-97229700-1446192843_thumb.jpg

blogentry-14647-0-44680400-1446192852_thumb.jpg

blogentry-14647-0-81895200-1446192861_thumb.jpg

 

Урааа мы практически на финишной прямой.

# Заходим через браузер на ip вашего сервера http://ваш_ip_адрес_сервера# Должна загрузиться стартовая страница MPOS пула# Смотри скриншот:# Если нет то повторите процедуру с установкой разрешений для www-data$ sudo chown -R www-data templates/compile templates/cache logs

blogentry-14647-0-53054200-1446193381_thumb.jpg

# Дальше регистрируем нового пользователя он же будет администратором.# Заходим под свои логином# Если не настраивали почтовый сервис то идем Admin Panel > System > Settings > System и в Disable e-mail confirmations меняем значение с NO на YES Сохраняемся ----> SAVEПодробности смотри скриншот:

blogentry-14647-0-95885100-1446194494_thumb.jpg

blogentry-14647-0-41691600-1446194503_thumb.jpg

# Дальше для будущего теста создадим воркера# Идем My Account > My Workers содаем воркераСмотри скриншот:

blogentry-14647-0-77007100-1446195300_thumb.jpg

 

Переходим к настройке Cronjob

# Для этого вернемся в Webmin https://ваш_ip_адрес_сервера:10000# Дальше System > Scheduled Cron Jobs > Create a new scheduled cron job > в Execute cron job as выбираем пользователя в данном примере это server > в поле Command прописываем путь до наших cronjobs для:> run-statistics.sh> run-maintenance.sh> run-payout.sh# Только не все подряд, а по очереди после сохранения (Create)# Не забудьте в разделе Minutes выбрать вручную все минуты # Подробности смотри скриншоты:

blogentry-14647-0-90967900-1446199040_thumb.jpg

blogentry-14647-0-70720600-1446199050_thumb.jpg

blogentry-14647-0-41870200-1446199060_thumb.jpg

blogentry-14647-0-57428900-1446199122_thumb.jpg

# Так сделали, теперь быстренько идем на свой пул http://ваш_ip_адрес_сервера# В раздел Admin Panel > System > Monitoring и должны увидеть что все Cronjob активны# Смотри скриншот:

blogentry-14647-0-73581000-1446199815_thumb.jpg

 

Аллилуйя!!! начинаем тестовый запуск пула!!!

$ cd unomp$ node init.js# Должно быть как на скриншоте:

blogentry-14647-0-86272800-1446200313_thumb.jpg

 

Можно начать тестовый майнинг

# Воркера мы создали раньше.# Настраиваем майнер> URL --- stratum+tcp://ваш_ip_адрес_сервера:3333> Логин --- вписываем свой воркер> Пароль --- пароль воркера# В системных настройках можно изменить вид отображения статистики сменить с Kh/s на Mh/s, Gh/s, Th/s и внести разные другие настройки.# Думаю что с этим вы сами разберетесь:)# Смотри скриншот:

blogentry-14647-0-29422300-1446202807_thumb.jpg

 

После устранения всех недостатков и тонкой настройки пула запускаем его с Forever

$ cd unomp# Запускаем наш пул$ forever start init.js# Чтобы остановить$ forever stop init.js

И в заключении мы имеем пул UNOMP+MPOS поддерживающий Stratum и Vardiff

Что я здесь пропустил так это настройки безопасности. Попозже это доделаю!

:) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :)

 

Если моя статья пригодилась и понравилась меня можно отблагодарить:

(BTC) 14RTSbmixwthDNvxcLhXvuAyQfBHGXEXTc

(LTC) LbkRrDVFyjUcxbkj4KvsrTXaosPn4faDfU

(NMC) NHc9Nq5EbGzsWpX3S7WLw5GSZeaingkSd2

(DASH) Xd418fCGeKrGvCyi1SdudhNzTp1n6pnURg

229 Комментариев


Рекомендуемые комментарии



C PPC и nomp придётся долго разбираться. После недели непрерывного "секса" в wiki вычитал, что zone117 так и не решил проблему совместимости nomp и rpc-протокола peercoin`a.

Занавес.

Буду искать решение в другом месте.

Всем спасибо.

Ссылка на комментарий

Давай Велигина  спросим. Я ту ошибку что ты указывал методом научного тыка решил. у меня пишет про иную ишибку. (правда использовал в качечстве ОС МИНТ 17.4 и просто NOMP)

Ссылка на комментарий

Давай Велигина  спросим. Я ту ошибку что ты указывал методом научного тыка решил. у меня пишет про иную ишибку. (правда использовал в качечстве ОС МИНТ 17.4 и просто NOMP)

 

Думаю от ОСи там мало что зависит. Максимум проблемы совместимости библиотек. Не суть важно, особенно для "жаба-скрипт". Я спрашивал, но он очень немногословен: сами сделали, сами перевели, по остальным вопросам см. ссылки в теме.

Ссылка на комментарий

Спасибо за гайд. Была интересна часть merged mining (т.к. обычный NOMP поднял сам в своё время и вот сейчас думаю допилить merged) - так и не понял из инструкции, как и куда идут выплаты по merged-монетам. Криво читал или не написано?

Ссылка на комментарий

В настройках валюты указывается базовый кошелек, на который капают %.

 

примерно так и думал, то есть для merged-монет тоже надо создавать файлик coin.json в папке pool_config/ ?

Ссылка на комментарий

Ну конечно. В этом файлике как раз заложена вся база для работы с определённой валютой: связь с демоном кошелька и кошель для процентов. А для отдельных майнеров и групп указываются отдельные кошельки с помощью настроек mpos и/или путём передачи адреса кошелька в качестве имени воркера.

Ссылка на комментарий

примерно так и думал, то есть для merged-монет тоже надо создавать файлик coin.json в папке pool_config/ ?

Нет...не надо ничего доп. создавать.

1)Заполняете в папке pool_configs свой конфиг с указанием в поле "auxes"

2)Если нету монеты в папке coins то создаете ее там.

Ссылка на комментарий

Поднял пул скриптовой монеты. Пока для освоения темы поднял только кошелек и UNOMP. Вроде все работает, но много орфанов - из 15 блоков - 8 орфанов. В чем может быть причина? Или это в пределах нормы? 

Ссылка на комментарий

Могу предположить что у тебя проблемы со скоростью передачи блоков в сеть в этом может быть виноват демон твоей криптухи (например мало соединений) и качество интернет

Ссылка на комментарий

А зачем связывать наш UNOMP пул с MPOS пулом ?

И можно без регистрации сделать?

И под любой алгоритм?

Ссылка на комментарий

А зачем связывать наш UNOMP пул с MPOS пулом ?

И можно без регистрации сделать?

И под любой алгоритм?

Можно

Ссылка на комментарий

Какой мощности вдс-сервер нужно арендовать, скажем для примерной мощности 500 мх на х11 или кварке?

Ссылка на комментарий

Хай чатлане.

Замечательный блог. Делая по сценарию всё получается и работает замечательно.

Решил расширить список валют и столкнулся с проблемкой. Ну никто из форков не хочет работать кроме unobtaniuma.

Попытался добавить PPC, NMC, EMC. Демоны работают.

Сделал конфиг для добавочных форков. Пока не работает, поправьте меня пожалуйста.

{
    "enabled": true,
    "coin": "bitcoin.json",
 
    "auxes": [ // Defines auxillery coins
        {
            "coin": "emercoin.json",
            "daemons": [ // It is reccomended to supply multiple daemons here for redundancy
                {
                    "host": "127.0.0.1",
                    "port": 6662,
                    "user": "emercoinrpc",
                    "password": ""
                }
            ]
        },
        {
            "coin": "unobtanium.json",
            "daemons": [ // It is reccomended to supply multiple daemons here for redundancy
                {
                    "host": "127.0.0.1",
                    "port": 65535,
                    "user": "bitcoinrpc",
                    "password": ""
                }
            ]
        },
        {
            "coin": "namecoin.json",
            "daemons": [ // It is reccomended to supply multiple daemons here for redundancy
                {
                    "host": "127.0.0.1",
                    "port": 8336,
                    "user": "namecoinrpc",
                    "password": ""
                }
            ]
        },
        {
            "coin": "peercoin.json",
            "daemons": [ // It is reccomended to supply multiple daemons here for redundancy
                {
                    "host": "127.0.0.1",
                    "port": 9902,
                    "user": "ppcoinrpc",
                    "password": ""
                }
            ]
        }
    ],
    "address": "13uvqZds4YpyRLwZTHHCPimf19J9QybcQo",
 
    "rewardRecipients": {
        "1Cyx7QFhB1KJz8UkNivuCKQq3R9b65wvNw": 2
    },
 
    "paymentProcessing": {
        "enabled": true,
        "paymentInterval": 600,
        "minimumPayment": 0.0001,
        "daemon": {
            "host": "127.0.0.1",
            "port": 8332,
            "user": "bitcoinrpc",
            "password": ""
        }
    },
 
    "ports": {
        "3008": {
            "diff": 8
        },
        "3333": {
            "diff": 32,
            "varDiff": {
                "minDiff": 8,
                "maxDiff": 8192,
                "targetTime": 15,
                "retargetTime": 90,
                "variancePercent": 30
            }
        },
        "3256": {
            "diff": 256
        }
    },
 
    "daemons": [
        {
            "host": "127.0.0.1",
            "port": 8332,
            "user": "bitcoinrpc",
            "password": ""
        }
    ],
 
    "p2p": {
        "enabled": false,
        "host": "127.0.0.1",
        "port": 19333,
        "disableTransactions": false
    },
 
    "mposMode": {
        "enabled": false,
        "host": "127.0.0.1",
        "port": 3306,
        "user": "me",
        "password": "mypass",
        "database": "ltc",
        "checkPassword": false,
        "autoCreateWorker": false
    }
 
}

 

Ругается вот так:

[2016-10-21 10:56:19.277] [INFO] [default] - New Relic
[2016-10-21 10:56:19.281] [INFO] [default] - POSIX Not Installed
[2016-10-21 10:56:19.282] [INFO] [default] - Run Workers
[2016-10-21 10:56:19.306] [DEBUG] [default] - Payments bitcoin Payment processing setup to run every 600 second(s) with daemon (bitcoinrpc@127.0.0.1:8332) and redis (127.0.0.1:6379)
[2016-10-21 10:56:19.347] [INFO] [default] - New Relic
[2016-10-21 10:56:19.351] [INFO] [default] - POSIX Not Installed
[2016-10-21 10:56:19.352] [INFO] [default] - Run Workers
[2016-10-21 10:56:19.650] [DEBUG] [default] - Website Server Website started on 0.0.0.0:80
[2016-10-21 10:56:21.759] [INFO] [default] - New Relic
[2016-10-21 10:56:21.764] [INFO] [default] - POSIX Not Installed
[2016-10-21 10:56:21.765] [INFO] [default] - Run Workers
[2016-10-21 10:56:21.769] [INFO] [default] - New Relic
[2016-10-21 10:56:21.774] [INFO] [default] - POSIX Not Installed
[2016-10-21 10:56:21.774] [INFO] [default] - Run Workers
[2016-10-21 10:56:21.778] [INFO] [default] - Switching Setup Thread 1 Loading last proxy state from redis
[2016-10-21 10:56:21.790] [INFO] [default] - Switching Setup Thread 2 Loading last proxy state from redis
[2016-10-21 10:56:21.799] [DEBUG] [default] - Pool bitcoin Thread 1 Share processing setup with redis (127.0.0.1:6379)
[2016-10-21 10:56:21.809] [DEBUG] [default] - Pool bitcoin Thread 2 Share processing setup with redis (127.0.0.1:6379)
[2016-10-21 10:56:21.975] [DEBUG] [default] - Pool bitcoin Thread 1 getauxblock call failed for daemon instance 0 with error {"code":-32601,"message":"Method not found"}
[2016-10-21 10:56:21.975] [DEBUG] [default] - Pool bitcoin Thread 2 getauxblock call failed for daemon instance 0 with error {"code":-32601,"message":"Method not found"}
[2016-10-21 10:56:21.976] [DEBUG] [default] - Pool bitcoin Thread 1 could not update auxillary chains: [object Object]
[2016-10-21 10:56:21.976] [DEBUG] [default] - Pool bitcoin Thread 2 could not update auxillary chains: [object Object]

buffer.js:188

        throw new TypeError('First argument needs to be a number, ' +
              ^
buffer.js:188
        throw new TypeError('First argument needs to be a number, ' +
              ^
TypeError: First argument needs to be a number, array or string.
    at new Buffer (buffer.js:188:15)
    at Object.exports.uint256BufferFromHash (/home/root2pool/unomp/node_modules/merged-pooler/lib/util.js:54:19)
    at /home/root2pool/unomp/node_modules/merged-pooler/lib/pool.js:728:80
    at itemFinished (/home/root2pool/unomp/node_modules/merged-pooler/lib/daemon.js:156:36)
    at /home/root2pool/unomp/node_modules/merged-pooler/lib/daemon.js:169:17
    at parseJson (/home/root2pool/unomp/node_modules/merged-pooler/lib/daemon.js:85:17)
    at IncomingMessage.<anonymous> (/home/root2pool/unomp/node_modules/merged-pooler/lib/daemon.js:95:17)
    at IncomingMessage.EventEmitter.emit (events.js:117:20)
    at _stream_readable.js:920:16
    at process._tickCallback (node.js:415:13)
TypeError: First argument needs to be a number, array or string.
    at new Buffer (buffer.js:188:15)
    at Object.exports.uint256BufferFromHash (/home/root2pool/unomp/node_modules/merged-pooler/lib/util.js:54:19)
    at /home/root2pool/unomp/node_modules/merged-pooler/lib/pool.js:728:80
    at itemFinished (/home/root2pool/unomp/node_modules/merged-pooler/lib/daemon.js:156:36)
    at /home/root2pool/unomp/node_modules/merged-pooler/lib/daemon.js:169:17
    at parseJson (/home/root2pool/unomp/node_modules/merged-pooler/lib/daemon.js:85:17)
    at IncomingMessage.<anonymous> (/home/root2pool/unomp/node_modules/merged-pooler/lib/daemon.js:95:17)
    at IncomingMessage.EventEmitter.emit (events.js:117:20)
    at _stream_readable.js:920:16
    at process._tickCallback (node.js:415:13)
[2016-10-21 10:56:21.988] [ERROR] [default] - Master PoolSpawner Fork 1 died, spawning replacement worker...
[2016-10-21 10:56:21.990] [ERROR] [default] - Master PoolSpawner Fork 0 died, spawning replacement worker...
 
Спасибо за внимание.
Ссылка на комментарий

В процессе пристального изучения проблемы создания пула встал вопрос: а отличная от биткоина монета может быть главной и могут ли форки при этом майниться совсем без битка?

Может есть способ создать пул для добычи в соло какого-то форка, ну или в паре с другими монетками?

Спасибо.

Ссылка на комментарий

Как показало пристальное практическое изучение материала по теме merged-mining на описанной платформе, то существуют ограничения по списку подходящих fork-валют. А именно, из-за несовместимости rpc-команд, на поверку пока только упомянутый в статье unobtanium и namecoin могут быть использованы без применения напильника. Идёт поиск других, по настоящему совместимых с BTC, валют для совместного майнинга на платформе UNOMP.

Заранее спасибо за подсказки и доп информацию.

Ссылка на комментарий

напильник это не страшно, вот новый алгоритм это проблема. Мне бы программера который бы equihash алгоритм в unomp имплементировать для проброса zcash.

Ссылка на комментарий

v_B34k_G38pn4j

Привет.

Если кто в курсе, то подскажите пожалуйста в какую сторону рыть.

У меня на дашке с EMC не корректно отображается мощность пула и сети. В показателе хешрейт пула отображается мощность сети. 

Посмотреть можно по адресу в подписи.

Спасибо за внимание.

 

P.S. Подскажите еще как вставлять картинки или ссылки на них в текст в блоге?

Ссылка на комментарий

 

 

# В системных настройках можно изменить вид отображения статистики сменить с Kh/s на Mh/s, Gh/s, Th/s и внести разные другие настройки.

# Думаю что с этим вы сами разберетесь:)

# Смотри скриншот:

Я нашел где меняется коэффициент с применением которого отображается можность воркеров, пула и сети, но к сожалению не нашел где можно изменить единицы измерения в даш панели. Поиск по текстам дал только один файл, типа шаблона, но и его изменение не дало результата.

Подскажите в какую сторону рыть.

Так же почему-то не отображаются графики статистики.

Спасибо за внимание.

Ссылка на комментарий

Помогите пожалуйста избавиться от этих ошибок:

/home/unomp/scripts/cli.js: 1: /home/unomp/scripts/cli.js: //: Permission denied
/home/unomp/scripts/cli.js: 2: /home/unomp/scripts/cli.js: Syntax error: "(" unexpected

Я очень внимательно в редакторе с подсветкой синтаксиса проверил файл cli.js, но не нашел "неожиданной" скобки.

// Syntax is 'node scripts/cli.js reloadpool new_pool_name'
var net = require('net');

var defaultPort = 17117;
var defaultHost = '127.0.0.1';

var args = process.argv.slice(2);
var params = [];
var options = {};

for(var i = 0; i < args.length; i++){
    if (args[i].indexOf('-') === 0 && args[i].indexOf('=') !== -1){
        var s = args[i].substr(1).split('=');
        options[s[0]] = s[1];
    }
    else
        params.push(args[i]);
}

var command = params.shift();



var client = net.connect(options.port || defaultPort, options.host || defaultHost, function () {
    client.write(JSON.stringify({
        command: command,
        params: params,
        options: options
    }) + '\n');
}).on('error', function(error){
    if (error.code === 'ECONNREFUSED')
        console.log('Could not connect to uNOMP instance at ' + defaultHost + ':' + defaultPort);
    else
        console.log('Socket error ' + JSON.stringify(error));
}).on('data', function(data) {
    console.log(data.toString());
}).on('close', function () {
});

Спасибо.

Ссылка на комментарий

И еще обнаружилась засада с почтовой программой. sendmail не пошла. Может ума не хватило. Но письма с неё отклоняются почтовиком mail.ru из-за подозрений на спам. Поставил и настроил postfix. Вручную всё ходит замечательно, но mpos не хочет отправлять почту. По ходу сафсем не хочет, потому как нигде в логах ошибок по этому поводу нет.

У кого какие соображения?

Спасибо за внимание.

Ссылка на комментарий

С ноута пытаюсь запустить minerd.exe не хочет ругается - Failed to connect - Connection Refused

 

хотя воркер 100% указан верно

Ссылка на комментарий

Всем Привет,

Подскажите пожалуйста если кто знает как составлять конфиг монеты а именно настройку портов:

 

"ports": {

        "3008": {
            "diff": 8
        },
        "3333": {
            "diff": 32,
            "varDiff": {
                "minDiff": 8,
                "maxDiff": 8192,
                "targetTime": 15,
                "retargetTime": 90,
                "variancePercent": 30

 

Есть какая нибудь развернутая инфа ? 

Мы планируем добывать биток на antminer s9 14 th.

 

Спасибо всем тем кто откликнется. Заранее благодарен.

Ссылка на комментарий

Собственно ответ на ваш вопрос освещен выше в блоге.

Искренне советую один раз сделать все по сценарию (я сам так делал), начиная с выбора версии операционной системы и до настройки MPOS, а затем тренироваться с настройками. Когда заработает unomp пул, то вам на много легче будет разбираться и адаптировать пул под свои нужды.

В связи с тем, что вы имеет мощность, хочется задать вопрос: сколько по вашему 14Тх будут искать блок? Пока целый блок не будет найден выплат вам не будет. А ожидание может затянуться на годы! Обратите внимание на мощность сети и трезво оцените свои возможности!

 

P.S. Сейчас как раз освежаю в памяти сценарий и устанавливаю очередную итерацию.

Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...