May 17

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

О проекте:

"Наша миссия заключается в том, чтобы с нуля переосмыслить опыт работы с многоцепочечными сетями. Легко интегрируя архитектуру, продукт и экономические системы, Initia предлагает целостное решение, которое преобразует работу, ощущения и взаимодействие сетей. "

Требования:

Memory: 16 GB RAM
CPU: 4 cores
Disk: 1 TB SSD
Bandwidth: 1 Gbps

Социальные сети и полезные линки

X
Discord
Site
Validator Onboard Form
Faucet
Initia Docs
Validator Tasks

Установка:

Обновляем сервер

sudo apt update && sudo apt upgrade -y

Устанавливаем зависимости

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

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

ver="1.22.2" && \
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

Клонируем репозиторий, билдим бинарник и перемещаем

cd $HOME
git clone https://github.com/initia-labs/initia
cd initia
git checkout v0.2.14
make install
mv ~/go/bin/initiad  /usr/local/bin/

Задаем переменные, "your_name" - меняем на свои значения

INITIA_CHAIN="initiation-1"
INITIA_MONIKER="your_name"
INITIA_WALLET="your_name"

echo 'export INITIA_CHAIN='${INITIA_CHAIN} >> $HOME/.bash_profile
echo 'export INITIA_MONIKER='${INITIA_MONIKER} >> $HOME/.bash_profile
echo 'export INITIA_WALLET='${INITIA_WALLET} >> $HOME/.bash_profile
source $HOME/.bash_profile

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

initiad init $INITIA_MONIKER --chain-id $INITIA_CHAIN

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

wget -O $HOME/.initia/config/genesis.json "https://initia.s3.ap-southeast-1.amazonaws.com/initiation-1/genesis.json"

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

Опционально
pruning="custom"
pruning_keep_recent="100"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.initia/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.initia/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.initia/config/app.toml

Ставим минимальную цену газа

sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.15uinit,0.01uusdc\"|" $HOME/.initia/config/app.toml

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

peers="5cf0f056fcff9a2a5bad1b3acbae7eec3e425979@158.220.90.188:26656,94faaf091387b85032428bfaad937734e92e50c2@31.220.80.110:26656,66abd758f6971eb8227fc54d11cb56ca1ca280e6@65.109.113.251:13656,146d4b34ac817f7a2ac3e9c5a7207306ceb4e7d7@38.242.152.113:26656,576569a43bb8d5f3d58ff8aa52c6906d576c211e@38.242.221.49:15656,5c2a752c9b1952dbed075c56c600c3a79b58c395@195.3.221.9:26686"
sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.initia/config/config.toml
seeds="ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@testnet-seeds.polkachu.com:25756"
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.initia/config/config.toml

Выключаем индексацию

Опционально
indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.initia/config/config.toml

Чтобы ускорить процесс синхронизации, можете воспользоваться снапшотом или стейт-синхом у Polkachu, позже добавим в гайд линки на свои сервисы

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

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

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

[Install]
WantedBy=multi-user.target
EOF

Запускаем узел и смотрим логи

systemctl daemon-reload && \
systemctl enable initiad && \
systemctl restart initiad && \
journalctl -fu initiad -o cat

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

initiad keys add $INITIA_WALLET

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

INITIA_ADDR=$(initiad keys show $INITIA_WALLET -a)
echo 'export INITIA_ADDR='${INITIA_ADDR} >> $HOME/.bash_profile
source $HOME/.bash_profile
Запрашиваем токены тут

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

initiad tx mstaking create-validator \
 --amount 29000000uinit \
 --from $INITIA_WALLET \
 --commission-max-change-rate "0.05" \
 --commission-max-rate "0.2" \
 --commission-rate "0.1" \
 --pubkey $(initiad tendermint show-validator) \
 --moniker $INITIA_MONIKER \
 --identity "your_identity" \
 --security-contact="your_contact" \
 --chain-id initiation-1 \
 --gas=2000000 \
 --fees=300000uinit

Добавляем адрес валидатора в переменную

INITIA_VALOPER=$(initiad keys show $INITIA_WALLET --bech val -a)
echo 'export INITIA_VALOPER='${INITIA_VALOPER} >> $HOME/.bash_profile
source $HOME/.bash_profile

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

systemctl stop initiad && systemctl disable initiad
rm /etc/systemd/system/initiad.service
rm /usr/local/bin/initiad
rm -rf initia
rm -rf .initia

Установка оракула

Клонируем репозиторий, билдим и перемещаем бинарник

git clone https://github.com/skip-mev/slinky.git
cd slinky
git checkout v0.4.3
make build && \
mv build/slinky /usr/local/bin/

Меняем конфигурацию оракула внутри app.toml

sed -i '/^\[oracle\]/,/^$/ s/^enabled = ".*"/enabled = "true"/' $HOME/.initia/config/app.toml
sed -i 's|^oracle_address = ".*"|oracle_address = "0.0.0.0:8080"|g' $HOME/.initia/config/app.toml
sed -i 's/^client_timeout = ".*"/client_timeout = "500ms"/' $HOME/.initia/config/app.toml
sed -i 's/^metrics_enabled = ".*"/metrics_enabled = "true"/' $HOME/.initia/config/app.toml

Создаем сервис

sudo tee /etc/systemd/system/oracle.service > /dev/null <<EOF
[Unit]
Description=Initia Oracle
After=network.target

[Service]
User=$USER
Type=simple
ExecStart=$(which slinky) --oracle-config-path root/slinky/config/core/oracle.json
Restart=on-failure
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Запускаем

sudo systemctl daemon-reload && \
sudo systemctl enable oracle.service && \
sudo systemctl restart oracle.service && \
sudo journalctl -u oracle.service -f -o cat

Удаление оракула

systemctl stop oracle.service && \
systemctl disable oracle.service
sudo rm /etc/systemd/system/oracle.service
rm -rf $HOME/slinky
sudo rm /usr/local/bin/slinky

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

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

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