Перейти к содержимому






* * * * * 5 голосов

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

Написано igorwhite, 30 October 2015 · 21178 Просмотров

asic mining merged pool bitcoin litecoin mpos nomp unomp p2pool
Создание собственного пула 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"
Должно получиться как на скриншоте. 
Прикрепленное изображение

Подредактируем (изменим размер буфера передачи) нашу сетевую карточку в /etc/rc.local
$ sudo nano /etc/rc.local
# В конце перед exit дописываем строку:
/sbin/ifconfig eth0 txqueuelen 10000
# Сохраняемся "Ctrl+o" и "Ctrl+x"
Должно получиться как на скриншоте.
Прикрепленное изображение
Перезагружаем наш сервер
$ sudo reboot
Проверим наши изменения
$ ulimit -n
$ ifconfig
Должно быть как на скриншоте.
Прикрепленное изображение

Проверим как работает redis server, для этого запустим его.
$ redis-server
Скорее всего редис выдаст ошибку как на скриншоте: "WARNING overcommit_memory is set to 0!"
Прикрепленное изображение

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

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

Устанавливаем 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=1
daemon=1
rpcuser=server ## Не забудьте поменять на свой более сложный логин!    
rpcpassword=ServerPass  ## Не забудьте поменять на свой более сложный пароль!
port=8333
rpcport=8332
rpcallowip=127.0.0.1
upnp=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 script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Bitcoin daemon"
NAME=/usr/bin/bitcoind
DAEMON=$NAME
DAEMON_ARGS="-daemon"
CLI=/usr/bin/bitcoin-cli
DAEMON_LOADER=$DAEMON
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
CHUID=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

Прикрепленное изображение

Устанавливаем 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=1
daemon=1
listen=1
rpcuser=server1 ## Не забудьте поменять на свой более сложный логин!    
rpcpassword=ServerPass1  ## Не забудьте поменять на свой более сложный пароль!
port=65534
rpcport=65535
rpcallowip=127.0.0.1
addnode=104.131.25.221
addnode=108.61.10.90
addnode=137.135.57.119
addnode=144.76.239.66
addnode=144.76.64.123
addnode=158.255.89.244
addnode=162.216.4.199
addnode=162.243.47.14
addnode=167.114.156.87
addnode=178.33.209.208
addnode=178.62.145.250
addnode=185.50.213.123
addnode=188.138.33.239
addnode=188.138.94.6
addnode=192.95.29.153
addnode=192.99.245.21
addnode=195.117.180.229
addnode=198.15.127.242
addnode=199.192.77.162
addnode=199.192.78.194
addnode=203.206.142.19
addnode=63.247.147.166
addnode=64.156.193.100
addnode=68.232.186.171
addnode=69.197.61.58
addnode=74.120.220.54
addnode=74.131.163.95
addnode=75.19.27.26
addnode=79.251.172.84
addnode=91.235.254.37
addnode=92.3.42.66
addnode=93.197.227.99
addnode=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
Должно закончиться без ошибок. приблизительно как на скриншоте.
Прикрепленное изображение

Приступаем к конфигурированию 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 на true
2. В "coin" меняем  litecoin.json на bitcoin.json
3. В "auxes" меняем lottoshares.json на unobtanium.json
Там же в "port":, "user", "password" меняем на свои из unobtanium.conf
4. В "address" меняем на свой ранее сгенерированный кошелек.
5. В "rewardRecipients" я меняю указанные там значения на вскую ерунду например ставлю "111"
6. В "minimumPayment" ставим 0.0001
7. В "daemon" где "port", "user", "password" меняем на свои из bitcoin.conf
8. В "ports" порт 3032 меняем на 3333
Там же в "maxDiff" ставим 4096 или больше 8192
9. В "daemons" где "port", "user", "password" меняем на свои из bitcoin.conf

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

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

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

Можно начинать майнить:
URL stratum+tcp://ваш_ip_адрес_пула:3333
Worker ваш_кошелек_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 потребует ввести пароль рута. Смотри скриншоты:
Прикрепленное изображение
Прикрепленное изображение

Установим дополнительные пакеты для 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
После данных действий, если вы зайдете на веб страничку вашего сервера должны увидеть как на скриншоте:
Прикрепленное изображение

