Smartholdem. Установка делегативной ноды

Статья рассчитана на людей, совершенно не знакомых с Lunix и UNIX-подобными системами. Здесь будут подробные описания и пояснения действий, дабы неопытный пользователь не совершил ненужных ошибок и не потратил времени впустую. Если вам помогла данная статья, можете поддержать делегата Digex.club (как это сделать описано в конце статьи).

Если вы уверенный пользователь UNIX-подобных систем, кратное описание «под катом»:


root
adduser smartholdem
usermod -a -G sudo smartholdem
cd /home/smartholdem
su smartholdem
sudo apt-get update && sudo apt-get dist-upgrade -y
sudo apt-get install postgresql postgresql-contrib libpq-dev build-essential python git curl jq libtool autoconf locales automake locate zip unzip htop nmon iftop -y
sudo reboot

Рестартанулись

smartholdem
sudo -u postgres psql -c «CREATE USER $USER WITH PASSWORD ‘password’ CREATEDB;» >&- 2>&-
createdb sth_smartholdem
git clone https://github.com/smartholdem/smartholdem-node-a.git
cd smartholdem-node-a
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh 2>/dev/null | bash
export NVM_DIR=»$HOME/.nvm»
[ -s «$NVM_DIR/nvm.sh» ] && . «$NVM_DIR/nvm.sh»
nvm install 6.9.5 >>install.log
nvm use 6.9.5 >>install.log
nvm alias default 6.9.5
npm install -g npm
npm install forever -g
npm install grunt-cli -g
npm install

редактируем конфиг
nano config.smartholdem.json
вводим в строке

«forging»: { … «secret»: [«your_secret_passphrase»] … }

вводим туда секретную фразу от аккаунта делегата в кавычках!

записываем изменения CTRL+o
выходим из редактора CTRL+x

forever start app.js —config config.smartholdem.json —genesis genesisBlock.smartholdem.json
tail -f ./logs/sth.log

Ждем загрузку БЧ, смотрим статус ноды в explorer.smartholdem.io

Сегодня своими руками мы будем поднимать делегативную ноду! Нам понадобится:

1. Зарегистрированный делегат (позже будет написана статья, как это сделать).
2. Сервер.
3. Голова.
4. Эта статья.

Итак, делегаты вы уже зарегистрировали, голову не забыли и читаете эту статью. Отлично! Остался сервер. В принципе, вы можете поставить ноду и на домашнем компе, если он будет удовлетворять следующим требованиям: 2 CPU 3.4Ghz / HDD SSD 60GB / RAM 4Gb / OS Ubuntu 16. Мы же поставили более слабый, всего 2 ядра, 2 GB RAM (оперативная память), 30 GB HDD SSD (жесткий диск). В будущем, конечно, потребуется сменить сервер, но сейчас этого вполне достаточно.

В рамках данной статьи мы арендовали сервер на vps.ag с операционкой Ubuntu 16 (это не реклама, реферальной ссылки нет, просто именно на этом сервере мы и ставили свою ноду). Вот так выглядит устанавливающийся сервер. Нужно подождать, пока статус «Installing» сменится на «OK».

Пока мы ждем, скачиваем замечательное приложение PuTTY для работы с командной строкой. Работа с Ubuntu (грубо говоря, вариация Linux) немного отличается от работы с Windows, взаимодействовать с сервером мы будем посредством командной строки (текстовый интерфейс взаимодействия между человеком и компьютером). Веб командная строка поставщика сервера не очень удобная (субъективное мнение автора), будет использоваться стороняя программа.

Итак, качаем отсюда.

Пока мы читали этот текст и качали программу и устанавливали ее, сервер готов к работе.

От сервера нам понадобится:

1. IP адрес
2. ROOT пароль. ROOT (от англ. корень) – это суперпользователь (грубо говоря, администратор) в UNIX-подобных системах), у которого есть права на выполнение всех без исключения операций. Нам пароль пришел на почту после установки сервера. IP можно найти на скриншотах выше.

Открываем PuTTY

Вбиваем IP сервера и подключаемся. Лучше сохранить IP (сессию), это нам в будущем поможет. Видим следующее окно:

Теперь нам надо ввести логин root, затем пароль. То есть root, нажать после Enter, потом вбить пароль, нажать Enter.

