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