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

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


igorwhite

97 384 просмотра

Создание собственного пула 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 Комментариев


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



@AndreyNag Можно мне тоже в личку, такая же проблема, шары ловятся, а блоков нет.

Изменено пользователем mbr
Ссылка на комментарий
2 часа назад, mbr сказал:

@AndreyNag Можно мне тоже в личку, такая же проблема, шары ловятся, а блоков нет.

Отправлю позже. Сначала надо смотреть журналы на предмет корректной работы пула и маневров, возможного нахождения орфан блоков. Если все правильно, то дальше только ждать. Какую монетку добываете и какой мощностью.

Ссылка на комментарий
22 минуты назад, AndreyNag сказал:

Отправлю позже. Сначала надо смотреть журналы на предмет корректной работы пула и маневров, возможного нахождения орфан блоков. Если все правильно, то дальше только ждать. Какую монетку добываете и какой мощностью.

Орфанов тоже в статистике нет, пробовал сделать монетку с низкой скоростью сети BitPlanet (skein),  шары идут,  блоков нет. В логе при подключении выдает  Unknown stratum method from адрес [::ffff:айпи]: mining.extranonce.subscribe. Это может как-то влиять?

Ссылка на комментарий
5 часов назад, mbr сказал:

Орфанов тоже в статистике нет, пробовал сделать монетку с низкой скоростью сети BitPlanet (skein),  шары идут,  блоков нет. В логе при подключении выдает  Unknown stratum method from адрес [::ffff:айпи]: mining.extranonce.subscribe. Это может как-то влиять?

У меня такой строки нет.
В переводе на русский это означает, что от майнера с указанным адресом получен запрос несоответствующего формата.

Цитата

