Stake with Nodeist

Sge Testnet Services



  • SGE NETWORK
    sge.png



    SGE Network combines the best of DeFi innovation and COSMOS scalability to create a user-driven marketplace for sports betting.​

    Chain Explorer:

    Public Endpoints:
    Bash:
    # API ENDPOINT
    https://api-sge.nodeist.net
    
    # RPC ENDPOINT
    https://rpc-sge.nodeist.net
    
    # GRPC ENDPOINT
    https://grpc-sge.nodeist.net

    Peering:

    addrbook:

    Bash:
    curl -Ls https://ss.nodeist.net/t/sge/addrbook.json > $HOME/.sge/config/addrbook.json

    live-peers:
    Bash:
    peers=""
    sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.sge/config/config.toml



  • Manual Installation
    This section contains a list of commands to install the node in manual mode.

    Server Preparation
    Bash:
    apt update && apt upgrade -y
    
    apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

    Install GO
    Bash:
    ver="1.20.3"
    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

    Node Installation
    Replace Nodeist_Guide in the first line with your moniker name.
    Bash:
    NODE_MONIKER="Nodeist_Guide"
    
    cd || return
    git clone https://github.com/sge-network/sge
    git clone https://github.com/sge-network/networks
    cd sge
    git fetch --tags
    git checkout v1.0.1
    cd sge
    go mod tidy
    make install
    
    sged config chain-id sge-network-3
    sged init "$NODE_MONIKER" --chain-id sge-network-3
    
    curl -s https://ss.nodeist.net/t/sge/genesis.json > $HOME/.sge/config/genesis.json
    curl -s https://ss.nodeist.net/t/sge/addrbook.json > $HOME/.sge/config/addrbook.json
    
    SEEDS=""
    PEERS=""
    sed -i 's|^seeds *=.*|seeds = "'$SEEDS'"|; s|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.sge/config/config.toml
    
    sed -i 's|^pruning *=.*|pruning = "custom"|g' $HOME/.sge/config/app.toml
    sed -i 's|^pruning-keep-recent  *=.*|pruning-keep-recent = "100"|g' $HOME/.sge/config/app.toml
    sed -i 's|^pruning-interval *=.*|pruning-interval = "10"|g' $HOME/.sge/config/app.toml
    sed -i 's|^snapshot-interval *=.*|snapshot-interval = 0|g' $HOME/.sge/config/app.toml
    
    sed -i 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.025usge"|g' $HOME/.sge/config/app.toml
    sed -i 's|^prometheus *=.*|prometheus = true|' $HOME/.sge/config/config.toml
    
    sudo tee /etc/systemd/system/sged.service > /dev/null << EOF
    [Unit]
    Description=Sge Node
    After=network-online.target
    [Service]
    User=$USER
    ExecStart=$(which sged) start
    Restart=on-failure
    RestartSec=10
    LimitNOFILE=10000
    [Install]
    WantedBy=multi-user.target
    EOF
    
    sged tendermint unsafe-reset-all --home $HOME/.sge --keep-addr-book
    
    curl -L https://ss.nodeist.net/t/sge/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.sge --strip-components 2
    
    
    sudo systemctl daemon-reload
    sudo systemctl enable sged
    sudo systemctl start sged
    
    sudo journalctl -fu sged -o cat



  • HEIGHT SIZE TIMESTAMP DOWNLOAD


    Instructions
    Stop the service and reset the data

    Bash:
    sudo systemctl stop sged
    cp $HOME/.sge/data/priv_validator_state.json $HOME/.sge/priv_validator_state.json.backup
    rm -rf $HOME/.sge/data

    Download latest snapshot
    Bash:
    curl -L https://ss.nodeist.net/t/sge/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.sge --strip-components 2
    mv $HOME/.sge/priv_validator_state.json.backup $HOME/.sge/data/priv_validator_state.json

    Restart the service and check the log
    Bash:
    sudo systemctl restart sged && sudo journalctl -fu sged -o cat



  • Instructions
    Stop the service and reset the data

    Bash:
    sudo systemctl stop sged
    cp $HOME/.sge/data/priv_validator_state.json $HOME/.sge/priv_validator_state.json.backup
    sged tendermint unsafe-reset-all --home $HOME/.sge

    Get and configure the state sync information
    Bash:
    SNAP_RPC="https://rpc-sge.nodeist.net:443"
    LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
    BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000)); \
    TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.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\"|" $HOME/.sge/config/config.toml
    
    mv $HOME/.sge/priv_validator_state.json.backup $HOME/.sge/data/priv_validator_state.json

    Restart the service and check the log
    Bash:
    sudo systemctl restart sged && sudo journalctl -fu sged -o cat


  • 🔑 Key management

    Add new key

    Bash:
    sged keys add wallet

    Recover existing key
    Bash:
    sged keys add wallet --recover

    List all keys
    Bash:
    sged keys list

    Delete key
    Bash:
    sged keys delete wallet

    Export key to the file
    Bash:
    sged keys export wallet

    Import key from the file
    Bash:
    sged keys import wallet wallet.backup

    Query wallet balance
    Bash:
    sged q bank balances $(sged keys show wallet -a)

    👷 Validator management
    - Please make sure you have adjusted moniker, identity, details and website to match your values.

    Create new validator
    Bash:
    sged tx staking create-validator \
    --amount 1000000usge \
    --pubkey $(sged tendermint show-validator) \
    --moniker "YOUR_MONIKER_NAME" \
    --identity "YOUR_KEYBASE_ID" \
    --details "YOUR_DETAILS" \
    --website "YOUR_WEBSITE_URL" \
    --chain-id sge-network-3 \
    --commission-rate 0.05 \
    --commission-max-rate 0.20 \
    --commission-max-change-rate 0.01 \
    --min-self-delegation 1 \
    --from wallet \
    --gas-adjustment 1.4 \
    --gas auto \
    --gas-prices 0.025usge \
    -y

    Edit existing validator
    Bash:
    sged tx staking edit-validator \
    --new-moniker "YOUR_MONIKER_NAME" \
    --identity "YOUR_KEYBASE_ID" \
    --details "YOUR_DETAILS" \
    --website "YOUR_WEBSITE_URL" \
    --chain-id sge-network-3 \
    --commission-rate 0.05 \
    --from wallet \
    --gas-adjustment 1.4 \
    --gas auto \
    --gas-prices 0.025usge \
    -y

    Unjail validator
    Bash:
    sged tx slashing unjail --from wallet --chain-id sge-network-3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025usge -y

    Jail reason
    Bash:
    sged query slashing signing-info $(sged tendermint show-validator)

    List all active validators
    Bash:
    sged q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

    List all inactive validators
    Bash:
    sged q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

    View validator details
    Bash:
    sged q staking validator $(sged keys show wallet --bech val -a)

    💲 Token management

    Withdraw rewards from all validators

    Bash:
    sged tx distribution withdraw-all-rewards --from wallet --chain-id sge-network-3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025usge -y

    Withdraw commission and rewards from your validator
    Bash:
    sged tx distribution withdraw-rewards $(sged keys show wallet --bech val -a) --commission --from wallet --chain-id sge-network-3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025usge -y

    Delegate tokens to yourself
    Bash:
    sged tx staking delegate $(sged keys show wallet --bech val -a) 1000000usge --from wallet --chain-id sge-network-3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025usge -y

    Delegate tokens to validator
    Bash:
    sged tx staking delegate <TO_VALOPER_ADDRESS> 1000000usge --from wallet --chain-id sge-network-3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025usge -y

    Redelegate tokens to another validator
    Bash:
    sged tx staking redelegate $(sged keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000usge --from wallet --chain-id sge-network-3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025usge -y

    Unbond tokens from your validator
    Bash:
    sged tx staking unbond $(sged keys show wallet --bech val -a) 1000000usge --from wallet --chain-id sge-network-3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025usge -y

    Send tokens to the wallet
    Bash:
    sged tx bank send wallet <TO_WALLET_ADDRESS> 1000000usge --from wallet --chain-id sge-network-3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025usge -y

    🗳 Governance

    List all proposals

    Bash:
    sged query gov proposals

    View proposal by id
    Bash:
    sged query gov proposal 1

    Vote 'Yes'
    Bash:
    sged tx gov vote 1 yes --from wallet --chain-id sge-network-3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025usge -y

    Vote 'No'
    Bash:
    sged tx gov vote 1 no --from wallet --chain-id sge-network-3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025usge -y

    Vote 'Abstain'
    Bash:
    sged tx gov vote 1 abstain --from wallet --chain-id sge-network-3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025usge -y

    Vote 'NoWithVeto'
    Bash:
    sged tx gov vote 1 NoWithVeto --from wallet --chain-id sge-network-3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025usge -y

    ⚡️ Utility

    Update Indexer

    Bash:
    sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.sge/config/config.toml

    Update pruning
    Bash:
    sed -i \
      -e 's|^pruning *=.*|pruning = "custom"|' \
      -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
      -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
      -e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
      $HOME/.sge/config/app.toml

    🚨 Maintenance

    Get validator info

    Bash:
    sged status 2>&1 | jq .ValidatorInfo

    Get sync info
    Bash:
    sged status 2>&1 | jq .SyncInfo

    Get node peer
    Bash:
    echo $(sged tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.sge/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')

    Check if validator key is correct
    Bash:
    [[ $(sged q staking validator $(sged keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(sged status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"

    Get live peers
    Bash:
    curl -sS http://localhost:27657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'

    Set minimum gas price
    Bash:
    sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025usge\"/" $HOME/.sge/config/app.toml

    Enable prometheus
    Bash:
    sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.sge/config/config.toml

    Reset chain data
    Bash:
    sged tendermint unsafe-reset-all --home $HOME/.sge --keep-addr-book

    Remove node
    - Please, before proceeding with the next step! All chain data will be lost! Make sure you have backed up your priv_validator_key.json!


    Bash:
    cd $HOME
    sudo systemctl stop sged
    sudo systemctl disable sged
    sudo rm /etc/systemd/system/sged.service
    sudo systemctl daemon-reload
    rm -f $(which sged)
    rm -rf $HOME/.sge
    rm -rf $HOME/sged

    ⚙️ Service Management

    Reload service configuration

    Bash:
    sudo systemctl daemon-reload

    Enable service
    Bash:
    sudo systemctl enable sged

    Disable service
    Bash:
    sudo systemctl disable sged

    Start service
    Bash:
    sudo systemctl start sged

    Stop service
    Bash:
    sudo systemctl stop sged

    Restart service
    Bash:
    sudo systemctl restart sged

    Check service status
    Bash:
    sudo systemctl status sged

    Check service logs
    Bash:
    sudo journalctl -u sged -f --no-hostname -o cat

 
Last edited:
Up