Omniflix /// v2.2

Устанавливаем ноду Omniflix для участия в тестнете FlixNet-2.

Если вы не знаете, что такое нода — читаем статью.
Если вы не знаете, где арендовать сервер для ноды — читаем статью.
Если вы не знаете, как подключиться к серверу — читаем статью.
Если вы всё знаете — открываем MobaXterm и создаём сессию.

Содержание

Omniflix Network - это мультимедийная сеть для авторов, позволяющая создавать, распространять и монетизировать мультимедийные активы.

8 сентября 2021 года в 11:00 AM (UTC) стартует тестнет FlixNet-2.

Если вы не ставили Omniflix до этого момента, то скорее всего, поставить уже и не получится, но для остальных напомню: текущая фаза тестнета не предусматривает наград.


Blog | Docs | GitHub | WebSite | Twitter | Discord | Telegram

Содержание

Официальные требования: 2 CPU x 4 GB RAM x 40 GB SSD - Ubuntu 20.04.

Субъективные наблюдения: 1 CPU x 2 GB RAM x 40 GB SSD - Ubuntu 20.04.

Содержание

В этом блоке мы скачаем необходимые модули на сервер, установим и инициализируем ноду, а также восстановим ключи.

# обновляем 'базу данных' и скачиваем необходимые зависимости 
$ sudo apt-get update && sudo apt-get upgrade -y
$ sudo apt install curl build-essential git wget jq -y
# устанавливаем 'go'
$ wget https://golang.org/dl/go1.16.7.linux-amd64.tar.gz
$ rm -rf /usr/local/go
$ tar -C /usr/local -xzf go1.16.7.linux-amd64.tar.gz
$ rm 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

Отлично, сервер подготовлен. Приступаем к скачиванию необходимых файлов.

# клонируем и устанавливаем ноду
$ git clone https://github.com/Omniflix/omniflixhub.git
$ cd $HOME/omniflixhub && git fetch --all && git checkout v0.2.2
$ make install

Теперь добавим наш никнейм, который будет в дальнейшем использоваться в качестве моникера и названия кошелька, в систему, как переменную.

Замените условную переменную <nickname> на желаемый никнейм, раскрывая кавычки.

# например, "export NICKNAME="cyberomanov"" 
$ echo "export NICKNAME="<nickname>"" >> ~/.bash_profile 
# чтобы переменная загрузилась, необходимо перезагрузить '.bash_profile' 
$ source ~/.bash_profile
# проверим значение переменной, выведя её на экран
$ echo $NICKNAME

Отлично. Приступим к инициализации ноды и генерации ключей.

# инициализируем ноду  
$ omniflixhubd init $NICKNAME --chain-id flixnet-2

Скачиваем каталог $HOME/.omniflixhub/config/ себе на ПК, в качестве бэкапа.

# восстанавливаем ключи по мнемонике
$ omniflixhubd keys add $NICKNAME --recover
Содержание

Переходим к созданию сервиса ноды для запуска валидатора.

# удаляем старый файл генезиса
$ rm -rfv $HOME/.omniflixhub/config/genesis*
# скачиваем новый генезис файл
$ wget -P $HOME/.omniflixhub/config/ https://raw.githubusercontent.com/OmniFlix/testnets/main/flixnet-2/genesis.json
# создаём файл сервиса
$ sudo tee /etc/systemd/system/omniflixhubd.service > /dev/null <<EOF
[Unit]
Description=OmniFlixHub Daemon
After=network-online.target

[Service]
User=$USER
ExecStart=$(which omniflixhubd) start
Restart=always
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Редактируем конфиг, обновляя сиды и пиры.

# создаём временную переменную, где указываем рабочие пиры и сиды
$ SEEDS="cdd6f704a2ecb6b9e53a9b753c894c95976e5cbe@45.72.100.121:26656,\
b0679b09bb72dfc29c332b5ea754cd578d106a49@45.72.100.122:26656"

$ PEERS="65e362590690cedcddf5c7f4fc1b67c9d7b04fb2@45.72.100.118:26656,\
368a9a2b5096de253aaae302ff15a0a77fe06416@45.72.100.119:26656,\
cf8a7600b3daf23e9a3ce67ebe50c4af44701aa8@45.72.100.123:26656,\
93433a8c325d5ed5d2484d7fd23cda3dac511392@45.72.100.124:26656,\
e2241225b6526da42fd7efb636e7c09df1d53b61@172.105.163.104:26656"
# и выполняем команду по установке новых пиров
$ sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.omniflixhub/config/config.toml
# проверяем правдоподобность замены
$ cat $HOME/.omniflixhub/config/config.toml | grep -E "seeds|persistent_peers"
# 'очищаем кеш'
$ omniflixhubd unsafe-reset-all
# обновляем данные о сервисах и запускаем ноду одной командой
$ sudo systemctl daemon-reload && \
sudo systemctl enable omniflixhubd && \
sudo systemctl restart omniflixhubd
# проверяем логи
$ sudo journalctl -u omniflixhubd -f
Содержание