.[32m[2017-10-31 16:37:26.243] [INFO] [default] - .[39mPool emark Thread 4 Block found: 0000000000000******************************************c21cd****

Вот так обозначается момент нахождения блока.

Изменено пользователем AndreyNag
Ссылка на комментарий

Коллеги, можгно мне ответить на вопрос.

Кто за что отвечает? Кто проверяет что подпись подходит?

Как разделяется задача UNOMP ?

И Какие валюты он может майнить?

Есть ли альтернативы не на яве ?

 

Ссылка на комментарий
11 минуту назад, Dr01d сказал:

Коллеги, можгно мне ответить на вопрос.

Кто за что отвечает? Кто проверяет что подпись подходит?

Как разделяется задача UNOMP ?

И Какие валюты он может майнить?

Есть ли альтернативы не на яве ?

1. За операции с шарами и блоками (получение задания на расчет, сверку рассчитанных шар с блоком) отвечает демон кошелька.

2. "Задача" UNOMP разделяется на несколько потоков. В т.ч. на каждую отдельную монетку пула. Если ответ не удовлетворил, то переформулируйте вопрос.

3. В папке coins есть список доступных монеток. К нему можно добавить форки и "похожие" на имеющиеся монетки.

4. Есть. Но это уже не xNOMP и обсуждаться будут в другой ветке.

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

Подскажите пожалуйста, есть ли какой нибудь простой алгоритм организации совместного майнинга в доверительном сообществе?

==========

например есть сообщество у нас 500 человек, мы в принципе доверяем друг другу.
Как нам без поднятия полноценного пула объединить наши мощности? (какой нить простой вариант)
Например уже создан полный кошелек Монеро.
1 вариант...как сделать просто чтобы все майнили на него и мощности суммировались (это на донат для содержания сообщества)
2. вариант....чтобы пропорционально делить намайненное (вручную). Как узнать кто сколько мощностей выделил в сумме за какой то период?
=========
например мы помайнили все 10 дней. Ну там намайнилось в итоге 500 единиц криптовалюты.
Как собрать инфу кто сколько помайнил, хотя бы приблизительно?
Напоминаю - это вариант - все доверяют друг другу. Ну т е не предполагается обман никакой.
Выбирается организаторы у кого стоит кошелек. И он все отслеживает и публично освещает (скрины там или видео трансляция). 
Подскажите может еще проще алгоритм, т е программно проще, но пусть сложнее в ручную что то высчитывать. Но чтобы всем было проще кинуть прогу для майнинга и скрипт запуска.
я так понимаю там может понадобиться белый IP адрес?

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

Можно тогда процесс пошагово описать?

У нас есть демон кошелька, он увидел что начали опявляться транзакции в сети. Он собрал транзакции( каким образом он их выбирает, кто первый? у кого комса выше?). Затем он или UNOMP дергает за АПИ для формирования задачи расчёта.

Получили задание расчёта, UNOMP каким образом это делит на майнеры которые у него есть?

Как я понимаю у нас есть счётчик от 1 до ...(до скольки думаю зависит от монетки). И UNOMP каждому воркеру подключеному к нему толкает считай от 1 до 10, от 11 до 20 и тд. Но вопрос он дробит от 1 до последнего или от 1 до количетсво воркеров*лимит ?

Затем все это рассылается воркерам, каждый воркер расчитав задание возвращает все UNOMP. Тот отдаёт в кошелёк, кошелёк проверяет подпись. UNOMP хранит у себя гдето в памяти количество шар ?

Если UNOMP грохнется в этот промежуток времени, майнеры не получат своей прибыли?

Если подпсиь корректная, то вознаграждение приходит на кошелёк. Затем UNOMP делит в соответсвии с системой вознаграждение и даёт комманду на выплату.  Если мы не успели то майним дальше пока не найдём подпись.

Все верно или есть какие-то ещё моменты?

@l2pir Думается , Вам без пула не обойтись. Как раз подсчёт мощности задача пула.

Ссылка на комментарий
56 минут назад, l2pir сказал:

Подскажите пожалуйста, есть ли какой нибудь простой алгоритм организации совместного майнинга в доверительном сообществе?

==========

например есть сообщество у нас 500 человек, мы в принципе доверяем друг другу.
Как нам без поднятия полноценного пула объединить наши мощности? (какой нить простой вариант)
Например уже создан полный кошелек Монеро.
1 вариант...как сделать просто чтобы все майнили на него и мощности суммировались (это на донат для содержания сообщества)
2. вариант....чтобы пропорционально делить намайненное (вручную). Как узнать кто сколько мощностей выделил в сумме за какой то период?
=========
например мы помайнили все 10 дней. Ну там намайнилось в итоге 500 единиц криптовалюты.
Как собрать инфу кто сколько помайнил, хотя бы приблизительно?
Напоминаю - это вариант - все доверяют друг другу. Ну т е не предполагается обман никакой.
Выбирается организаторы у кого стоит кошелек. И он все отслеживает и публично освещает (скрины там или видео трансляция). 
Подскажите может еще проще алгоритм, т е программно проще, но пусть сложнее в ручную что то высчитывать. Но чтобы всем было проще кинуть прогу для майнинга и скрипт запуска.
я так понимаю там может понадобиться белый IP адрес?

Каких-только извращенцев не бывает?! 
Создайте пул с fee 100% и майните с разных кошельков. Так вы сможете отслеживать КТУ (коэффициент трудового участия) и складывать сразу всё в один кошелек. Тот самый, на который направлена комиссия пула.

Ссылка на комментарий
48 минут назад, AndreyNag сказал:

Создайте пул с fee 100% и майните с разных кошельков.

Так в том то и дело, что хочется найти альтернативу без пула. Это не извращение а невозможность поднять пул. Для пула я так понимаю нужен сервер и знания по настройке.

Хочется заменить гемор спулом организационным гемором.

Как организационно можно сделать подобие пула без поднятия сервера, вот это хотелось узнать.

Хотя бы на примере 3-4 компов разъяснение на пальцах.

Вот есть 3 компа в интернете. Заведен уже кошелек на одном полный с блокчейном. Как майнить всем 3 компам на этот кошелек со собором статистики по объему работы каждого?

 

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

НАчните

3 часа назад, l2pir сказал:

Так в том то и дело, что хочется найти альтернативу без пула. Это не извращение а невозможность поднять пул. Для пула я так понимаю нужен сервер и знания по настройке.

Хочется заменить гемор спулом организационным гемором.

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

Лучше пол дня потерять, потом за пять минут долететь! ©

Изменено пользователем AndreyNag
Ссылка на комментарий
6 минут назад, AndreyNag сказал:

Начните с того, что определитесь с монеткой. Если она поддерживается xNOMP, то дальше легче. Пул поднимается за один вечер, не считая времени на синхронизацию кошелька.

Лучше пол дня потерять, потом за пять минут долететь! ©

Спасибо! с монетой определились, монеро - так как все могут её майнить на любом практически устройстве.

Но ведь пул в любом случае надо сервер где то? правильно? и только на Линукс? или можно на одном из компов сделать все? - учитывая что майнящие будут не в одной сети а по всей стране.

Не нашел ни одной более мене понятной инструкции по поднятию пула на винде и чтобы смотрел в интернет без белого IP.

Изменено пользователем l2pir
Ссылка на комментарий
36 минут назад, l2pir сказал:

Не нашел ни одной более мене понятной инструкции по поднятию пула на винде и чтобы смотрел в интернет без белого IP.

Белый IP необходим при любых раскладах. Он не обязательно должен быть статическим. Вопрос доступности сервера из вне легко решается и в случае с "домашним", динамическим адресом.
Форточки, лично я, крайне не рекомендую под данный вариант сервера. Винда отгрызает огромную, львиную долю ресурсов железа сервера и крайне нестабильна. Хотите беспроблемной работы - выбирайте Linux.
Я сейчас попробую поднять, в режиме "чиста позырить", для эксперимента, пул под монеро. Дальше смогу продолжить диалог предметно.
Не боги горшки обжигают. ©

Ссылка на комментарий
12 часа назад, AndreyNag сказал:

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

Спасибо! Тут нужен направляющий...я вот в целом понимаю что надо делать, но не знаю за что ухватиться...разрывы в цепочке понимания. Пытаюсь это ассоциировать как с поднятием сервера обычного. На там то хоть мануалов море, все по полочкам. А в случае с Stratum MPOS вот это единственный мануал, и везде он просто скопирован по всему инету.

Давайте намутим свой форумный пул простенький на Stratum+MPOS честный. Я предоставлю мощности))). Реально посчитаем себестоимость обслуживания и содержания и просто будем вычитать копейки из заработка а не %, остальное все выплачивать. И выплата в любой момент без крупного накопления.

