Guides
December 29, 2022

OKP4: Installation Guide

OKP4 Network — OKP4 — это L1 блокчейн, предназначенный для обмена данными с минимальным доверием (trust-minimized).
OKP4 объединяет активы, совместно используемые участниками, в Dataverse: данные, алгоритмы, программное обеспечение, хранилище и вычисления для обеспечения приложений нового поколения
Любой участник получает вознаграждение благодаря этим новым цепочкам создания ценности.

Запуск награждаемого тестнета назначен на 2 ноября. Тогда же и появится форма для участия. Только 150 валидаторов смогут претендовать на вознаграждение.

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

Для всех остальных появится возможность присоединиться в 5-й фазе.

Тестнет эксплорер - http://explorer.nodera.org/okp4/staking

DYOR:

Website
Discord
Twitter

Оглавление


Подготовка сервера

Оглавление

На данном этапе устанавливаю на сервере Hetzner - CPX21: 3 CPU, 4 GB RAM, 80 GB SSD, дальше буду смотреть по нагрузке, возможно понадобится 4 CPU, 8 GB RAM, 200 GB SSD.

Обновляем пакеты

sudo apt update && sudo apt upgrade -y

Устанавливаем инструменты разработчика и необходимые пакеты

sudo apt install curl build-essential pkg-config libssl-dev git wget jq make gcc tmux chrony screen -y

Устанавливаем GO

wget https://go.dev/dl/go1.18.4.linux-amd64.tar.gz; \
rm -rv /usr/local/go; \
tar -C /usr/local -xzf go1.18.4.linux-amd64.tar.gz && \
rm -v go1.18.4.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/okp4/okp4d.git
cd okp4d && git checkout v3.0.0
make build
sudo mv ./target/dist/okp4d /usr/local/bin/

Создаем переменные

MONIKER_OKP4=вводим свое имя
CHAIN_ID_OKP4=okp4-nemeton-1
PORT_OKP4=33

Сохраняем переменные, перезагружаем .bash_profile и проверяем значения переменных

echo "export MONIKER_OKP4="${MONIKER_OKP4}"" >> $HOME/.bash_profile
echo "export CHAIN_ID_OKP4="${CHAIN_ID_OKP4}"" >> $HOME/.bash_profile
echo "export PORT_OKP4="${PORT_OKP4}"" >> $HOME/.bash_profile
source $HOME/.bash_profile

echo -e "\nmoniker_OKP4 > ${MONIKER_OKP4}.\n"
echo -e "\nchain_id_OKP4 > ${CHAIN_ID_OKP4}.\n"
echo -e "\nport_OKP4 > ${PORT_OKP4}.\n"

Настраиваем конфиг

okp4d config chain-id $CHAIN_ID_OKP4
okp4d config keyring-backend test
okp4d config node tcp://localhost:${PORT_OKP4}657
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0uknow\"/" $HOME/.okp4d/config/app.toml

Инициализируем ноду

okp4d init $MONIKER_OKP4 --chain-id $CHAIN_ID_OKP4

Загружаем генезис файл и адресбук

wget -O $HOME/.okp4d/config/genesis.json https://raw.githubusercontent.com/okp4/networks/main/chains/nemeton-1/genesis.json

Добавляем пиры

SEEDS="2f9e54645aca860f703e3f756fa7c472b829a9a9@tenderseed.ccvalidators.com:26009"
PEERS="15fdc722cd49ef7676205b6ad3120a84728d948c@65.108.225.158:17656,5a343f58402802a83ac546a22f66b1a799480dec@95.216.2.232:33656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.okp4d/config/config.toml

Изменяем порты для возможности дальнейшего подселения других нод проектов экосистемы Космос на один сервер

sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${PORT_OKP4}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${PORT_OKP4}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${PORT_OKP4}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${PORT_OKP4}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${PORT_OKP4}660\"%" $HOME/.okp4d/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${PORT_OKP4}317\"%; s%^address = \":8080\"%address = \":${PORT_OKP4}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${PORT_OKP4}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${PORT_OKP4}091\"%" $HOME/.okp4d/config/app.toml

Настраиваем прунинг

pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.okp4d/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.okp4d/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.okp4d/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.okp4d/config/app.toml

Сбрасываем данные

okp4d tendermint unsafe-reset-all --home $HOME/.okp4d

Создаем сервисный файл

printf "[Unit]
Description=okp4
After=network.target

[Service]
User=$USER
ExecStart=/usr/local/bin/okp4d start
Restart=on-failure
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/okp4d.service

Запускаем сервис и проверяем логи

sudo systemctl daemon-reload && \
sudo systemctl enable okp4d && \
sudo systemctl restart okp4d && \
sudo journalctl -u okp4d -f -o cat

Ждем окончания синхронизации, проверить синхронизации можно командой

okp4d status 2>&1 | jq .SyncInfo

Если вывод показывает false, синхронизация завершена.


Создание кошелька и валидатора

Оглавление

Создаем кошелек

okp4d keys add $MONIKER_OKP4

Сохраняем мнемоник фразу в надежном месте!

Если вы участвовали в предыдущих тестнетах, восстанавливаем кошелек командой и вводим мнемоник фразу

okp4d keys add $MONIKER_OKP4 --recover

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

WALLET_OKP4=$(okp4d keys show $MONIKER_OKP4 -a)
VALOPER_OKP4=$(okp4d keys show $MONIKER_OKP4 --bech val -a)

echo "export WALLET_OKP4="${WALLET_OKP4}"" >> $HOME/.bash_profile
echo "export VALOPER_OKP4="${VALOPER_OKP4}"" >> $HOME/.bash_profile
source $HOME/.bash_profile
echo -e "\nwallet_OKP4 > ${WALLET_OKP4}.\n"
echo -e "\nvaloper_OKP4 > ${VALOPER_OKP4}.\n"

Проверяем свой баланс

okp4d q bank balances $WALLET_OKP4

После завершения синхронизации и пополнении кошелька, создаем валидатора

okp4d tx staking create-validator \
--amount 998000uknow \
--from $WALLET_OKP4 \
--commission-max-change-rate "0.01" \
--commission-max-rate "0.2" \
--commission-rate "0.07" \
--min-self-delegation "998000" \
--pubkey  $(okp4d tendermint show-validator) \
--moniker $MONIKER_OKP4 \
--chain-id $CHAIN_ID_OKP4 \
--identity="" \
--details="" \
--website="" \
--fees=1000uknow \
-y

Проверяем своего валидатора в эксплорере - http://explorer.nodera.org/okp4/staking

Мониторинг можно настроить с использованием Panic! бота по гайду - https://nodera.org/panic_bot


Удаление ноды

Оглавление

Перед удалением ноды убедитесь, что сохранены файлы из каталога /root/.okp4d/config

Для удаления ноды используйте следующие команды

sudo systemctl stop okp4d
sudo systemctl disable okp4d
sudo rm -rf $HOME/.okp4d 
sudo rm -rf $HOME/okp4d 
sudo rm -rf /etc/systemd/system/okp4d.service
sudo rm -rf /usr/local/bin/okp4d
sudo systemctl daemon-reload

Обновление

Оглавление


Полезные команды

Оглавление

Рестарт ноды

sudo systemctl restart okp4d

Проверка логов

sudo journalctl -u okp4d -f -o cat

Узнать адрес валидатора

okp4d keys show $MONIKER_OKP4 --bech val -a
okp4d tx staking delegate okp4valoper14y9j2e7lqy0cr3nd5w73esuqtx07pse37hy5z5 655000000uknow --from tRDM --chain-id $CHAIN_ID_OKP4

Делегировать токены валидатору

okp4d tx staking delegate okp4valoper14y9j2e7lqy0cr3nd5w73esuqtx07pse37hy5z5 1000000uknow --from $WALLET_OKP4 --chain-id $CHAIN_ID_OKP4

Внести изменения в валидатора

okp4d tx staking edit-validator --identity="" --details="" --website="" \
--from $WALLET_OKP4 --chain-id $CHAIN_ID_OKP4 -y
#identity - PGP ключ c keybase.io (устанавливает аватар валидатора)
#details - текстовое описание валидатора

Nodera

Telegram | Discord | Twitter