Дальше надо будет изменять конфигурационные файлы апач и устанавливать базу данных. Все это можно сделать так сказать руками, но не все могут работать в консоле так что для облегчения выполнения задания привлечем дополнительные графические программы это 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 и пароль от рута. Смотри скриншот:
Прикрепленное изображение
Прикрепленное изображение

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

На всякий случай перезапустим Апач
$ sudo service apache2 reload
Заходим на веб страничку phpmyadmin
http://ваш_ip_адрес_сервера/phpmyadmin
Смотри скриншоты:
Прикрепленное изображение
Прикрепленное изображение

Если видим ошибку (Расширение mcrypt не найдено. Пожалуйста, проверьте ваши настройки PHP.) как выше на скрине.
То проделываем следующие
$ sudo php5enmod mcrypt
$ sudo service apache2 restart
Ошибка должна пропасть.

Переходим к установке MPOS пула.
$ git clone https://github.com/MPOS/php-mpos.git mpos
Установим базу данных.
Заходим под рутом в phpmyadmin http://ваш_ip_адрес_сервера/phpmyadmin
Далее "Пользователи" Смотри скриншот:
Прикрепленное изображение
Создаем учетную запись.
Я назвал "poolbitcoin"
Генерируем пароль. # Запоминаем его.
Ставим галочку где "Создать базу данных с именем пользователя в названии и предоставить на нее полные привилегии"
Сохраняемся "OK"
Подробности смотри скриншоты:
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

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

Подробности в скриншотах:
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

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

Отредактируем файл "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
Подробности в скриншотах:
Прикрепленное изображение
Прикрепленное изображение

Если на пуле будет предусмотрена регистрация то надо подумать о почтовом сервере.
Проще воспользоваться бесплатным почтовым ящиком от 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
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

Так, отлично с этим справились идем дальше.
Начинаем конфигурировать 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
# Подробности смотри скриншоты:
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

Урааа мы практически на финишной прямой.
# Заходим через браузер на ip вашего сервера http://ваш_ip_адрес_сервера
# Должна загрузиться стартовая страница MPOS пула
# Смотри скриншот:
# Если нет то повторите процедуру с установкой разрешений для www-data
$ sudo chown -R www-data templates/compile templates/cache logs
Прикрепленное изображение
# Дальше регистрируем нового пользователя он же будет администратором.
# Заходим под свои логином
# Если не настраивали почтовый сервис то идем Admin Panel > System > Settings > System и в Disable e-mail confirmations меняем значение с NO на YES 
Сохраняемся ----> SAVE
Подробности смотри скриншот:
Прикрепленное изображение
Прикрепленное изображение
# Дальше для будущего теста создадим воркера
# Идем My Account > My Workers содаем воркера
Смотри скриншот:
Прикрепленное изображение

Переходим к настройке 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 выбрать вручную все минуты 
# Подробности смотри скриншоты:
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
# Так сделали, теперь быстренько идем на свой пул http://ваш_ip_адрес_сервера
# В раздел Admin Panel > System > Monitoring и должны увидеть что все Cronjob активны
# Смотри скриншот:
Прикрепленное изображение

Аллилуйя!!! начинаем тестовый запуск пула!!!
$ cd unomp
$ node init.js
# Должно быть как на скриншоте:
Прикрепленное изображение

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

После устранения всех недостатков и тонкой настройки пула запускаем его с Forever
$ cd unomp
# Запускаем наш пул
$ forever start init.js
# Чтобы остановить
$ forever stop init.js
И в заключении мы имеем пул UNOMP+MPOS поддерживающий Stratum и Vardiff
Что я здесь пропустил так это настройки безопасности. Попозже это доделаю!
:) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :)

Если моя статья пригодилась и понравилась меня можно отблагодарить:
(BTC) 14RTSbmixwthDNvxcLhXvuAyQfBHGXEXTc
(LTC) LbkRrDVFyjUcxbkj4KvsrTXaosPn4faDfU
(NMC) NHc9Nq5EbGzsWpX3S7WLw5GSZeaingkSd2
(DASH) Xd418fCGeKrGvCyi1SdudhNzTp1n6pnURg

  • 27



