Ended Events
August 6, 2021

Rizon /// v1.4

RIZON blockchain is a Tendermint-based hub blockchain for digital currency and asset.

The blockchain offers governance features and function for creating asset-backed type stable token. By using Cosmos SDK, it allows digital assets to be easily formed. In addition, team plans to use IBC feature to connect to the Cosmos ecosystem. By doing so, RIZON will help to take down barriers between businesses and allow on-chain and off-chain businesses to participate in RIZON to grow exponentially and rapidly.

They are planning on a large-scale investment for participants of incentivized testnet and ecosystem to expand RIZON’s ecosystem. The reward for testnet participation is 4,200,000 ATOLO coins in total, and the reward will be given to validators and third parties according to the result of the testnet.

Another plan that team has is to operate a year-round grant program and bug bounty program. Through these programs, which will be operated at all times, the teams that participate in the development of RIZON’s ecosystem in different areas, including tool development of explorer, wallet, and such, will be able to apply for a grant and receive it. Hdac Technology is planning on arranging a fund worth a maximum of one million dollars each year to fulfil the plan.

Medium | Docs | GitHub | WebSite | Twitter | Discord | Telegram

HW: 2 CPU x 4 GB RAM x 60 GB SSD
ОS: Ubuntu 20.04

Если вы не знаете, что такое нода — читаем статью.
Если вы не знаете, где арендовать сервер для ноды — читаем статью.
Если вы не знаете, как подключиться к серверу — читаем статью.
Если вы всё знаете — открываем MobaXterm и создаём сессию.
# обновляем 'базу данных', обновляем дистрибутив
$ sudo apt-get update && sudo apt-get upgrade -y
# скачиваем необходимые зависимости
$ sudo apt-get install git tar curl build-essential jq -y
# устанавливаем 'go' одной командой
wget https://golang.org/dl/go1.16.7.linux-amd64.tar.gz; \
rm -rv /usr/local/go; \
tar -C /usr/local -xzf go1.16.7.linux-amd64.tar.gz && \
rm -v go1.16.7.linux-amd64.tar.gz && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile && \
source ~/.bash_profile && \
go version
# клонируем и устанавливаем ноду 'rizon'
$ git clone https://github.com/rizon-world/rizon.git && cd rizon
$ git fetch && git checkout v0.2.3
$ make install
# инициализируем ноду
# не забудьте изменить <nickname> на ваш никнейм без кавычек
# например, "export NICKNAME=cyberomanov"
$ echo "export NICKNAME="<nickname>"" >> ~/.bash_profile && source ~/.bash_profile
$ $HOME/go/bin/rizond init $NICKNAME --chain-id groot-011
# скачиваем файл генезиса
$ wget https://raw.githubusercontent.com/rizon-world/testnet/drill-1/genesis.json
$ cp -f genesis.json $HOME/.rizon/config/genesis.json
# настраиваем 'app.toml'
$ sed -i 's/minimum-gas-prices = ""/minimum-gas-prices = "0.0001uatolo"/g' $HOME/.rizon/config/app.toml
# настраиваем файл конфига, 'seeds' можно взять отсюда: 
# https://github.com/rizon-world/testnet
# задаём переменную 'seeds'
$ SEEDS="08c0e4c197a0607a9832f9b365d07cef9b04a859@3.34.181.126:26656,\
34cec0c4ada4cd7f8ad26c457d604edc0eff3cb0@13.124.253.195:26656,\
72016f93daf677147c5d1d2625273dde61ae2d0a@3.34.5.208:26656,\
fc40d080708997112f799afaac09c667a560131a@65.21.184.214:26656,\
b197e7a5c3a70d6e6d5d65a09d881fa4ff597201@65.21.106.221:26656,\
7216c0b7bd384036211946571d5fde3b63e71523@104.251.216.165:26656,\
4c255b376f2a5208f6a2aed641a50fadd81d318d@128.199.198.111:26656,\
a891d5b5f6e1b38e851e5e8162641b4c3e722698@95.111.240.161:26656,\
3b8bba36191286ea05d85d57eed035997da20c0a@3.210.29.92:26656,\
65f5e463563e90883716fa800d96dd4125a29f28@144.91.123.104:26656,\
bbcc62acee2672bf0ff947bd9057015c7c1787a3@138.201.8.83:26656,\
6a47b4fb4ea56203cfea4059f39737beae216503@14.52.147.51:30519,\
97376a4f5628d0059e4eb2b4eb49df4df26318bb@89.163.218.156:26656,\
01c0d60863b2cade4a2f5f47d1bfee180906ca18@161.97.113.107:36656,\
19a7d9a222a808926e9ef9008fc0b30927e973eb@54.177.81.121:26656,\
ea711347485a99e5cca198630597603896ebb6bb@162.55.68.188:26656,\
1c35cad7f93deb377174ae3a229b020d8986b978@167.86.119.230:26656"
$ sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" $HOME/.rizon/config/config.toml
# создаём файл сервиса для запуска ноды
$ sudo tee <<EOF >/dev/null /etc/systemd/system/rizond.service
[Unit]
Description=Rizon Node
After=network-online.target
[Service]
User=$USER
ExecStart=$HOME/go/bin/rizond start
Restart=always
RestartSec=10
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
EOF
# включаем сервис 'rizond' и смотрим логи
$ sudo systemctl daemon-reload
$ sudo systemctl enable rizond
$ sudo systemctl restart rizond
$ sudo journalctl -u rizond -f

