Installation Node
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.21.7"
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
git clone --branch v0.2.0-beta https://github.com/playstructs/structsd.git
cd structsd
ignite chain build
Initialize Node
Please change <MONIKER>
To your own Moniker.
structsd init <MONIKER> --chain-id structstestnet-88
Download Genesis file and addrbook
- Genesis
wget -O $HOME/.structs/config/genesis.json https://raw.githubusercontent.com/playstructs/structs-networks/88b/genesis.json
- Addrbook
wget -O $HOME/.structs/config/addrbook.json https://raw.githubusercontent.com/vinjan23/Testnet.Guide/main/Structs/addrbook.json
Configure Gas and Peers
peers="605886634736003095e841b03736a214f5111ffe@155.138.142.145:26656"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" ~/.structs/config/config.toml
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 )
### Snapshot
<a href="https://service.vinjan.xyz/testnet/structs/snapshot" 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)'">Snapshot</button>
</a>
### Statesync
<a href="https://service.vinjan.xyz/testnet/structs/statesync" 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)'">Statesync</button>
</a>
### 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>