October 31, 2022

Установка ноды OKP4

Здравствуйте сегодня мы расскажем об установке ноды OKP4

Оригинальная инструкция находится тут.

OKP4 — это domain-specific layer-1, предназначенный для обмена данными с минимальным доверием. Блокчейн объединяет активы, совместно используемые участниками, в Dataverse: данные, алгоритмы, программное обеспечение, хранилище и вычисления, чтобы обеспечить приложения нового поколения. Любой участник получает вознаграждение благодаря этим новым цепочкам создания стоимости., более подробно можно прочитать на официальном сайте.

Рекомендуемые требования для сервера

8GB RAM 200GB+ of disk space 4 Cores (modern CPU's)

Краткую инструкцию по аренде сервера можно посмотреть тут

В связи с последней политикой Contabo, если будете переезжать на Hetzner можете воспользоваться нашей ссылкой, будем благодарны.

Как всегда обновляем наш сервер

sudo apt update && sudo apt upgrade -y

Устанавливаем доп. пакеты

sudo apt install make clang pkg-config libssl-dev build-essential git gcc chrony curl jq ncdu bsdmainutils htop net-tools lsof fail2ban wget -y

Устанавливаем go и проверяем версию

ver="1.19.1" && \ wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" && \ sudo rm -rf /usr/local/go && \ sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" && \ rm "go$ver.linux-amd64.tar.gz" && \ echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ go version

После этого скачиваем и устанавливаем бинарник

git clone https://github.com/okp4/okp4d.git cd okp4d make install cd $HOME

Задаем переменные (CHAIN оставляем без изменений, в остальные вписываем свои данные)

OKP4_MONIKER="your_name" OKP4_CHAIN="okp4-nemeton-1" OKP4_WALLET="your_name"

Добавляем все в баш профиль

echo 'export OKP4_MONIKER='${OKP4_MONIKER} >> $HOME/.bash_profile echo 'export OKP4_CHAIN='${OKP4_CHAIN} >> $HOME/.bash_profile echo 'export OKP4_WALLET='${OKP4_WALLET} >> $HOME/.bash_profile source $HOME/.bash_profile

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

okp4d init $OKP4_MONIKER --chain-id $OKP4_CHAIN

Прописываем в конфиг имя сети

okp4d config chain-id $OKP4_CHAIN

Скачиваем файл генезис

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

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

pruning="custom" pruning_keep_recent="100" pruning_keep_every="0" pruning_interval="50" 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

Настраиваем минимальную цену за газ

sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025uknow\"/" $HOME/.okp4d/config/app.toml

Выключаем индексер (по желанию)

indexer="null" sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.okp4d/config/config.toml

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

PEERS=9c462b1c0ba63115bd70c3bd4f2935fcb93721d0@65.21.170.3:42656,a4a96019d2fbc1b5df07940cd971585311166acd@65.108.206.118:61356,ee4c5d9a8ac7401f996ef9c4d79b8abda9505400@144.76.97.251:12656,2e85c1d08cfca6982c74ef2b67251aa459dd9b2f@65.109.85.170:43656,264256d32511c512a0a9d4098310a057c9999fd1@okp4.sergo.dev:12233,4ea26ce893d8f4f89a7b49b9bd77e0fbd914e029@65.109.88.162:36656,8d8fdad759361a57121903632adbd66ad072b1ab@okp4-testnet.nodejumper.io:29656,e3c602b146121c88d350bd7e0f6ce8977e1aacff@161.97.122.216:26656,3c805c2dead7b7a3a1d3ba2399d4d62153322413@65.108.2.41:36656,9d1482bc31fb4578a5c7f7f65c4e0aaf2dfc2336@213.239.215.77:34656,a7f1dcf7441761b0e0e1f8c6fdc79d3904c22c01@[2a02:c206:2093:4875::1]:36656,a7f1dcf7441761b0e0e1f8c6fdc79d3904c22c01@38.242.150.63:36656,99f6675049e22a0216af0e2447e7a4c5021874cd@142.132.132.200:28656,9392c27a9a561c31e7a920dc6f577d663c473ef8@154.12.225.88:26656

sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.okp4d/config/config.toml

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

sudo tee /etc/systemd/system/okp4d.service > /dev/null <<EOF [Unit] Description=okp4Node After=network-online.target

[Service] User=$USER ExecStart=$(which okp4d) start Restart=on-failure RestartSec=3 LimitNOFILE=65535

[Install] WantedBy=multi-user.target EOF

И запускаем сервис

sudo systemctl daemon-reload && sudo systemctl enable okp4d && sudo systemctl restart okp4d

Смотрим логи и ждем когда нода начнет синхронизироваться

sudo journalctl -u okp4d -f -o cat

Или смотрим статус синхронизации (когда "catching_up": false то нода синхронизирована)

curl localhost:26657/status

На блоке 1 033 598 необходимо обновиться на версию 4.0.0 (посмотреть высоту до блока можно тут)

cd $HOME rm -r okp4d/ git clone https://github.com/okp4/okp4d.git cd okp4d git checkout v4.0.0 make install cd $HOME

После синхронизации создаем кошелек (не забываем сохранить мнемоник)

okp4d keys add $OKP4_WALLET

Если кошелек уже есть то восстанавливаем с помощью мнемоника

okp4d keys add $OKP4_WALLET --recover

Добавляем переменную с адресом кошелька

OKP4_ADDR=$(okp4d keys show $OKP4_WALLET -a)

Добавляем переменную в баш профиль

echo 'export OKP4_ADDR='${OKP4_ADDR} >> $HOME/.bash_profile
source $HOME/.bash_profile

Теперь нам необходимо получить средства на кошелек. Для этого переходим по ссылке и запрашиваем токены на баланс кошелька

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

okp4d query bank balances $OKP4_ADDR

Если средства успешно поступили, то создаем валидатора (сумму указывайте свою, сколько хотите делегировать с кошелька, указывайте чуть меньше что бы хватило на комиссию)

okp4d tx staking create-validator \ --amount 1000000uknow \ --commission-max-change-rate "0.1" \ --commission-max-rate "0.2" \ --commission-rate "0.1" \ --min-self-delegation "1" \ --pubkey $(okp4d tendermint show-validator) \ --moniker $OKP4_MONIKER \ --chain-id $OKP4_CHAIN \ --from $OKP4_WALLET \ --gas-prices 0.025uknow

Задаем переменную с адресом валидатора

OKP4_VALOPER=$(okp4d keys show $OKP4_WALLET --bech val -a)

И добавляем ее в баш профиль

echo 'export OKP4_VALOPER='${OKP4_VALOPER} >> $HOME/.bash_profile source $HOME/.bash_profile

Проверка статуса валидатора

okp4d query staking validator $OKP4_VALOPER

Делегация средств с кошелька на валидатора (сумму вводите свою)

okp4d tx staking delegate $OKP4_VALOPER 90000uknow --from $OKP4_ADDR --chain-id $OKP4_CHAIN --fees=5000uknow

Ну и если вдруг ваша нода попала в тюрьму, то выход

okp4d tx slashing unjail --from $OKP4_WALLET --chain-id $OKP4_CHAIN

Ну а если вы решили удалить ноду то введите следующие команды

sudo systemctl stop okp4d sudo systemctl disable okp4d cd $HOME rm /etc/systemd/system/okp4d rm /usr/local/bin/okp4d rm -r okp4d/ rm -r .okp4d/

Большое спасибо, за внимание и уделенное время

Наш телеграмм канал по нодам — https://t.me/mmsnodes
Наш телеграмм чат по нодам - https://t.me/mmsnodeschat
Наш телеграмм канал по экосистеме Cosmos - https://t.me/cosmochannel_mms

С уважением, MMS_Team