Installation Node

  • Network Type: Testnet
  • Chain-id: structstestnet-102
  • Current Node version: v0.7.0-beta
  • Hardware requirements

    The following requirements are recommended for running :

    • 4 or more physical CPU cores
    • At least 200GB of SSD disk storage
    • At least 8GB of memory (RAM)
    • At least 100mbps network bandwidth

    Install dependencies Required

    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

    Install go

    ver="1.22.5"
    cd $HOME
    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" >> ~/.bash_profile
    source ~/.bash_profile
    go version

    Install Ignite

    curl https://get.ignite.com/cli! | bash
    sudo mv ignite /usr/local/bin/

    Install binary

    cd $HOME
    rm -rf structsd
    git clone https://github.com/playstructs/structsd.git
    cd structsd
    git checkout v0.7.0-beta
    ignite chain build

    Initialize Node

    Please change <MONIKER> To your own Moniker.

    structsd init <MONIKER> --chain-id structstestnet-102

    Download Genesis file and addrbook

    • Genesis
    wget -O $HOME/.structs/config/genesis.json https://raw.githubusercontent.com/playstructs/structs-networks/refs/heads/main/genesis.json
    • Addrbook
    wget -O $HOME/.structs/config/addrbook.json https://raw.githubusercontent.com/playstructs/structs-networks/refs/heads/main/addrbook.json

    Custom Port

    PORT=132
    sed -i -e "s%:26657%:${PORT}57%" $HOME/.structs/config/client.toml
    sed -i -e "s%:26658%:${PORT}58%; s%:26657%:${PORT}57%; s%:6060%:${PORT}60%; s%:26656%:${PORT}56%; s%:26660%:${PORT}61%" $HOME/.structs/config/config.toml
    sed -i -e "s%:1317%:${PORT}17%; s%:9090%:${PORT}90%" $HOME/.structs/config/app.toml
    sed -i -e "s|chain-id = \".*\"|chain-id = \"structstestnet-102\"|g" $HOME/.structs/config/client.toml

    Configure Gas

    sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0ualpha\"/" $HOME/.structs/config/app.toml

    config pruning

    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/.structs/config/app.toml

    create service file and start node

    Create service file

    sudo tee /etc/systemd/system/structsd.service > /dev/null <<EOF
    [Unit]
    Description=structs
    After=network-online.target
    
    [Service]
    User=$USER
    ExecStart=$(which structsd) start
    Restart=on-failure
    RestartSec=3
    LimitNOFILE=65535
    
    [Install]
    WantedBy=multi-user.target
    EOF
    • Enable Service and Start Node
    sudo systemctl daemon-reload
    sudo systemctl enable structsd
    sudo systemctl restart structsd
    sudo journalctl -u structsd -f -o cat
    • Check Sync ( If False than go to create validator )
    
    ### Create Validator
    
    Heads up to the Cheat Sheets to create validator
    
    <a href="https://service.vinjan.xyz/testnet/structs/cheat" target="_blank">
      <button style="background-color: green; border: none; color: white; padding: 15px 32px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 4px 2px; cursor: pointer; border-radius: 10px; box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);" onmouseover="this.style.boxShadow='0 0 0 4px rgba(0,255,0,0.5)'" onmouseout="this.style.boxShadow='0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)'">CLI Cheatsheets</button>
    </a>