Установка Emercoind на VPS

Криптовалюта EmerCoin предлагает огромное количество интересных возможностей, которых нет не только у других форков, но и у BitCoin. Однако, чтобы в полной мере воспользоваться всеми преимуществами этой криптовалюты, необходимо поднять собственный сервер с демоном EmerCoind. Это статья представляет собой инструкцию по установке демона EmerCoin на VPS под управлением Debian 7.

Установка Emercoind на VPS

Для тестов был выбран ВПС за 5$ от компании DigitalOcean с OS Debian 7 х64.

Первое, что нам потребуется, это скачать файл кошелька последней версии.

wget http://downloads.sourceforge.net/project/emercoin/0.3.6/emercoin-0.3.6-linux.tar.gz

Теперь можно распаковать архив:

tar xzf emercoin-0.3.6-linux.tar.gz

Так как мы используем 64-битную систему, нужно скопировать файл emercoind из папки emercoin-0.3.2-linux/bin/64/

mv emercoin-0.3.2-linux/bin/64/emercoind /usr/bin/

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

mkdir /home/emc
addgroup --gid 1000 emc
adduser --home /home/emc --shell /bin/false --no-create-home --uid 1000 --gid 1000 emc
adduser emc emc

Создадим скрытый каталог .emercoin и в нём файл конфигурации emercoin.conf:

cd /home/emc
mkdir .emercoin
cd .emercoin
nano emercoin.conf

Вот типовой файл конфигурации:

rpcuser=emccoinrpc
rpcpassword=очень_длинный_и_сложный_пароль

listen=1
server=1
rpcallowip=127.0.0.1
rpcport=8775

maxconnections=80
gen=0
reservebalance=5
daemon=1

emcdns=0 # Activate DNS
emcdnsallowed=.coin|.emc|.lib|.bazar # Allowed TLDs
emcdnsverbose=4

  • server - указывает на то, что этот узел будет являться «серверным»
  • gen=0 - отключает автоматический майнинг монет на процессоре
  • rpcport/user/password - задаёт значения для коммуникации и приём/отдачу команд кошельком
  • rpcallowip - здесь нужно перечислить IP, с которых можно обращаться к клиенту

Сохраняем и закрываем редактор комбинацией клавиш ctr+x и ставим права только на чтение для этого файла:

chmod 0400 emercoin.conf

Указываем владельца директории /home/emc и всех вложенных файлов:

chown -R emc:emc /home/emc/

Теперь залогинимся под нашим пользователем и запустим кошелёк. Ключ -s указывает, какой именно шелл использовать (помните мы указали бинарник false в качестве шелла для пользователя? простой логин под юзером emc просто завершит сеанс)

su -s /bin/bash emc
emercoind

Появится сообщение:

emercoin server starting

После этого нагрузка на сервер резко возрастет. Около получаса кошелек emercoin будет синхронизироваться с блокчейном, после синхронизации нагрузка придет в норму.

Команда

emercoind getinfo

покажет текущую ситуацию:

{
"version" : "v0.3.0emc-18-gddeac0f-beta",
"protocolversion" : 60003,
"walletversion" : 60000,
"balance" : 0.00000000,
"newmint" : 0.00000000,
"stake" : 0.00000000,
"blocks" : 106379,
"moneysupply" : 35380182.02903000,
"connections" : 13,
"proxy" : "",
"ip" : "XX.XXX.XX.XXX",
"difficulty" : 8407530.87792009,
"testnet" : false,
"keypoololdest" : 1434370307,
"keypoolsize" : 101,
"paytxfee" : 0.01000000,
"errors" : ""
}

Теперь можно разлогиниться

exit

и перейти к настройке демона.

Настройка демона

Перейдем в каталог со "сценариями" /etc/init.d/ и скопируем шаблон:

cd /etc/init.d/
cp skeleton emercoind

Откроем файл для редактирования, и внесём изменения:

nano emercoind

#! /bin/sh
### BEGIN INIT INFO
# Provides: emercoind
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Auto init EmerCoin
# Description: Auto init EmerCoin via booting system
### END INIT INFO

# Author: Author: Foo Bar
#
# 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="Emercoin daemon"
NAME=emercoind
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS=""
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
CHUID=emc:emc

# 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 --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --chuid $CHUID --pidfile $PIDFILE --exec $DAEMON -- \
$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.