Тяжело конечно будет майнить самому биток.. Разве что другую валюту..

    • 0

Ну это пример. По этой инструкции можно настроить пул практически на любую монету с любым алгоритмом.

    • 1

Какую часть менять под другую валюту ? 

    • 0

Там где соответственно встречается Bitcoin и Unobtanium.

Также файл global.inc.php будет с другими данными. Вообщем надо делать по аналогии.

    • 1

Привет.

Скажите пожалуйста, кто-нибудь собрал unobtanium на ubuntu 15.10 server?

Спасибо

 

 

 

 

P.S. Возможно опять проблемы совместимости c Berkeley DB?

    • 0

Красавчик, +1

    • 0

Красавчик, +1

Спасибо

    • 0
Народ, подскажите источник информации для создания ppcoin-ноды на этой платформе. Спасибо.
    • 0

Народ, подскажите источник информации для создания ppcoin-ноды на этой платформе. Спасибо.

peercoin не рабочий модуль в nomp или unomp можно поднять только пока mpos пул.

    • 1

peercoin не рабочий модуль в nomp или unomp можно поднять только пока mpos пул.

Крайний скрншот я видел на пуле пиркоина. Поэтому и сделал вывод о возможности такого варианта.
    • 0

Помогите пожалуйста разобраться.

Настроено и запущено два демона: bit и peer/ppc.

PPCoin version v0.4.0ppc-23-g57b8c8d-beta (2015-07-27 20:55:24 +0000)
Default data directory /root/.ppcoin
Loading addresses...
dbenv.open LogDir=/home/root/ppcoin/data/database ErrorFile=/home/root/ppcoin/data/db.log
Loaded 11689 addresses
 addresses               168ms
Loading block index...
PPCoin Network: genesis=0x0000000032fe677166d5 nBitsLimit=0x1d00ffff nBitsInitial=0x1c00ffff nStakeMinAge=2592000 nCoinbaseMaturity=500 nModifierInterval=21600
LoadBlockIndex(): hashBestChain=43c2c33fb5a50628af66  height=203651  trust=6989877613410129
LoadBlockIndex(): synchronized checkpoint 000000000000000f5ebfee748ff06141c2073970d0f16864e82bed46db776125
Verifying last 2500 blocks at level 1
 Upgrade Info: v0.4+ no txdb upgrade detected.
 block index          471904ms
Loading wallet...
nFileVersion = 60300
 wallet                  394ms
Done loading
mapBlockIndex.size() = 203652
nBestHeight = 203651
setKeyPool.size() = 101
mapWallet.size() = 0
mapAddressBook.size() = 1
Bound to port 9901
ipv4 eth0: 192.168.0.108
addrLocalHost = 192.168.0.108:9901
IRC seeding/communication disabled
ThreadMessageHandler started
ThreadDNSAddressSeed started
Loading addresses from DNS seeds (could take a while)

биток пока синхронизируется. правда вторые сутки....


