OKP4: Installation Guide
OKP4 Network — OKP4 — это L1 блокчейн, предназначенный для обмена данными с минимальным доверием (trust-minimized).
OKP4 объединяет активы, совместно используемые участниками, в Dataverse: данные, алгоритмы, программное обеспечение, хранилище и вычисления для обеспечения приложений нового поколения
Любой участник получает вознаграждение благодаря этим новым цепочкам создания ценности.
Запуск награждаемого тестнета назначен на 2 ноября. Тогда же и появится форма для участия. Только 150 валидаторов смогут претендовать на вознаграждение.
Список отобранных участников можно посмотреть здесь
Для всех остальных появится возможность присоединиться в 5-й фазе.
Тестнет эксплорер - http://explorer.nodera.org/okp4/staking
Website
Discord
Оглавление
- Подготовка сервера
- Установка ноды
- Создание кошелька и валидатора
- Удаление ноды
- Обновление
- Полезные команды
Подготовка сервера
На данном этапе устанавливаю на сервере 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
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 - текстовое описание валидатора