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

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



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

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».

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


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

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

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

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


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

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

Открываем PuTTY

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


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

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


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

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

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


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

adduser smartholdem

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

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

usermod -a -G sudo smartholdem

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

cd /home/smartholdem

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


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

su smartholdem

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

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

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

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


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


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

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

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


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

sudo reboot

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

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


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

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

sudo -u postgres psql -c "CREATE USER $USER WITH PASSWORD 'password' CREATEDB;" >&- 2>&-

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

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

Комментарии (0)

Оставить комментарий