Изменено пользователем l2pir
Ссылка на комментарий
6 часов назад, maxsun80 сказал:

Под монеро есть другие заточенные движки ,проще номпа в настройке.

Просветите пожалуйста! 

Мне написали Stratum + MPOS. Но ничего не инструкций ничего нет в инете

Ссылка на комментарий
1 минуту назад, l2pir сказал:

Просветите пожалуйста! 

Мне написали Stratum + MPOS. Но ничего не инструкций ничего нет в инете

Кто вам такое извращение под монеро написал?

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

Заходите на любой пул монеро и в футере ссылка на гитхаб.

 

Ссылка на комментарий
3 минуты назад, maxsun80 сказал:

Заходите на любой пул монеро и в футере ссылка на гитхаб.

А можете посоветовать самый простой? И чтобы с инструкцией был хорошей

Ссылка на комментарий
4 часа назад, maxsun80 сказал:

Кто вам такое извращение под монеро написал?

тут посоветовали

https://xmr.ru/threads/79/#post-531

 

4 часа назад, maxsun80 сказал:

Вы даже не смотрели, зачем вам тогда это?

Так я и хочу посмотреть поэтому и спрашивал

 

4 часа назад, l2pir сказал:

А можете посоветовать самый простой? И чтобы с инструкцией был хорошей

4 часа назад, maxsun80 сказал:

Админить пул кто будет?

ну я и хотел бы админить

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

Вот например - https://github.com/zone117x/node-cryptonote-pool

Другие аналогичные движки от настройки не отличаются, только функционал.

Но линукс нужно знать, все в консоли выполняется.

То что вам посоветовали для монеро - извращение в чистом виде, над вами посмеялись.

 

Ссылка на комментарий
18 часов назад, maxsun80 сказал:

То что вам посоветовали для монеро - извращение в чистом виде, над вами посмеялись.

Ну у меня запросы были минимальные. Мне главное было проще, и пусть многое вручную (выплаты например). Главное было знать просто статистику, чтобы потом пропорционально делить доход. Без комиссии пул нужен. 

Все майнится на один кошелек, а потом просто всем участникам выплачивается пропорционально вкладу.

Ссылка на комментарий
2 часа назад, l2pir сказал:

Ну у меня запросы были минимальные. Мне главное было проще, и пусть многое вручную (выплаты например). Главное было знать просто статистику, чтобы потом пропорционально делить доход. Без комиссии пул нужен. 

Все майнится на один кошелек, а потом просто всем участникам выплачивается пропорционально вкладу.

В примитивном изложении ваша задача выглядит так: я хочу чтобы у меня всё было, но мне за это ничего не было.
Кроме массы вопросов, которые надо решить для поднятия пула, будет обязательно огромная работа по техподдержке пользователей. Кто будет это делать и сколько вы на это планируете потратить. Потрать своё время или свои деньги. Что-то потратить все равно придётся.

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

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

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

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

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

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

Войти

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

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

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