Defund: Installation Guide
DeFund — L1 блокчейн, созданный для построения децентрализованных биржевых фондов (dETF) с активами большинства других блокчейнов. Любой пользователь сможет инвестировать в любой понравившийся dETF.
Исходя из токеномики на награды выделено 15% от общего количества монет.
Тестнет эксплорер - http://explorer.nodera.org/defund/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 -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/defund-labs/defund cd defund git checkout v0.1.0 make install
MONIKER_DEFUND=вводим свое имя CHAIN_ID_DEFUND=defund-private-3 PORT_DEFUND=34
Сохраняем переменные, перезагружаем .bash_profile и проверяем значения переменных
echo "export MONIKER_DEFUND="${MONIKER_DEFUND}"" >> $HOME/.bash_profile echo "export CHAIN_ID_DEFUND="${CHAIN_ID_DEFUND}"" >> $HOME/.bash_profile echo "export PORT_DEFUND="${PORT_DEFUND}"" >> $HOME/.bash_profile source $HOME/.bash_profile echo -e "\nmoniker_DEFUND > ${MONIKER_DEFUND}.\n" echo -e "\nchain_id_DEFUND > ${CHAIN_ID_DEFUND}.\n" echo -e "\nport_DEFUND > ${PORT_DEFUND}.\n"
defundd config chain-id $CHAIN_ID_DEFUND defundd config keyring-backend test defundd config node tcp://localhost:${PORT_DEFUND}657 sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0025ufetf\"/" ~/.defund/config/app.toml
defundd init $MONIKER_DEFUND --chain-id $CHAIN_ID_DEFUND
wget -O $HOME/.defund/config/defund-private-3-gensis.tar.gz "https://raw.githubusercontent.com/defund-labs/testnet/main/defund-private-3/defund-private-3-gensis.tar.gz" rm -rf $HOME/.defund/config/genesis.json cd $HOME/.defund/config tar -xzvf defund-private-3-gensis.tar.gz rm -rf defund-private-3-gensis.tar.gz
export SEEDS=85279852bd306c385402185e0125dffeed36bf22@38.146.3.194:26656,09ce2d3fc0fdc9d1e879888e7d72ae0fefef6e3d@65.108.105.48:11256 sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" ~/.defund/config/config.toml
Изменяем порты для возможности дальнейшего подселения других нод проектов экосистемы Космос на один сервер
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${PORT_DEFUND}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${PORT_DEFUND}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${PORT_DEFUND}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${PORT_DEFUND}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${PORT_DEFUND}660\"%" $HOME/.defund/config/config.toml sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${PORT_DEFUND}317\"%; s%^address = \":8080\"%address = \":${PORT_DEFUND}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${PORT_DEFUND}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${PORT_DEFUND}091\"%" $HOME/.defund/config/app.toml
pruning="custom" pruning_keep_recent="100" pruning_keep_every="0" pruning_interval="10" 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
defundd tendermint unsafe-reset-all --home $HOME/.defund
printf "[Unit] Description=Defund Service After=network.target [Service] Type=simple User=$USER WorkingDirectory=$HOME ExecStart=$HOME/go/bin/defundd start Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target" > /etc/systemd/system/defundd.service
Запускаем сервис и проверяем логи
sudo systemctl daemon-reload && \ sudo systemctl enable defundd && \ sudo systemctl restart defundd && \ sudo journalctl -u defundd -f -o cat
Ждем окончания синхронизации, проверить синхронизации можно командой
defundd status 2>&1 | jq .SyncInfo
Если вывод показывает false, синхронизация завершена.
Создание кошелька и валидатора
defundd keys add $MONIKER_DEFUND
Сохраняем мнемоник фразу в надежном месте!
Если вы участвовали в предыдущих тестнетах, восстанавливаем кошелек командой и вводим мнемоник фразу
defundd keys add $MONIKER_DEFUND --recover
Создаем переменную с адресом кошелька и валидатора
WALLET_DEFUND=$(defundd keys show $MONIKER_DEFUND -a) VALOPER_DEFUND=$(defundd keys show $MONIKER_DEFUND --bech val -a) echo "export WALLET_DEFUND="${WALLET_DEFUND}"" >> $HOME/.bash_profile echo "export VALOPER_DEFUND="${VALOPER_DEFUND}"" >> $HOME/.bash_profile source $HOME/.bash_profile echo -e "\nwallet_DEFUND > ${WALLET_DEFUND}.\n" echo -e "\nvaloper_DEFUND > ${VALOPER_DEFUND}.\n"
Для пополнения кошелька тестовыми токенами, вводим свой !faucet <ваш_адрес> в кране дискорда
defundd q bank balances $WALLET_DEFUND
После завершения синхронизации и пополнении кошелька, создаем валидатора
defundd tx staking create-validator \ --amount 19000000ufetf \ --from $WALLET_DEFUND \ --commission-max-change-rate "0.01" \ --commission-max-rate "0.2" \ --commission-rate "0.07" \ --pubkey $(defundd tendermint show-validator) / --moniker $MONIKER_DEFUND \ --chain-id $CHAIN_ID_DEFUND \ --details="" \ --identity="" \ --website="" \ --fees=500ufetf \ --gas=auto \ -y
Проверяем своего валидатора в эксплорере - http://explorer.nodera.org/defund/staking
Мониторинг можно настроить с использованием Panic! бота по гайду - https://nodera.org/panic_bot
Удаление ноды
Перед удалением ноды убедитесь, что сохранены файлы из каталога /root/.defund/config
Для удаления ноды используйте следующие команды
sudo systemctl stop defundd sudo systemctl disable defundd sudo rm -rf $HOME/.defund sudo rm -rf $HOME/defund sudo rm -rf /etc/systemd/system/defund.service sudo rm -rf /usr/local/bin/defundd\ sudo systemctl daemon-reload
Обновление
systemctl stop defundd defundd tendermint unsafe-reset-all --home $HOME/.defund wget -O $HOME/.defund/config/defund-private-3-gensis.tar.gz "https://raw.githubusercontent.com/defund-labs/testnet/main/defund-private-3/defund-private-3-gensis.tar.gz" rm -rf $HOME/.defund/config/genesis.json cd $HOME/.defund/config tar -xzvf defund-private-3-gensis.tar.gz defundd config chain-id defund-private-3 rm -rf defund-private-3-gensis.tar.gz systemctl restart defundd && journalctl -u defundd -f -o cat
Полезные команды
sudo systemctl restart defundd
sudo journalctl -u defundd -f -o cat
defundd keys show $MONIKER_DEFUND --bech val -a
defundd q bank balances $WALLET_DEFUND
defundd tx distribution withdraw-all-rewards \ --from $WALLET_DEFUND --fees 400ufetf --gas auto
Делегировать токены валидатору
defundd tx staking delegate defundvaloper1yhtl50puuj59tzfskk6rxwu0xy74khjcy3sylm 19000000ufetf --from $WALLET_DEFUND --chain-id $CHAIN_ID_DEFUND
defundd tx staking edit-validator --identity="" --details="" --website="" \ --from $WALLET_DEFUND --chain-id $CHAIN_ID_DEFUND -y #identity - PGP ключ c keybase.io (устанавливает аватар валидатора) #details - текстовое описание валидатора