UpdateTip: new best=000000000000000018e0faa019a4d6f30b5cd9fab4e2261d5714d23020bf9cec  height=327547  log2_work=81.266319  tx=50066215  date=2014-10-29 19:45:09 progress=0.484087  cache=49.0MiB(19771tx)
UpdateTip: new best=000000000000000009c72441e795bf025bb57bd43726b947a3e24f2ca5de2a89  height=327548  log2_work=81.266395  tx=50066342  date=2014-10-29 19:46:54 progress=0.484089  cache=49.0MiB(19916tx)
Pre-allocating up to position 0xd00000 in rev00189.dat
UpdateTip: new best=0000000000000000098d3c9095b47ff1fd692fef5ac6731340802c7c63d38bb0  height=327549  log2_work=81.266472  tx=50066577  date=2014-10-29 19:48:46 progress=0.484093  cache=49.1MiB(20199tx)
UpdateTip: new best=0000000000000000113912ccfddff7bf5bb2d6d3fbd6b6ba810d9acef4bffd7b  height=327550  log2_work=81.266549  tx=50067454  date=2014-10-29 19:58:50 progress=0.484108  cache=53.8MiB(21400tx)
UpdateTip: new best=00000000000000001dc974e678a7cb65d55e236aec49337f4eeb28e6ee98218e  height=327551  log2_work=81.266625  tx=50067972  date=2014-10-29 20:05:11 progress=0.484117  cache=55.1MiB(22040tx)
UpdateTip: new best=00000000000000000b8b1b911886d8c9d139ae85bc6a93a17cfe3808c02b8525  height=327552  log2_work=81.266702  tx=50069127  date=2014-10-29 20:19:56 progress=0.484138  cache=57.3MiB(23680tx)
UpdateTip: new best=0000000000000000033cdcbdc87612dce0b23b47e329288508c0ba1a8de23457  height=327553  log2_work=81.266779  tx=50069191  date=2014-10-29 20:33:47 progress=0.484145  cache=57.3MiB(23811tx)
UpdateTip: new best=000000000000000007ffadc5d9f16bed2df27371949b15a89294da84c527a2ec  height=327554  log2_work=81.266855  tx=50069930  date=2014-10-29 20:29:25 progress=0.484152  cache=60.9MiB(24865tx)
UpdateTip: new best=00000000000000000d75d8a23fc1728da377881dfc8391463afa9b9b2b08b0e6  height=327555  log2_work=81.266932  tx=50070720  date=2014-10-29 20:42:41 progress=0.484167  cache=61.2MiB(25996tx)
UpdateTip: new best=00000000000000000990f471886e5217ae6e539b10ac2b5f88248f83af4fbf84  height=327556  log2_work=81.267009  tx=50072409  date=2014-10-29 21:00:57 progress=0.484196  cache=2.0MiB(0tx)
UpdateTip: new best=000000000000000012e9c0094d3414c5867bf6a5ffe4c9c2a24b61e8aa957384  height=327557  log2_work=81.267085  tx=50072528  date=2014-10-29 21:01:49 progress=0.484198  cache=2.6MiB(323tx)
UpdateTip: new best=000000000000000000e74b76023cd38c2dc8322a1769b96ce029575fcf3ba1b0  height=327558  log2_work=81.267162  tx=50073469  date=2014-10-29 21:16:19 progress=0.484216  cache=12.6MiB(2802tx)

peercoin.json

  GNU nano 2.2.6         File: /home/root2pool/unomp/pool_configs/peercoin.json               Modified  

