November 9, 2022

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

Neutron — это сеть блокчейнов, которая привносит смарт-контракты в блокчейны семейства Cosmos с помощью CosmWasm . Neutron работает с сетями по протоколу IBC. Безопасность Neutron (проверка блоков) обеспечивается сетью Cosmos Hub с использованием Interchain Security .

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

sudo apt update && sudo apt upgrade -y

устанавливаем необходимые утилиты:

sudo apt install curl build-essential git wget jq make gcc tmux chrony -y

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

NODENAME=<MONIKER>

сохраняем и импортируем переменные :

echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
if [ ! $WALLET ]; then
	echo "export WALLET=wallet" >> $HOME/.bash_profile
fi
echo "export NEUTRON_CHAIN_ID=quark-1" >> $HOME/.bash_profile
source $HOME/.bash_profile

устанавливаем 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/neutron-org/neutron
cd neutron
git checkout v0.1.0
make install

инициализируем приложение:

neutrond init $NODENAME --chain-id $NEUTRON_CHAIN_ID

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

wget -qO $HOME/.neutrond/config/genesis.json "https://raw.githubusercontent.com/neutron-org/testnets/main/quark/genesis.json"

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

SEEDS="[email protected]:26656,c89b8316f006075ad6ae37349220dd56796b92fa@tenderseed.ccvalidators.com:29001"
PEERS="[email protected]:26656,[email protected]:2480,[email protected]:46656,[email protected]:26656,[email protected]:51656,[email protected]:26656,[email protected]:40006,[email protected]:55256,[email protected]:26656,[email protected]:26656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.neutrond/config/config.toml

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

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

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

sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.001untrn\"/" $HOME/.neutrond/config/app.toml

включаем prometheus:

sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.neutrond/config/config.toml

если нужно отключаем индексацию (indexer = "null"):

cd ~
nano $HOME/.neutrond/config/config.toml


ctrl O, enter, ctrrl X

делаем сброс данных цепи:

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

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

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

[Service]
User=$USER
ExecStart=$(which neutrond) start --home $HOME/.neutrond
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

запускаем сервисный файл:

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

после завершения синхронизации загружаем переменные в систему:

source $HOME/.bash_profile

создаем или восстанавливаем кошелек:

neutrond keys add $WALLET 
neutrond keys add $WALLET --recover

сохраняем информацию , вводим команды по очереди , в 1 и 2 вводим свой пароль:

NEUTRON_WALLET_ADDRESS=$(neutrond keys show $WALLET -a)


NEUTRON_VALOPER_ADDRESS=$(neutrond keys show $WALLET --bech val -a)


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

создаем валидатора:

neutrond tx staking create-validator \
  --amount 1000000untrn \
  --from $WALLET \
  --commission-max-change-rate "0.01" \
  --commission-max-rate "0.2" \
  --commission-rate "0.06" \
  --min-self-delegation "1" \
  --pubkey  $(neutrond tendermint show-validator) \
  --moniker $NODENAME \
  --chain-id $NEUTRON_CHAIN_ID --fees 550untrn
  

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

sudo systemctl stop neutrond
sudo systemctl disable neutrond
sudo rm /etc/systemd/system/neutron* -rf
sudo rm $(which neutrond) -rf
sudo rm $HOME/.neutron* -rf
sudo rm $HOME/neutron -rf
sed -i '/NEUTRON_/d' ~/.bash_profile