April 21, 2022

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

Приветствую всех, сегодня мы расскажем о установке ноды DeFund

20.03.2023 Обновление на версию 0.2.6 и переход на новую сеть orbit-alpha-1.

Здесь как обновить ноду с предыдущей сети, установка с нуля ниже

systemctl stop defund rm -r defund git clone https://github.com/defund-labs/defund cd defund git checkout v0.2.6 make install cd $HOME defundd version

Удаляем данные предыдущей сети

defundd tendermint unsafe-reset-all --home $HOME/.defund

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

SEEDS=f902d7562b7687000334369c491654e176afd26d@170.187.157.19:26656,2b76e96658f5e5a5130bc96d63f016073579b72d@rpc-1.defund.nodes.guru:45656 sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" ~/.defund/config/config.toml

peers="f902d7562b7687000334369c491654e176afd26d@170.187.157.19:26656,f8093378e2e5e8fc313f9285e96e70a11e4b58d5@rpc-2.defund.nodes.guru:45656,878c7b70a38f041d49928dc02418619f85eecbf6@rpc-3.defund.nodes.guru:45656" sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.defund/config/config.toml

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

curl -s https://raw.githubusercontent.com/defund-labs/testnet/main/orbit-alpha-1/genesis.json > ~/.defund/config/genesis.json

Меняем название сети в конфиге и запускаем ноду

defundd config chain-id orbit-alpha-1 systemctl restart defund && journalctl -u defund -f -o cat

Так же не забудьте поменять название сети в баш профиле (nano .bash_profile) и заново подгрузить его (source .bash_profile)

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

Оригинальная инструкция находится тут. Дискорд - https://discord.gg/5D4Mdetf

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

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

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

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

Подробный разбор по установке нод Cosmos можно посмотреть тут.

Если будете выбирать сервер на 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.4" && \ 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

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

rm -r defund git clone https://github.com/defund-labs/defund cd defund git checkout v0.2.6 make install cd $HOME defundd version

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

DEFUND_CHAIN="orbit-alpha-1" DEFUND_MONIKER="YOUR_MONIKER_NAME" DEFUND_WALLET="YOUR_WALLET_NAME"

Прописываем все в баш профиль

echo 'export DEFUND_CHAIN='${DEFUND_CHAIN} >> $HOME/.bash_profile echo 'export DEFUND_MONIKER='${DEFUND_MONIKER} >> $HOME/.bash_profile echo 'export DEFUND_WALLET='${DEFUND_WALLET} >> $HOME/.bash_profile source $HOME/.bash_profile

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

defundd init $DEFUND_MONIKER --chain-id $DEFUND_CHAIN

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

SEEDS=f902d7562b7687000334369c491654e176afd26d@170.187.157.19:26656,2b76e96658f5e5a5130bc96d63f016073579b72d@rpc-1.defund.nodes.guru:45656
sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" ~/.defund/config/config.toml

peers="f902d7562b7687000334369c491654e176afd26d@170.187.157.19:26656,f8093378e2e5e8fc313f9285e96e70a11e4b58d5@rpc-2.defund.nodes.guru:45656,878c7b70a38f041d49928dc02418619f85eecbf6@rpc-3.defund.nodes.guru:45656"
sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.defund/config/config.toml

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

curl -s https://raw.githubusercontent.com/defund-labs/testnet/main/orbit-alpha-1/genesis.json > ~/.defund/config/genesis.json

Настраиваем прунинг (по желанию)

pruning="custom" pruning_keep_recent="1000" pruning_keep_every="0" pruning_interval="50"

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

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

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

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

sed -i.bak 's/minimum-gas-prices =.*/minimum-gas-prices = "0.0025ufetf"/g' $HOME/.defund/config/app.toml

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

sudo tee /etc/systemd/system/defund.service > /dev/null <<EOF [Unit] Description=Defund After=network.target [Service] Type=simple User=$USER ExecStart=$(which defundd) start Restart=on-failure LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF

Перезагружаем системные сервисы и включаем наш

sudo systemctl restart systemd-journald sudo systemctl daemon-reload sudo systemctl enable defund sudo systemctl restart defund

Смотрим логи

journalctl -u defund -f -o cat

Либо смотрим статус и ждем пока синхронизируется

curl -s localhost:26657/status

После того как увидите "catching_up": false нода синхронизировалась

Создаем кошелек !!! Не забываем сохранить мнемоник !!! так же попросит ввести пароль для доступа к кошельку СОХРАНЯЕМ или ЗАПОМИНАЕМ

defundd keys add $DEFUND_WALLET

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

defundd keys add $DEFUND_WALLET --recover

Добавляем адрес кошелька в переменную для нашего удобства (для подтверждения нужен пароль введеный ранее)

DEFUND_ADDR=$(defundd keys show $DEFUND_WALLET -a)

Добавляем переменную в баш:

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

source $HOME/.bash_profile

Проверка баланса:

defundd query bank balances $DEFUND_ADDR

После синхронизации создаем валидатор (в строке --amount цифрами прописываем сумму которую хотим делегировать буковки ufetf оставляем) также вводим, ранее введенный, пароль(не забываем что на кошельке с которого будете делегировать должны быть средства):

defundd tx staking create-validator \
--amount=1000000ufetf \
--pubkey=$(defundd tendermint show-validator) \
--moniker=$DEFUND_MONIKER \
--chain-id=orbit-alpha-1 \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--from=$DEFUND_WALLET \
--fees 500ufetf

Записываем адрес валидатора в переменную (все тот же пароль нужно будет ввести)

DEFUND_VALOPER=$(defundd keys show $DEFUND_WALLET --bech val -a)

Добавляем переменную в баш:

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

Проверяем статус валидатора:

defundd query staking validator $DEFUND_VALOPER

Теперь как делегировать средства на валидатор: ( вместо значений в скобках [ ] вставляем свои данные (скобки тоже убираем), или переменные если задали)

defundd tx staking delegate [VALOPER_ADDRESS] [STAKE_AMOUNT]ufetf --from [your-key-name] --chain-id $DEFUND_CHAIN --fees 500ufetf

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

defundd tx slashing unjail --from [your-key-name] --chain-id $DEFUND_CHAIN --fees 500ufetf

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

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

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