# ждём, пока нода найдёт рабочие пиры
# это занимает от нескольких минут до пары часов

Переходим на mintscan и ищем значение высоты блоков:

Теперь нужно подождать, пока нода синхронизируется. У меня это заняло около 6-8 часов.

# получаем высоту блоков нашей ноды

$ $HOME/go/bin/rizond status 2>&1 | jq ."SyncInfo"."latest_block_height"
# получаем статус синхронизации ноды
$ $HOME/go/bin/rizond status 2>&1 | jq ."SyncInfo"."catching_up"

# 'true' - нода синхронизируется
# 'false' - нода синхронизирована

Пока нода синхронизируется, можно создать кошелёк и запросить на него монеты.

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

# обязательно сохраняем мнемонику и адрес
$ $HOME/go/bin/rizond keys add $NICKNAME'_keys'

Переходим на страницу с краном, запрашиваем тестовые токены:

Можно посмотреть баланс кошелька через mintscan:

# проверяем баланс с помощью команды

$ $HOME/go/bin/rizond query bank balances <address>

Баланс с помощью команды можно посмотреть только после успешной синхронизации ноды.

Когда нода синхронизирована, можно создавать валидатора.ᅠ

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

# отправляем транзакцию создания валидатора
$ $HOME/go/bin/rizond tx staking create-validator \
--amount="7000000uatolo" \
--pubkey=$($HOME/go/bin/rizond tendermint show-validator) \
--moniker=$NICKNAME \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--from $NICKNAME'_keys' \
--chain-id=groot-011 \
--fees="1000uatolo"

Найти себя в валидаторах можно по никнейму:

Копируем свой Operator address. Теперь заделегируем себе немного монет:

# задаём переменную с адресом оператора без кавычек
$ echo "export OPERATOR="<address>"" >> ~/.bash_profile && source ~/.bash_profile
# отправляем транзакцию селф-делегирования
$ $HOME/go/bin/rizond tx staking delegate $OPERATOR 210000uatolo \
--chain-id=groot-011 \
--from=$NICKNAME'_keys' \
--fees=1000uatolo
# можно проверить стейк и информацию по валидатору прямо из терминала
$ $HOME/go/bin/rizond query staking validator $OPERATOR

Отправляя 210000 uatolo, мы делегируем 0.21 монеты:

