└── tgrade └── README.md /tgrade/README.md: -------------------------------------------------------------------------------- 1 | # Tgrade mainnet validator's guide 2 | 3 | ![Tgrade Guide by AnyValid](https://i.imgur.com/gGvPN5q.png) 4 | ____ 5 | [Project Discord](https://discord.gg/VgFn3VQS42) | [Tgrade Dapp](https://dapp.tgrade.finance/) | [Tgrade Constisution on Russian](https://github.com/Ocean-Blue-Foundation/resources.tgrade.finance/blob/master/Tgrade_Constitution_rus.pdf) | [Tgrade Constisution on English](https://github.com/Ocean-Blue-Foundation/resources.tgrade.finance/blob/master/Tgrade%20Constitution.pdf) 6 | ____ 7 | Update and install necessary packages: 8 | ```bash 9 | sudo apt update && sudo apt upgrade --yes && \ 10 | sudo apt install git build-essential ufw curl jq snapd screen ncdu nano fuse ufw --yes && 11 | ``` 12 | Install go: 13 | ```bash 14 | sudo snap install go --classic && \ 15 | echo 'export GOPATH="$HOME/go"' >> ~/.profile && \ 16 | echo 'export GOBIN="$GOPATH/bin"' >> ~/.profile && \ 17 | echo 'export PATH="$GOBIN:$PATH"' >> ~/.profile && \ 18 | source ~/.profile && \ 19 | go version 20 | ``` 21 | Clone repository and compile last version of binary (you can find releases here: [click](https://github.com/confio/tgrade/tags)): 22 | ```bash 23 | git clone https://github.com/confio/tgrade 24 | cd tgrade 25 | git checkout v$(curl -s https://tgrade-rpc.anyvalid.com/abci_info | jq -r .result[].version) 26 | make install 27 | ``` 28 | Init your keys and download genesis file: 29 | ```bash 30 | tgrade init --chain-id tgrade-mainnet-1 31 | tgrade keys add 32 | wget https://raw.githubusercontent.com/confio/tgrade-networks/main/mainnet-1/config/genesis.json -O /root/.tgrade/config/genesis.json 33 | ``` 34 | Set up gas_price / persistent_peers / pruning: 35 | ```bash 36 | sed -i "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.05utgd\"/;" $HOME/.tgrade/config/app.toml 37 | sed -E -i 's/persistent_peers = \".*\"/persistent_peers = \"0a63421f67d02e7fb823ea6d6ceb8acf758df24d@142.132.226.137:26656,4a319eead699418e974e8eed47c2de6332c3f825@167.235.255.9:26656,6918efd409684d64694cac485dbcc27dfeea4f38@49.12.240.203:26656\"/' $HOME/.tgrade/config/config.toml 38 | pruning="custom" 39 | pruning_keep_recent="100" 40 | pruning_keep_every="0" 41 | pruning_interval="10" 42 | sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.tgrade/config/app.toml 43 | sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.tgrade/config/app.toml 44 | sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.tgrade/config/app.toml 45 | sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.tgrade/config/app.toml 46 | ``` 47 | Set up Tgrade service 48 | ```bash 49 | sudo tee </dev/null /etc/systemd/system/tgrade.service 50 | [Unit] 51 | Description=Tgrade daemon 52 | After=network-online.target 53 | 54 | [Service] 55 | User=$USER 56 | ExecStart=$HOME/go/bin/tgrade start 57 | Restart=on-failure 58 | RestartSec=3 59 | LimitNOFILE=100000 60 | 61 | [Install] 62 | WantedBy=multi-user.target 63 | EOF 64 | ``` 65 | Enable Tgrade daemon: 66 | ```bash 67 | sudo systemctl enable tgrade 68 | sudo systemctl daemon-reload 69 | ``` 70 | ____ 71 | ## If you want to synchronize your node from the 0 block: 72 | Start Tgrade service and watch logs: 73 | ```bash 74 | sudo systemctl restart tgrade 75 | sudo journalctl -u tgrade -f -o cat 76 | ``` 77 | ____ 78 | 79 | ## Or you can quickly synchronize your node through State Sync: 80 | Stop existing service and reset database: 81 | ```bash 82 | sudo systemctl stop tgrade 83 | tgrade tendermint unsafe-reset-all 84 | ``` 85 | Fill variables with data for State Sync: 86 | ```bash 87 | RPC="https://tgrade-rpc.anyvalid.com:443" 88 | RECENT_HEIGHT=$(curl -s $RPC/block | jq -r .result.block.header.height) 89 | TRUST_HEIGHT=$((RECENT_HEIGHT - 500)) 90 | TRUST_HASH=$(curl -s "$RPC/block?height=$TRUST_HEIGHT" | jq -r .result.block_id.hash) 91 | PEER="763baaaee37c63de0a517b9f12f2c1f153db6fab@65.109.18.170:26656" 92 | ``` 93 | Add variable values to config.toml: 94 | ```bash 95 | sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \ 96 | s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$RPC,$RPC\"| ; \ 97 | s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$TRUST_HEIGHT| ; \ 98 | s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.tgrade/config/config.toml 99 | sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEER\"/" $HOME/.tgrade/config/config.toml 100 | ``` 101 | Start service and open journal: 102 | ```bash 103 | sudo systemctl restart tgrade 104 | sudo journalctl -u tgrade -f -o cat 105 | ``` 106 | ____ 107 | *Wait for sync...* 108 | ____ 109 | Create validator (Do not forget to specify amount (1tgd = 1000000utgd) / keyname / moniker): 110 | ```bash 111 | tgrade tx poe create-validator \ 112 | --amount 1000000utgd \ 113 | --vesting-amount 0utgd \ 114 | --from \ 115 | --pubkey $(sudo tgrade tendermint show-validator) \ 116 | --chain-id tgrade-mainnet-1 \ 117 | --moniker "" \ 118 | --fees 200000utgd \ 119 | --gas auto \ 120 | --gas-adjustment 1.4 121 | ``` 122 | After creating your own validator you can delegate more liquid and/or vesting tokens to your valiator on [Tgrade dapp](https://dapp.tgrade.finance/validators) or via command: 123 | ```bash 124 | tgrade tx poe self-delegate utgd utgd \ 125 | --from \ 126 | --gas auto \ 127 | --gas-adjustment 1.4 \ 128 | --chain-id tgrade-mainnet-1 \ 129 | --fees 200000utgd 130 | ``` 131 | --------------------------------------------------------------------------------