October 11
Warden
FROM ubuntu:latest RUN apt update && apt upgrade -y && apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y WORKDIR /app ENV GO_VER="1.22.5" RUN cd $HOME && \ wget "https://golang.org/dl/go$GO_VER.linux-amd64.tar.gz" && \ tar -C /usr/local -xzf "go$GO_VER.linux-amd64.tar.gz" && \ rm "go$GO_VER.linux-amd64.tar.gz" ENV PATH="/usr/local/go/bin:${PATH}" ENV WALLET="wallet" ENV MONIKER="Stake Shark" ENV WARDEN_CHAIN_ID="chiado_10010-1" ENV WARDEN_PORT="18" RUN cd $HOME && \ rm -rf bin && \ mkdir bin && cd bin && \ wget https://github.com/warden-protocol/wardenprotocol/releases/download/v0.5.2/wardend_Linux_x86_64.zip && \ unzip wardend_Linux_x86_64.zip && \ chmod +x wardend && \ mv $HOME/bin/wardend $HOME/go/bin && \ rm -rf wardend_Linux_x86_64.zip ENV SEEDS="8288657cb2ba075f600911685670517d18f54f3b@warden-testnet-seed.itrocket.net:18656" ENV PEERS="b14f35c07c1b2e58c4a1c1727c89a5933739eeea@warden-testnet-peer.itrocket.net:18656,[email protected]:26656,[email protected]:26726,[email protected]:12756,[email protected]:19656,[email protected]:26656,[email protected]:11956,[email protected]:18656,[email protected]:18656,[email protected]:19956,[email protected]:23656" RUN wardend init $MONIKER && \ sed -i -e "s|^node *=.*|node = \"tcp://localhost:${WARDEN_PORT}657\"|" $HOME/.warden/config/client.toml && \ sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.warden/config/config.toml && \ sed -i.bak -e "s%:1317%:${WARDEN_PORT}317%g; s%:8080%:${WARDEN_PORT}080%g; s%:9090%:${WARDEN_PORT}090%g; s%:9091%:${WARDEN_PORT}091%g; s%:8545%:${WARDEN_PORT}545%g; s%:8546%:${WARDEN_PORT}546%g; s%:6065%:${WARDEN_PORT}065%g" $HOME/.warden/config/app.toml && \ sed -i.bak -e "s%:26658%:${WARDEN_PORT}658%g; s%:26657%:${WARDEN_PORT}657%g; s%:6060%:${WARDEN_PORT}060%g; s%:26656%:${WARDEN_PORT}656%g; s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${WARDEN_PORT}656\"%; s%:26660%:${WARDEN_PORT}660%g" $HOME/.warden/config/config.toml && \ sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.warden/config/app.toml && \ sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.warden/config/app.toml && \ sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"50\"/" $HOME/.warden/config/app.toml && \ sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "25000000award"|g' $HOME/.warden/config/app.toml && \ sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.warden/config/config.toml && \ sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.warden/config/config.toml RUN wget -O $HOME/.warden/config/genesis.json https://server-4.itrocket.net/testnet/warden/genesis.json && \ wget -O $HOME/.warden/config/addrbook.json https://server-4.itrocket.net/testnet/warden/addrbook.json ENTRYPOINT ["wardend", "start", "--home", "$HOME/.warden"]
sudo apt update && sudo apt upgrade -y sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y
free -h sudo fallocate -l 40G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
swapon --show
Создаем бэкап и делаем чтобы все работало после перезагрузки
sudo cp /etc/fstab /etc/fstab.back echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo sysctl vm.swappiness=1 sudo nano /etc/sysctl.conf
vm.swappiness=1
# install go, if needed cd $HOME && \ VER="1.22.5" && \ wget "https://golang.org/dl/go$VER.linux-amd64.tar.gz" && \ rm -rf /usr/local/go && \ tar -C /usr/local -xzf "go$VER.linux-amd64.tar.gz" && \ rm "go$VER.linux-amd64.tar.gz"
# set vars echo "export WALLET="wallet"" >> $HOME/.bash_profile echo "export MONIKER="warden-nik"" >> $HOME/.bash_profile echo "export WARDEN_CHAIN_ID="buenavista-1"" >> $HOME/.bash_profile echo "export WARDEN_PORT="18"" >> $HOME/.bash_profile source $HOME/.bash_profile
# download binary cd $HOME rm -rf wardenprotocol git clone --depth 1 --branch v0.3.1 https://github.com/warden-protocol/wardenprotocol/ cd wardenprotocol make install
# config and init app wardend init $MONIKER sed -i -e "s|^node *=.*|node = \"tcp://localhost:${WARDEN_PORT}657\"|" $HOME/.warden/config/client.toml
# download genesis and addrbook wget -O $HOME/.warden/config/genesis.json https://server-4.itrocket.net/testnet/warden/genesis.json wget -O $HOME/.warden/config/addrbook.json https://server-4.itrocket.net/testnet/warden/addrbook.json
# set seeds and peers SEEDS="8288657cb2ba075f600911685670517d18f54f3b@warden-testnet-seed.itrocket.net:18656" PEERS="b14f35c07c1b2e58c4a1c1727c89a5933739eeea@warden-testnet-peer.itrocket.net:18656,[email protected]:56296,[email protected]:27356,[email protected]:26656,[email protected]:18656,[email protected]:26656,[email protected]:16256,[email protected]:21656,[email protected]:26656,[email protected]:26656,[email protected]:656" sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \ -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.warden/config/config.toml
# set custom ports in app.toml sed -i.bak -e "s%:1317%:${WARDEN_PORT}317%g; s%:8080%:${WARDEN_PORT}080%g; s%:9090%:${WARDEN_PORT}090%g; s%:9091%:${WARDEN_PORT}091%g; s%:8545%:${WARDEN_PORT}545%g; s%:8546%:${WARDEN_PORT}546%g; s%:6065%:${WARDEN_PORT}065%g" $HOME/.warden/config/app.toml
# set custom ports in config.toml file sed -i.bak -e "s%:26658%:${WARDEN_PORT}658%g; s%:26657%:${WARDEN_PORT}657%g; s%:6060%:${WARDEN_PORT}060%g; s%:26656%:${WARDEN_PORT}656%g; s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${WARDEN_PORT}656\"%; s%:26660%:${WARDEN_PORT}660%g" $HOME/.warden/config/config.toml
# config pruning sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.warden/config/app.toml sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.warden/config/app.toml sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"50\"/" $HOME/.warden/config/app.toml
# set minimum gas price, enable prometheus and disable indexing sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.0025uward"|g' $HOME/.warden/config/app.toml sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.warden/config/config.toml sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.warden/config/config.toml
# create service file sudo tee /etc/systemd/system/wardend.service > /dev/null <<EOF [Unit] Description=Warden node After=network-online.target [Service] User=$USER WorkingDirectory=$HOME/.warden ExecStart=$(which wardend) start --home $HOME/.warden Restart=on-failure RestartSec=5 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
# reset and download snapshot wardend tendermint unsafe-reset-all --home $HOME/.warden if curl -s --head curl https://server-4.itrocket.net/testnet/warden/warden_2024-10-11_2526009_snap.tar.lz4 | head -n 1 | grep "200" > /dev/null; then curl https://server-4.itrocket.net/testnet/warden/warden_2024-10-11_2526009_snap.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.warden else echo "no snapshot founded" fi
# enable and start service sudo systemctl daemon-reload sudo systemctl enable wardend sudo systemctl restart wardend && sudo journalctl -u wardend -f
local_height=$(wardend status | jq -r .sync_info.latest_block_height); network_height=$(curl -s https://rpc.warden-testnet.unitynodes.com/status | jq -r .result.sync_info.latest_block_height); blocks_left=$((network_height - local_height)); echo "Your node height: $local_height"; echo "Network height: $network_height"; echo "Blocks left: $blocks_left"
cd $HOME rm -rf download mkdir download cd download wget https://github.com/warden-protocol/wardenprotocol/releases/download/v0.4.2/wardend_Linux_x86_64.zip unzip wardend_Linux_x86_64.zip rm wardend_Linux_x86_64.zip chmod +x $HOME/download/wardend sudo mv $HOME/download/wardend $(which wardend) sudo systemctl restart wardend && sudo journalctl -u wardend -f