На награды в тестнете ваше место в списке валидаторов никак не повлияет, поэтому кран доить бессмысленно:

Если ваш аватар стал похож на следующие:

То необходимо отправить транзакцию unjail:

# выходим из 'тюрьмы'
$ $HOME/go/bin/rizond tx slashing unjail \
--from $NICKNAME'_keys' \
--chain-id=groot-011 \
--fees=1000uatolo

Вот, собственно, и всё.

Переходим на github, чтобы узнать актуальную версию тестнета:

Переходим на сервер и обновляемся:

# останавливаем ноду
$ sudo systemctl stop rizond
# удаляем старые данные
$ rm -rfv $HOME/.rizon/config/genesis.json && rm -rfv $HOME/.rizon/config/gentx && rm -rfv $HOME/genesis.json*
$ $HOME/go/bin/rizond unsafe-reset-all
# скачиваем новый релиз
$ echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile && source ~/.bash_profile
$ cd $HOME/rizon && git fetch && git checkout v0.2.3 && make install && cd
$ $HOME/go/bin/rizond version
# инициализируем ноду
$ $HOME/go/bin/rizond init $NICKNAME --chain-id groot-011
# скачиваем файл генезиса
$ wget https://raw.githubusercontent.com/rizon-world/testnet/drill-1/genesis.json 
$ mv -v genesis.json $HOME/.rizon/config/genesis.json
# настраиваем файл конфига, 'seeds' можно взять отсюда: 
# https://github.com/rizon-world/testnet
# задаём переменную 'seeds'
$ SEEDS="08c0e4c197a0607a9832f9b365d07cef9b04a859@3.34.181.126:26656,\
34cec0c4ada4cd7f8ad26c457d604edc0eff3cb0@13.124.253.195:26656,\
72016f93daf677147c5d1d2625273dde61ae2d0a@3.34.5.208:26656,\
fc40d080708997112f799afaac09c667a560131a@65.21.184.214:26656,\
b197e7a5c3a70d6e6d5d65a09d881fa4ff597201@65.21.106.221:26656,\
7216c0b7bd384036211946571d5fde3b63e71523@104.251.216.165:26656,\
4c255b376f2a5208f6a2aed641a50fadd81d318d@128.199.198.111:26656,\
a891d5b5f6e1b38e851e5e8162641b4c3e722698@95.111.240.161:26656,\
3b8bba36191286ea05d85d57eed035997da20c0a@3.210.29.92:26656,\
65f5e463563e90883716fa800d96dd4125a29f28@144.91.123.104:26656,\
bbcc62acee2672bf0ff947bd9057015c7c1787a3@138.201.8.83:26656,\
6a47b4fb4ea56203cfea4059f39737beae216503@14.52.147.51:30519,\
97376a4f5628d0059e4eb2b4eb49df4df26318bb@89.163.218.156:26656,\
01c0d60863b2cade4a2f5f47d1bfee180906ca18@161.97.113.107:36656,\
19a7d9a222a808926e9ef9008fc0b30927e973eb@54.177.81.121:26656,\
ea711347485a99e5cca198630597603896ebb6bb@162.55.68.188:26656,\
1c35cad7f93deb377174ae3a229b020d8986b978@167.86.119.230:26656"
$ sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" $HOME/.rizon/config/config.toml
# команда выполнит замену старых сидов на актуальные
# перезапускаем сервер и минут через 20 проверяем логи
$ sudo systemctl daemon-reload
$ sudo systemctl restart rizond
$ sudo journalctl -u rizond -f
# восстанавливаем ключи с помощью мнемоники, если переустанавливали сервер
$ rizond keys add $NICKNAME'_keys' --recover

Теперь нужно заново запросить монеты с крана (так как мы работаем в новой сети) и пересоздать валидатора.

Установка скрипта автоделегирования совсем не обязательна. Потенциальные реварды от этого не увеличатся, но почему бы и нет.