Несколько команд для удобной работы с нодой.

# получаем высоту блоков нашей ноды
$ omniflixhubd status 2>&1 | jq ."SyncInfo"."latest_block_height"
# получаем статус синхронизации ноды
$ omniflixhubd status 2>&1 | jq ."SyncInfo"."catching_up"

# 'true' - нода синхронизируется, 'false' - нода синхронизирована
# посмотреть информацию о валидаторе
$ omniflixhubd query staking \
validator $(omniflixhubd keys show $NICKNAME --bech val --address)
# перезапустить сервис с нодой
$ sudo systemctl restart omniflixhubd
# остановить сервис с нодой
$ sudo systemctl stop omniflixhubd
# проверить логи ноды
$ sudo journalctl -u omniflixhubd -f
Содержание

В первую очередь, необходимо сохранять все "подозрительные" выводы терминала. Я имею в виду мнемоники и адреса.

В космосе, насколько я знаю, валидатор привязывается к конкретному адресу. Следовательно, для восстановления и переноса, необходима лишь мнемоника.

Мы делаем всё тоже самое, только вместо команды:

$ omniflixhubd keys add $NICKNAME

Выполняем команду восстановления ключей:

$ omniflixhubd keys add $NICKNAME --recover

В этом случае терминал попросит ввести старую мнемонику и, возможно, пароль.

Этой командой мы восстановим ключи на новом сервере вместо генерации новых.

Но, вероятно, потребуется замена каталога $HOME/.omniflixhubd, поэтому его тоже лучше скачать и сделать бэкап.

Содержание

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

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

# останавливаем и отключаем сервис ноды
$ sudo systemctl stop omniflixhubd && sudo systemctl disable omniflixhubd
# удаляем каталоги с файлами ноды
$ rm -Rvf $HOME/omniflixhub
$ rm -Rvf $HOME/.omniflixhub
# удаляем файл сервиса и перезагружаем демона
$ sudo rm -v /etc/systemd/system/omniflixhubd.service 
$ sudo systemctl daemon-reload
Содержание

Если вы попали в "тюрьму":

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

# выходим из 'тюрьмы'
$ omniflixhubd tx slashing unjail --from $NICKNAME --chain-id=flixnet-2
Содержание

План работы: выводим реварды за активное валидирование, проверяем баланс, ределегируем собранную награду снова на своего валидатора.

# вывести реварды за стейкинг для последующей ределегации
$ omniflixhubd tx distribution withdraw-all-rewards \
 --gas="auto" \
 --gas-adjustment=1.5 \
 --gas-prices="1uflix" \
 --chain-id=flixnet-2 \
 --from=$NICKNAME

Замените условную переменную <address> на ваш omni-адрес, раскрывая кавычки.

# проверяем баланс
$ omniflixhubd query bank balances <address> --denom="uflix"

Где <address> - адрес, с которого производилось создание валидатора.

В amount показывает весь свободный баланс. Не советую делегировать весь баланс, помните, что каждая транзакция имеет комиссию.

# делегировать токены на своего валидатора
$ omniflixhubd tx staking delegate <operator_address> "1000000uflix" \
 --gas="auto" \
 --gas-adjustment=1.5 \
 --gas-prices="1uflix" \
 --chain-id=flixnet-2 \
 --from=$NICKNAME

Где <operator_address> - адрес для делегации:

"1000000uflix" - 1 токен.

Проверяем информацию о валидаторе:

$ omniflixhubd query staking \
validator $(omniflixhubd keys show $NICKNAME --bech val --address)
Содержание

Производим обновление ноды с v0.2.1 на v0.2.2.

# останавливаем сервис с нодой
$ sudo systemctl stop omniflixhubd
# удаляем старые файлы
$ omniflixhubd unsafe-reset-all
$ rm -rf $HOME/omniflixhub /usr/bin/omniflixhubd $(which omniflixhubd)
# скачиваем и устанавливаем ноду
$ git clone https://github.com/Omniflix/omniflixhub.git
$ cd omniflixhub && git checkout v0.2.2 && make install && cd
# проверяем версию
$ omniflixhubd version
# обновляем пиры
$ sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"\
65e362590690cedcddf5c7f4fc1b67c9d7b04fb2@45.72.100.118:26656,\
368a9a2b5096de253aaae302ff15a0a77fe06416@45.72.100.119:26656,\
cf8a7600b3daf23e9a3ce67ebe50c4af44701aa8@45.72.100.123:26656,\
93433a8c325d5ed5d2484d7fd23cda3dac511392@45.72.100.124:26656,\
e2241225b6526da42fd7efb636e7c09df1d53b61@172.105.163.104:26656\
\"/" $HOME/.omniflixhub/config/config.toml
# перезапускаем сервис с нодой
$ sudo systemctl restart omniflixhubd
# проверяем логи
$ sudo journalctl -u omniflixhubd -f | grep "executed block"
Содержание

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

Содержание

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

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

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