Какие данные нужно изменять:

  • Provides: emercoind - задаём название
  • Short-Description/Description — описание того, что делает данный файл
  • DESC="Emercoin daemon" - описание сервиса
  • NAME=emercoind название исполняемого файла
  • DAEMON=/usr/bin/$NAME - полное имя файла (не забудьте исправить sbin на bin в шаблоне)
  • DAEMON_ARGS="-daemon" - задаём аргументы запуска: кошелёк должен стартовать в фоновом режиме демона. Так как у нас в конфиге emercoin.conf уже определен режим демона (daemon=1), аргумент можно не указывать.
  • start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ -меняем на start-stop-daemon --start --quiet --chuid $CHUID --pidfile $PIDFILE --exec $DAEMON -- \

Сохраняем файл crtlr+x и выставляем ему права:

chmod 0755 emercoind

Теперь почти все готово. Выполним команду

/etc/init.d/emercoind

перед нами появится список возможных действий:

Usage: /etc/init.d/emercoind {start|stop|status|restart|force-reload}

Команда

/etc/init.d/emercoind start

запустит демон emercoind

Чтобы наш демон автоматически стартовал при запуске сервера, выполним команду:

update-rc.d emercoind defaults

Теперь можно перезапустить систему

reboot

Если после рестарта все запустилось, значит система настроена верно.

Категория: 
Tutorial
4
Средняя: 4 (1 оценка)
0
Ваша оценка: Нет
11812 / 1
Аватар пользователя admin
Публикацию добавил: admin
Дата публикации: пн, 06/15/2015 - 15:29

Что еще почитать:

Комментарии:

Аватар пользователя admin

admin

rpcallowip=127.0.0.1

Небольшое дополнение. Чтобы дать доступ к кошельку с нескольких IP, нужно указать каждый с новой строки, например:
rpcallowip=127.0.0.1
rpcallowip=192.168.1.141

чт, 06/18/2015 - 22:54

Аватар пользователя Emer

Emer

su -s /bin/bash emc
Простит ввести пароль, ввожу.
После этого ввожу: emercoind
он пишет Permission denied

Что не так?

[email protected]:~/.emercoin$ su -s /bin/bash emc emercoind
Password:
[email protected]:~/.emercoin$ emercoind
bash: /usr/bin/emercoind: Permission denied

чт, 12/03/2015 - 18:15

Аватар пользователя admin

admin

Если выполнять su -s /bin/bash emc под рутом, то пароль не должен спрашивать
Попробуйте пропустить этот шаг и настройте демон (далее по инструкции) и затем попробуйте запустить через /etc/init.d/emercoind

чт, 12/03/2015 - 18:26

Аватар пользователя Emer

Emer

Да, все сделал по инструкции но он молчит, проклятый:

[email protected]:/etc/init.d# /etc/init.d/emercoind
[email protected]:/etc/init.d#

Списка возможных действий не выводит почему-то.
Может ли быть проблемой что у меня другой линукс - Ubuntu Server 64х?

чт, 12/03/2015 - 19:53

Аватар пользователя Анонимус

Анонимус

Да, все сделал по инструкции но он молчит, проклятый:

[email protected]:/etc/init.d# /etc/init.d/emercoind
[email protected]:/etc/init.d#

Списка возможных действий не выводит почему-то.
Может ли быть проблемой что у меня другой линукс - Ubuntu Server 64х?

чт, 12/03/2015 - 19:35

Аватар пользователя admin

admin

Попробуйте поменять права на файл:

chmod 755 /usr/bin/emercoind

и запустите демон кошелька

чт, 12/03/2015 - 20:45

Аватар пользователя Emer

Emer

Тоже самое, ноль реакции.

чт, 12/03/2015 - 21:13

Аватар пользователя admin

admin

А если просто запустить /usr/bin/emercoind ?
Какие ошибки выводит?

чт, 12/03/2015 - 21:50

Аватар пользователя Emer

Emer

Error: To use emercoind, you must set a rpcpassword in the configuration file:
/root/.emercoin/emercoin.conf
It is recommended you use the following random password:
rpcuser=emercoinrpc
rpcpassword=******************************************************* (большой пароль)
(you do not need to remember this password)
If the file does not exist, create it with owner-readable-only file permissions.

чт, 12/03/2015 - 22:19

Аватар пользователя admin

admin

Теперь более-менее понятно. Видимо демон не может запустить кошелек от имени пользователя emc, а чтобы запуститься от рута ему не хватает конфига в нужной папке. Скорее всего ошибка произошла на этапе создания пользователя.

Под пользователем emc можете войти?

В общем запустите /usr/bin/emercoind от пользователя emc, если будет ругаться на Permission denied, то попробуйте сделать