Первым делом нужно настроить переменные. Проверим, какие переменные уже существуют у нас в системе, а какие нужно создать:

# выводим в терминал значения переменных
$ echo $OPERATOR
$ echo $NICKNAME
$ echo $ADDRESS
$ echo $PASSWD

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

# меняем <nickname> на ваш никнейм без кавычек <_>
# например, "export NICKNAME="cyberomanov""
# задаём необходимые переменные
$ echo "export NICKNAME="<nickname>"" >> ~/.bash_profile && source ~/.bash_profile
$ echo "export OPERATOR="<operator_address>"" >> ~/.bash_profile && source ~/.bash_profile
$ echo "export ADDRESS="<delegator_address>"" >> ~/.bash_profile && source ~/.bash_profile
$ echo "export PASSWD="<node_password>"" >> ~/.bash_profile && source ~/.bash_profile

После того, как мы добавили никнейм ноды, адрес оператора ноды, адрес делегатора и пароль от ноды в переменные, можно скачивать скрипт автоделегирования:

# скачиваем скрипт
$ cd && wget https://raw.githubusercontent.com/5PARM1T/scriptsCosmoSDK/main/restakingRizon.sh
# меняем в скрипте все необходимые переменные одной командой
$ sed -i.bak -e "s/^DELEGATOR_ADDRESS*=.*/DELEGATOR_ADDRESS=\"$ADDRESS\"/" $HOME/restakingRizon.sh && \
sed -i.bak -e "s/^VALIDATOR_ADDRESS*=.*/VALIDATOR_ADDRESS=\"$OPERATOR\"/" $HOME/restakingRizon.sh && \
sed -i.bak -e "s/^PWD*=.*/PWD=\"$PASSWD\"/" $HOME/restakingRizon.sh && TEMP="_keys" && \
sed -i.bak -e "s/^ACC_NAME*=.*/ACC_NAME=\"$NICKNAME$TEMP\"/" $HOME/restakingRizon.sh
# выводим текст скрипта, чтобы удостовериться в правильной замене
$ cat restakingRizon.sh

# если где-то накосячили, придётся руками исправлять
$ nano restakingRizon.sh
# выдаём права на запуск скрипта
$ chmod +x restakingRizon.sh
# устанавливаем 'tmux'
$ sudo apt-get install tmux -y

# запускаем окно 'tmux'
$ tmux new -s rizonscript

# запускаем скрипт в окне 'rizonscript'
$ bash restakingRizon.sh
# открыть старое окно 'tmux', если обрывали сессию с сервером
$ tmux attach -t rizonscript

# ctrl + b, d - чтобы выйти из режима окна 'tmux'

Ну вот оно и всё, скрипт собрал "намайненное" и ределегировал:

Если вы вдруг разочаровались в проекте и хотите удалить его с сервера, то можно просто разрушить/удалить сервер из личного кабинета хостинга.

Это сработает, если на сервере нет других важных нод. В случае, если вы хотите оставить сервер, но удалить конкретную ноду - приступаем к её удалению:

# останавливаем и отключаем сервис ноды
$ sudo systemctl stop rizond && sudo systemctl disable rizond && \
sudo systemctl stop rizond && tmux kill-server

Не забудьте сделать бэкап папки .rizon, даже если хотите удалить ноду с сервера.

# удаляем папки и исполняемые файлы
$ sudo rm -Rvf $HOME/.cache $HOME/.rizon \
$HOME/go/bin/rizond $HOME/rizon restakingRizon*
# удаляем файлы сервиса и перезагружаем демона одной командой
$ sudo rm -v /etc/systemd/system/rizond.service && \
sudo systemctl daemon-reload

мамичу за то, что родила такого гения.

@SPARMIT за помощь со скриптом.

@how_to_node - канал, где я выкладываю свои гайды.

Полезные ресурсы.

Крипто-кошельки автора гайда.