-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
dd12d6d
commit aee8eea
Showing
1 changed file
with
191 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,191 @@ | ||
#!/bin/bash | ||
|
||
while true | ||
do | ||
|
||
# Logo | ||
|
||
curl -s https://raw.githubusercontent.com/111STAVR111/props/main/logo_1.txt | bash | ||
|
||
# Menu | ||
|
||
PS3='Select an action: ' | ||
options=( | ||
"Install Node" | ||
"Create wallet" | ||
"Check node logs" | ||
"Synchronization via StateSync" | ||
"Synchronization via SnapShot" | ||
"UPDATE" | ||
"Delete Node" | ||
"Exit") | ||
select opt in "${options[@]}" | ||
do | ||
case $opt in | ||
|
||
"Install Node") | ||
echo "*********************" | ||
echo -e "\e[1m\e[35m Lets's begin\e[0m" | ||
echo "*********************" | ||
echo -e "\e[1m\e[32m Enter your Validator_Name:\e[0m" | ||
echo "_|-_|-_|-_|-_|-_|-_|" | ||
read Validator_Name | ||
echo "_|-_|-_|-_|-_|-_|-_|" | ||
echo export Validator_Name=${Validator_Name} >> $HOME/.bash_profile | ||
echo export CHAIN_ID="union-testnet-8" >> $HOME/.bash_profile | ||
source ~/.bash_profile | ||
|
||
echo -e "\e[1m\e[32m1. Updating packages and dependencies--> \e[0m" && sleep 1 | ||
#UPDATE APT | ||
sudo apt update && sudo apt upgrade -y | ||
sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential bsdmainutils git make ncdu htop screen unzip bc fail2ban htop -y | ||
|
||
echo -e " \e[1m\e[32m2. Installing GO--> \e[0m" && sleep 1 | ||
#INSTALL GO | ||
ver="1.20.5" | ||
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 | ||
|
||
echo -e " \e[1m\e[32m3. Downloading and building binaries--> \e[0m" && sleep 1 | ||
#INSTALL | ||
cd $HOME && mkdir -p go/bin/ | ||
wget https://uniont.binary.stavr.tech/union/uniond | ||
chmod +x uniond | ||
mv uniond $HOME/go/bin/ | ||
|
||
uniond init $Validator_Name --chain-id $CHAIN_ID | ||
|
||
wget -O $HOME/.union/config/genesis.json "https://raw.githubusercontent.com/111STAVR111/props/main/Union/genesis.json" | ||
wget -O $HOME/.union/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Union/addrbook.json" | ||
|
||
echo -e " \e[1m\e[32m4. Node optimization and improvement--> \e[0m" && sleep 1 | ||
|
||
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0muno\"/;" ~/.union/config/app.toml | ||
external_address=$(wget -qO- eth0.me) | ||
sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:26656\"/" $HOME/.union/config/config.toml | ||
peers="" | ||
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.union/config/config.toml | ||
seeds="" | ||
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.union/config/config.toml | ||
sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 50/g' $HOME/.union/config/config.toml | ||
sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 10/g' $HOME/.union/config/config.toml | ||
|
||
# pruning | ||
pruning="custom" | ||
pruning_keep_recent="1000" | ||
pruning_keep_every="0" | ||
pruning_interval="10" | ||
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.union/config/app.toml | ||
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.union/config/app.toml | ||
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.union/config/app.toml | ||
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.union/config/app.toml | ||
|
||
|
||
sudo tee /etc/systemd/system/uniond.service > /dev/null <<EOF | ||
[Unit] | ||
Description=uniond | ||
After=network-online.target | ||
[Service] | ||
User=$USER | ||
ExecStart=$(which uniond) start | ||
Restart=on-failure | ||
RestartSec=3 | ||
LimitNOFILE=65535 | ||
[Install] | ||
WantedBy=multi-user.target | ||
EOF | ||
|
||
# start service | ||
sudo systemctl daemon-reload | ||
sudo systemctl enable uniond | ||
sudo systemctl restart uniond | ||
|
||
echo '=============== SETUP FINISHED ===================' | ||
echo -e 'Congratulations: \e[1m\e[32mSUCCESSFUL NODE INSTALLATION\e[0m' | ||
echo -e 'To check logs: \e[1m\e[33mjournalctl -u uniond -f -o cat\e[0m' | ||
echo -e "To check sync status: \e[1m\e[35mcurl -s localhost:26657/status\e[0m" | ||
|
||
break | ||
;; | ||
"Create wallet") | ||
echo "_|-_|-_|-_|-_|-_|-_|" | ||
echo -e " \e[1m\e[35m Your WalletName:\e[0m" | ||
echo "_|-_|-_|-_|-_|-_|-_|" | ||
read Wallet | ||
echo export Wallet=${Wallet} >> $HOME/.bash_profile | ||
source ~/.bash_profile | ||
uniond keys add $Wallet | ||
echo -e " \e[1m\e[32m!!!!!!!!!SAVE!!!!!!!!!!!!!!!!SAVE YOUR MNEMONIC PHRASE!!!!!!!!!SAVE!!!!!!!!!!!!!!!!\e[0m'" | ||
|
||
break | ||
;; | ||
"Synchronization via StateSync") | ||
SNAP_RPC=https://union.rpc.t.stavr.tech:443 | ||
peers="[email protected]:4256" | ||
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.union/config/config.toml | ||
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \ | ||
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)); \ | ||
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash) | ||
|
||
echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH | ||
|
||
sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \ | ||
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \ | ||
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \ | ||
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"| ; \ | ||
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"\"|" $HOME/.union/config/config.toml | ||
uniond tendermint unsafe-reset-all --home /root/.union | ||
wget -O $HOME/.union/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Union/addrbook.json" | ||
systemctl restart uniond && journalctl -u uniond -f -o cat | ||
|
||
|
||
break | ||
;; | ||
"UPDATE") | ||
echo -e " \e[1m\e[32m SOOOON\e[0m" | ||
|
||
|
||
break | ||
;; | ||
"Check node logs") | ||
sudo journalctl -u uniond -f -o cat | ||
|
||
break | ||
;; | ||
"Synchronization via SnapShot") | ||
cd $HOME | ||
apt install lz4 | ||
sudo systemctl stop uniond | ||
cp $HOME/.union/data/priv_validator_state.json $HOME/.union/priv_validator_state.json.backup | ||
rm -rf $HOME/.union/data | ||
curl -o - -L https://union-t.snapshot.stavr.tech/union-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.union --strip-components 2 | ||
curl -o - -L https://union-t.wasm.stavr.tech/wasm-union.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.union --strip-components 2 | ||
mv $HOME/.union/priv_validator_state.json.backup $HOME/.union/data/priv_validator_state.json | ||
wget -O $HOME/.union/config/addrbook.json "https://raw.githubusercontent.com/obajay/nodes-Guides/main/Projects/Union/addrbook.json" | ||
sudo systemctl restart uniond && journalctl -u uniond -f -o cat | ||
|
||
break | ||
;; | ||
"Delete Node") | ||
sudo systemctl stop uniond | ||
sudo systemctl disable uniond | ||
rm /etc/systemd/system/uniond.service | ||
sudo systemctl daemon-reload | ||
cd $HOME | ||
rm -rf .union | ||
rm -rf $(which uniond) | ||
|
||
break | ||
;; | ||
"Exit") | ||
exit | ||
esac | ||
done | ||
done |