{
    "enabled": true,
    "coin": "peercoin.json",

    "auxes": [ // Defines auxillery coins
        {
            "coin": "peercoin.json",
            "daemons": [ // It is reccomended to supply multiple daemons here for redundancy
                {
                    "host": "127.0.0.1",
                    "port": 9902,
                    "user": "ppcoinrpc",
                    "password": "JBnRq1"
                }
            ]
        }
    ],
    "address": "181pYw4yuA6Q7rgsGHmUicrKACY3PSwr9j",

    "rewardRecipients": {
        "111": 1.5,
        "111": 0.1
    },

    "paymentProcessing": {
        "enabled": true,
        "paymentInterval": 600,
        "minimumPayment": 0.0001,
        "daemon": {
            "host": "127.0.0.1",
            "port": 8332,
            "user": "bitcoinrpc",
            "password": "9Th4ecx"
        }
    },

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

^G Get Help      ^O WriteOut      ^R Read File     ^Y Prev Page     ^K Cut Text      ^C Cur Pos
^X Exit          ^J Justify       ^W Where Is      ^V Next Page     ^U UnCut Text    ^T To Spell

В логе ругается на имя и пароль. 100500 раз проверял, совпадает.

[2015-11-03 22:31:12.126] [INFO] [default] - New Relic
[2015-11-03 22:31:12.133] [DEBUG] [default] - NewRelic Monitor New Relic initiated
[2015-11-03 22:31:12.136] [INFO] [default] - POSIX Not Installed
[2015-11-03 22:31:12.137] [DEBUG] [default] - POSIX Connection Limit (Safe to ignore) POSIX module not installed and resource (connection) limit was not raised
[2015-11-03 22:31:12.137] [INFO] [default] - Run Workers
[2015-11-03 22:31:12.669] [DEBUG] [default] - Master PoolSpawner Spawned 1 pool(s) on 2 thread(s)
[2015-11-03 22:31:14.291] [INFO] [default] - New Relic
[2015-11-03 22:31:14.313] [INFO] [default] - POSIX Not Installed
[2015-11-03 22:31:14.320] [INFO] [default] - Run Workers
[2015-11-03 22:31:14.382] [INFO] [default] - Switching Setup Thread 1 Loading last proxy state from redis
[2015-11-03 22:31:14.453] [DEBUG] [default] - Pool peercoin Thread 1 Share processing setup with redis (127.0.0.1:6379)
[2015-11-03 22:31:14.677] [DEBUG] [default] - Pool peercoin Thread 1 Unauthorized RPC access - invalid RPC username or password
[2015-11-03 22:31:14.668] [INFO] [default] - New Relic
[2015-11-03 22:31:14.684] [INFO] [default] - POSIX Not Installed
[2015-11-03 22:31:14.684] [INFO] [default] - Run Workers
[2015-11-03 22:31:14.740] [INFO] [default] - Switching Setup Thread 2 Loading last proxy state from redis
[2015-11-03 22:31:14.804] [DEBUG] [default] - Pool peercoin Thread 2 Share processing setup with redis (127.0.0.1:6379)
[2015-11-03 22:31:15.036] [DEBUG] [default] - Pool peercoin Thread 2 Unauthorized RPC access - invalid RPC username or password
[2015-11-03 22:31:22.164] [DEBUG] [default] - Master CLI CLI listening on port 17117
[2015-11-03 22:31:23.253] [INFO] [default] - New Relic
[2015-11-03 22:31:23.289] [INFO] [default] - POSIX Not Installed
[2015-11-03 22:31:23.294] [INFO] [default] - Run Workers
[2015-11-03 22:31:23.510] [INFO] [default] - New Relic
[2015-11-03 22:31:23.519] [INFO] [default] - POSIX Not Installed
[2015-11-03 22:31:23.520] [INFO] [default] - Run Workers

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: bind EADDRINUSE
    at errnoException (net.js:901:11)
    at net.js:1081:30
    at Object.4:1 (cluster.js:592:5)
    at handleResponse (cluster.js:171:41)
    at respond (cluster.js:192:5)
    at handleMessage (cluster.js:202:5)
    at process.EventEmitter.emit (events.js:117:20)
    at handleMessage (child_process.js:318:10)
    at child_process.js:392:7
    at process.handleConversion.net.Native.got (child_process.js:91:7)
[2015-11-03 22:31:23.851] [ERROR] [default] - Master Website Website process died, spawning replacement...
[2015-11-03 22:31:26.647] [FATAL] [default] - Payments peercoin Daemon does not own pool address - payment processing can not be done with this daemon, {"isvalid":true,"address":"181pYw4yuA6Q7rgsGHmUicrKACY3PSwr9j","scriptPubKey":"76a9144cf092dd6d9175b040fbb43fd94a0bd5b1f8be4188ac","ismine":false}
[2015-11-03 22:31:26.972] [INFO] [default] - New Relic
[2015-11-03 22:31:26.982] [INFO] [default] - POSIX Not Installed
[2015-11-03 22:31:26.983] [INFO] [default] - Run Workers

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: bind EADDRINUSE
    at errnoException (net.js:901:11)
    at net.js:1081:30
    at Object.5:1 (cluster.js:592:5)
    at handleResponse (cluster.js:171:41)
    at respond (cluster.js:192:5)
    at handleMessage (cluster.js:202:5)
    at process.EventEmitter.emit (events.js:117:20)
    at handleMessage (child_process.js:318:10)
    at child_process.js:392:7
    at process.handleConversion.net.Native.got (child_process.js:91:7)
[2015-11-03 22:31:27.185] [ERROR] [default] - Master Website Website process died, spawning replacement...

Надо больше информации плана что-и-откуда для отладки.

    • 0

peercoin будет работать только в mpos с unomp или nomp работать не будет

    • 0
Спасибо. теперь осталось нарыть инфы про поженить mpos и пирку. Что-то у меня не очень получается. Демон работает, а ноду запустить ума не хватает.
    • 0

Здравствуйте.

По ходу настройки сайта везде где можно изменял параметры litecoin на peercoin. Однако упёрся в момент регистрации нового пользователя на mpos. Ругается то на просроченный токен, то Unable to create account: Coin address is not valid. Какой адрес дать ему, от какого кошелька? Я пробовал и от битка и от пирка. Не помогло.

Спасибо.

    • 0

Здравствуйте.

По ходу настройки сайта везде где можно изменял параметры litecoin на peercoin. Однако упёрся в момент регистрации нового пользователя на mpos. Ругается то на просроченный токен, то Unable to create account: Coin address is not valid. Какой адрес дать ему, от какого кошелька? Я пробовал и от битка и от пирка. Не помогло.

Спасибо.

Чуть позже напишу MPOS+PPC

    • 0

Огромное человеческое Спасибо за Ваши труды.

Дело сдвинулось с мёртвой точки.

Поблагодарил с кошелька

181pYw4yuA6Q7rgsGHmUicrKACY3PSwr9j

 

Нужна нода MPOS+PPC+BTC. :)

    • 0