ВАЖНО! При вводе пароля, он НЕ ПОКАЗЫВАЕТСЯ в командной строке (из соображений безопасности), продолжайте полностью ее вводить и нажимайте Enter увидите следующее:

Теперь вы суперпользователь и можете творить что угодно. Создадим нового пользователя smartholdem командой (команды необязательно вводить вручную, их можно копировать и вставлять, в PuTTY вставка текста осуществляется нажатием левой кнопкой мыши — команда Ctrl+v не имеет привычного значения).

adduser smartholdem

Далее нужно задать пароль и повторно его ввести. Запомните этот пароль!
Пропускаем ввод имени, фамилии и прочего нажатием Enter, в конце подтверждаем выбор вводом Y и снова нажатием Enter (не одновременно, а последовательно)

Наделяем правами нового пользователя следующей командой:

usermod -a -G sudo smartholdem

переходим в папку пользователя:

cd /home/smartholdem

заходим под новым пользователем:

su smartholdem

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

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

sudo apt-get update && sudo apt-get dist-upgrade –y

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

sudo apt-get install postgresql postgresql-contrib libpq-dev build-essential python git curl jq libtool autoconf locales automake locate zip unzip htop nmon iftop –y

перезагружаемся:

sudo reboot

Тут программа нам скажет, что сервер прервал с нами связь. Запускаем программу заново. Заходим используя уже сохраненную сессию.

Подключаемся к серверу под нашим новым пользователем smartholdem, или же заходим, как это было до этого, как root, переходим в папку cd /home/smartholdem и переключаемся на нашего пользователя su smartholdem.

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

sudo -u postgres psql -c «CREATE USER $USER WITH PASSWORD ‘password’ CREATEDB;» >&- 2>&-

Запросит пароль от пользователя smartholdem

создаем базу:

createdb sth_smartholdem

Этот пункт надо запомнить, если что-то пошло не так в процессе установки, вернемся к этому пункту.

Далее вводим последовательно команды. Некоторые действия могу занять определенное время. В это время ничего не надо нажимать. (Остальные скриншоты будут после команд «под катом»)

git clone https://github.com/smartholdem/smartholdem-node-a.git
cd smartholdem-node-a
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh 2>/dev/null | bash
export NVM_DIR=»$HOME/.nvm»
[ -s «$NVM_DIR/nvm.sh» ] && . «$NVM_DIR/nvm.sh»
nvm install 6.9.5 >>install.log
nvm use 6.9.5 >>install.log
nvm alias default 6.9.5
npm install -g npm
npm install forever -g
npm install grunt-cli -g
npm install

редактируем файл «конфига»

nano config.smartholdem.json

находим строку в конфиге и вставляем в раздел приватную фразу адреса делегата «ваш приватный ключ»
«forging»: { … «secret»: [«your_secret_passphrase»] … }

«forging»: {
«coldstart»: 30,
«force»: true,
«secret»: [«тут свой ключ В КАВЫЧКАХ«],
«access»: {
«whiteList»: [
«127.0.0.1»
]
}
},

Обязательно фразу вбивать В КАВЫЧКАХ!!!

Записываем изменения CTRL+o, после нажимаем Enter
Выходим из редактора CTRL+x

Запускаем ноду в фоновом режиме:

forever start app.js —config config.smartholdem.json —genesis genesisBlock.smartholdem.json

Pапускаем интерактивный лог для мониторинга: tail -f ./logs/sth.log

Если все прошло успешно, то начнется загрузка Блокчейна, а в командной строке побежит много строк. Статус ноды можно посмотреть тут — explorer.smartholdem.io

Если этого не произошло, нужно прописать следующее:

forever stopall

Это остановит все процессы.

dropdb sth_smartholdem

Это удаляет (стирает) базу данных.

createdb sth_smartholdem

Этот пункт был отмечен выше. После этого повторяем еще раз все шаги после создания базы данных.

Поддержи делегата Digex.club. Стоимость голоса всего 1 STH. Нужно в кошельке зайти во вкладку «Голоса», затем «Добавить делегата», выбрать или набрать вручную digex, отдать голос. Вы поддержите выпуск обучающих материалов по Smartholdem и различных новостей по этому проекту. Так же можете внести добровольное пожертвование на следующий адрес SNNFQrPt8ZpF2i3wiKZXEmtbbbE7q2yPk8

Источник

[ ОБСУДИТЬ НА ФОРУМЕ ]