chown emc:emc /usr/bin/emercoind

под рутом

чт, 12/03/2015 - 22:35

Аватар пользователя Анонимус

Анонимус

Запустить получилось, но дальше по инструкции, где создание демона по шаблону, процесс не идет

[email protected]:/etc/init.d# chmod 0755 emercoind
[email protected]:/etc/init.d# /etc/init.d/emercoind
[email protected]:/etc/init.d#

пт, 12/04/2015 - 12:23

Аватар пользователя admin

admin

Если получилось запустить от пользователя emc, значит все ок. /etc/init.d/emercoind запускает кошелек от имени emc и если он руками запустился, то должен запуститься и через /etc/init.d/emercoind start

пт, 12/04/2015 - 22:12

Аватар пользователя Emer

Emer

Спасибо за помощь, все получилось.

Хочу обратить внимание, что кое-что в тексте устарело:

актуальная версия: wget http://downloads.sourceforge.net/project/emercoin/0.3.6/emercoin-0.3.6-linux.tar.gz

Aрхив: 7z x emercoin-0.3.6-linux.tar.gz и еще раз извлечь 7z x emercoin-0.3.6-linux.tar

И в скелетоне, в примере, желательно поправить: sbin -> bin а то не совсем понятно правильный ли это шаблон или нет.

вт, 12/08/2015 - 19:41

Аватар пользователя admin

admin

Отлично, очень рад, что все получилось. Ссылки сейчас обновлю.

sbin -> bin

Тут как раз проявляется различие между Debian и Ubuntu

ср, 12/09/2015 - 10:33

Аватар пользователя Олег

Олег

Вопрос есть)
Делал не по вашей схеме, а по своей...но не суть дела....
клиент не работает с rpc call?
вообщем делал из под мастера вышла "version" : "v0.3.7emc-2-g035d68c-beta",, все данные собираются кроме кошелька вернее через гетинфо все нормально, а вот при обращении через веб интерфейс выдает ошибку....пытаюсь запустить на мпосе это все дело, но кидаю с зависимостью через юномп т.к. мне порты нужны разные...говорит при старте через юномп Could not start pool, error with init batch RPC call: {"code":-32700,"message":"Parse error"} есть возможность помочь? или просто скажите какая версия поддерживает рпц запросы нормально?

сб, 01/16/2016 - 23:36

Аватар пользователя admin

admin

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

вс, 01/17/2016 - 22:16

Аватар пользователя Олег

Олег

Самое интересное, что поставив 0.4 все нормально работает....Вы можете скинуть копию Вашего emercoind на почту [email protected] буду Вам чрезвычайно признателен

вт, 01/19/2016 - 03:50

Аватар пользователя Олег

Олег

Вот кстате конфиг

server=1
daemon=1
listen=1
rpcuser=акк
rpcpassword=пасс
rpcport=8775
maxconnections=8
rpcallowip=127.0.0.1
blockmaxsize=1000000
paytxfee=0.01
emcdns=0 # Activate DNS
emcdnsallowed=.coin|.emc|.lib|.bazar # Allowed TLDs
emcdnsverbose=4

вт, 01/19/2016 - 03:51

Аватар пользователя admin

admin

В Debian 8 настройка демона происходит еще проще:

Создаем файлик emercoin.service в папке /etc/systemd/system/

nano /etc/systemd/system/emercoin.service

С таким содержимым:

[Unit]
Description=EmerCoin daemon service
After=network.target

[Service]
Type=forking
Restart=on-failure

User=emc
Group=emc
ExecStart=/usr/bin/emercoind
ExecReload=/usr/bin/kill -HUP $MAINPID
ExecStop=/usr/bin/emercoind stop

PrivateTmp=true
TimeoutStopSec=20s
TimeoutStartSec=2s
StartLimitInterval=120s
StartLimitBurst=5

[Install]
WantedBy=multi-user.target

После этого активируем сервис

systemctl enable emercoin.service

пн, 07/04/2016 - 17:27

Аватар пользователя adm

adm

Для Debian 7 wheezy зависимости при компилляции:
sudo apt-get install libcurl4-openssl-dev libminiupnpc-dev libboost1.49-dev libboost-filesystem1.49-dev libboost-system1.49-dev libboost-program-options1.49-dev libboost-thread1.49-dev libdb5.1++-dev

вт, 07/12/2016 - 05:08

Аватар пользователя Adam

Adam

Мужики есть у меня 100 тысяч думаю вот какие видео карты взять и процессор

ср, 06/14/2017 - 02:27

Добавить комментарий