Заключенный бьётся в стену камеры. А другой его спрашивает: Зачем?

- Пробью и выйду на свободу.

- Уверен? А что ты будешь делать в соседней камере?

(с)

 

Демоны и пул запущены, но не могу подключить асики к нему. К какому порту подключаться?

 

ResendWalletTransactions()
socket closed
disconnecting node 192.168.0.108:36905
accepted connection 192.168.0.108:36932


PROCESSMESSAGE MESSAGESTART NOT FOUND

socket closed
disconnecting node 192.168.0.104:57854
accepted connection 192.168.0.104:57881


PROCESSMESSAGE MESSAGESTART NOT FOUND

socket closed
disconnecting node 192.168.0.108:36932
accepted connection 192.168.0.108:36959


PROCESSMESSAGE MESSAGESTART NOT FOUND
 

По ходу чего-то не хватает для полного счастья.

ppcoin.conf

 

listen=1
server=1
gen=0
rpcuser=ppcoinrpc
rpcpassword=
rpcallowip=127.0.0.1
rpcport=9902
port=9901
rpcconnect=127.0.0.1
datadir=/home/root/ppcoin/data/
 

 

 

/**
 * Local wallet RPC
 *  RPC configuration for your daemon/wallet
 *   https://github.com/M...ocal-wallet-rpc
 **/
$config['wallet']['type'] = 'http';
$config['wallet']['host'] = '192.168.0.100:9902';
$config['wallet']['username'] = 'ppcoinrpc';
$config['wallet']['password'] = '........';
/**
 * Getting Started Config
 *  Shown to users in the 'Getting Started' section
 *   https://github.com/M...getting-started
 **/
$config['gettingstarted']['coinname'] = 'Peercoin';
$config['gettingstarted']['coinurl'] = 'https://peercoin.net/newcomers';
$config['gettingstarted']['stratumurl'] = '192.168.0.100';
$config['gettingstarted']['stratumport'] = '9901';

/**
 * Memcache
 *  Memcache configuration details
 *   https://github.com/M...p#wiki-memcache
 **/
$config['memcache']['enabled'] = true;
$config['memcache']['host'] = '192.168.0.100';
$config['memcache']['port'] = 11211;
$config['memcache']['keyprefix'] = 'mpos_';
$config['memcache']['expiration'] = 90;
$config['memcache']['splay'] = 15;
$config['memcache']['force']['contrib_shares'] = false;
$config['memcache']['sasl'] = false;
$config['memcache']['sasl']['username'] = ''; <-- что сюда писать и зачем?
$config['memcache']['sasl']['password'] = ''; <-- что сюда писать и зачем?

 
    • 0

AndreyNag

ppc будет работать только с MPOS пулом. но в нем стратума поэтому с начало ставишь стратум.

    • 0

AndreyNag

ppc будет работать только с MPOS пулом. но в нем стратума поэтому с начало ставишь стратум.

Не хочу влезать в тему, но будет работать и вот наглядный пример UNOMP+MPOS на монете Peercoin https://ppc.asictrade.com/index.php

5 портов взято от UNOMP и оболочка и тд...с MPOS

    • -3

Возможно надо модуль прикрутить node-peercoin для npm но я сейчас занят другим проектом по этому не разбирался

    • 0