January 23, 2023
DeFund
Discord | Twitter | Github | Explorer
Сервер
Мінімальні рекомендовані апаратні вимоги для запуску валідатора:
Нода
# підготовка сервера sudo apt update && sudo apt upgrade -y sudo apt install curl tar wget clang pkg-config libssl-dev jq build essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y
# ставимо Go (однією командою) ver="1.19" && \ 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
# задаємо перемінні #придумуємо назву ноди та міняємо замість <your_moniker> DEFUND_MONIKER=<your_node_name>
# зберігаємо перемінні в bash echo 'export DEFUND_MONIKER='$DEFUND_MONIKER >> $HOME/.bash_profile echo "export DEFUND_CHAIN_ID=defund-private-4" >> $HOME/.bash_profile echo "export DEFUND_PORT=13" >> $HOME/.bash_profile source $HOME/.bash_profile
# качаємо бінарні файли cd $HOME && rm -rf defund git clone https://github.com/defund-labs/defund.git cd defund git checkout v0.2.2 make install defundd version #defundd version #версия: v0.2.2
# ініціалізовуємо ноду defundd init $DEFUND_MONIKER --chain-id $DEFUND_CHAIN_ID
# качаємо генезис cd $HOME/.defund/config curl -s https://raw.githubusercontent.com/defund-labs/testnet/main/defund-private-4/genesis.json > ~/.defund/config/genesis.json sha256sum $HOME/.defund/config/genesis.json # звіряємо рядок нижче з тим що в терміналі # db13a33fbb4048c8701294de79a42a2b5dff599d653c0ee110390783c833208b
#config.toml
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${DEFUND_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${DEFUND_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${DEFUND_PORT}061\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${DEFUND_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${DEFUND_PORT}660\"%" $HOME/.defund/config/config.toml
# app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${DEFUND_PORT}90\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${DEFUND_PORT}91\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1${DEFUND_PORT}7\"%" $HOME/.defund/config/app.toml
# client.toml
sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:${DEFUND_PORT}657\"%" $HOME/.defund/config/client.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:${DEFUND_PORT}656\"/" $HOME/.defund/config/config.tomldefundd config chain-id $DEFUND_CHAIN_ID defundd config keyring-backend test # налаштовуємо мінімальну ціну за газ, додаємо сіди/піри sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0ufetf\"/;" ~/.defund/config/app.toml sed -i -e "s/^filter_peers *=.*/filter_peers = \"true\"/" $HOME/.defund/config/config.toml external_address=$(wget -qO- eth0.me) sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:26656\"/" $HOME/.defund/config/config.toml peers="d837b7f78c03899d8964351fb95c78e84128dff6@174.83.6.129:30791,f03f3a18bae28f2099648b1c8b1eadf3323cf741@162.55.211.136:26656,f8fa20444c3c56a2d3b4fdc57b3fd059f7ae3127@148.251.43.226:56656,70a1f41dea262730e7ab027bcf8bd2616160a9a9@142.132.202.86:17000,e47e5e7ae537147a23995117ea8b2d4c2a408dcb@172.104.159.69:45656,74e6425e7ec76e6eaef92643b6181c42d5b8a3b8@defund-testnet-seed.itrocket.net:443" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.defund/config/config.toml seeds="" sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.defund/config/config.toml sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 100/g' $HOME/.defund/config/config.toml sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 100/g' $HOME/.defund/config/config.toml
# cтворюємо сервісний файл (Одна команда) sudo tee /etc/systemd/system/defundd.service > /dev/null <<EOF [Unit] Description=defund After=network-online.target [Service] User=$USER ExecStart=$(which defundd) start Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
# запускаємо ноду sudo systemctl daemon-reload sudo systemctl enable defundd sudo systemctl restart defundd && sudo journalctl -u defundd -f -o cat
# подивитись логи sudo journalctl -u defundd -f -o cat # Вихід з логів через ctrl+c
# перевірити статус синхронізації defundd status 2>&1 | jq .SyncInfo # "catching_up": false - означає що нода синхронізувалась (чекаємо false)
# створюємо/відновлюємо гаманець defundd keys add <walletname> defundd keys add <walletname> --recover
# зберігаємо адресу # Замініть <your_address> на адресу вашого гаманця DEFUND_ADDRESS=<your_address> echo "export DEFUND_ADDRESS=$DEFUND_ADDRESS>" >> $HOME/.bash_profile source $HOME/.bash_profile
# перевіряємо баланс defundd q bank balances $DEFUND_ADDRESS
Валідатор
defundd tx staking create-validator \ --amount 1000000ufetf \ --from $DEFUND_CHAIN_ID \ --commission-max-change-rate "0.1" \ --commission-max-rate "0.2" \ --commission-rate "0.1" \ --min-self-delegation "1" \ --pubkey $(defundd tendermint show-validator) \ --moniker $DEFUND_MONIKER \ --chain-id defund-private-4 \ --identity="" \ --details="" \ --website="" -y
# pедагувати валідатора # Замінити <identity> на ваш ключ з keybase nibid tx staking edit-validator \ --new-moniker=$DEFUND_MONIKER \ --website="Посилання на свій сайт чи сторінку в інтернеті" \ --identity=<identity> \ --details="Кілька слів про себе" \ --chain-id=$DEFUND_CHAIN_ID \ --fees 5000unibi \ --from=wallet
# записуємо valoper_address в bash # Замінюємо <your_valoper_address> на адресу валідатора, починається на nibivaloper... DEFUND_VALOPER=<your_valoper_address> echo "export DEFUND_VALOPER=$DEFUND_VALOPER" >> $HOME/.bash_profile source $HOME/.bash_profile
Зберігаємо priv_validator_key.json що знаходиться за адресою /root/.defund/config/