Stable Full Node β
Stable is the first Stablechain β a dedicated payments Layer 1 where stablecoins like USDT are used natively for gas and settlement.
| Chaind ID | Last Version Tag |
|---|---|
| stable_988-1 | v1.1.2 |
Requirements β
- CPU: 8 Cores
- Memory: 16GB RAM
- Disk: 1 TB of storage (NVME)
- Bandwidth: 100 Mbps (Download / Upload)
π‘ Need a reliable VPS to run this node? β
We recommend Netcup β high performance and affordable.
Use this voucher to get a discount:
36nc1753448678036nc1754247115136nc17542471150
Just a heads up: This is an affiliate link (no extra cost to you). Any support we get through it goes straight back into building free public infra β RPCs, APIs, snapshots, and more to support the community.
Manual Installation β
1. Install Dependencies β
sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y2. Install Go β
cd $HOME
VER="1.22.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"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin3. Download and Extract β
cd $HOME
rm -rf stable-build
mkdir stable-build && cd stable-build
wget https://stable-mainnet-data.s3.us-east-1.amazonaws.com/stabled-latest-linux-amd64.tar.gz
tar -xvzf stabled-latest-linux-amd64.tar.gz
chmod +x stabled
mv stabled /usr/local/bin/
stabled version4. Set Vars β
Configuration:
Generated Code:
Loading...5. Initiliazie the Node β
stabled init $MONIKER --chain-id $STABLE_CHAIN_ID6. Download Genesis and addrbook β
cp ~/.stabled/config/genesis.json ~/.stabled/config/genesis.json.backup
curl -Ls https://vault.astrostake.xyz/mainnet/stable/genesis.json > $HOME/.stabled/config/genesis.json
curl -Ls https://vault.astrostake.xyz/mainnet/stable/addrbook.json > $HOME/.stabled/config/addrbook.json7. Configure Node β
app.toml
CONFIG="$HOME/.stabled/config"
# Enable JSON-RPC
sed -i '/^\[json-rpc\]/,/^\[/{s/^enable *=.*/enable = true/}' $CONFIG/app.toml
# RPC HTTP (8545 β 0.0.0.0:8545)
sed -i '/^\[json-rpc\]/,/^\[/{s/address = ".*/address = "0.0.0.0:8545"/}' $CONFIG/app.toml
# RPC WebSocket (8546 β 0.0.0.0:8546)
sed -i '/^\[json-rpc\]/,/^\[/{s/ws-address = ".*/ws-address = "0.0.0.0:8546"/}' $CONFIG/app.toml
# Allow unprotected txs
sed -i '/^\[json-rpc\]/,/^\[/{s/^allow-unprotected-txs *=.*/allow-unprotected-txs = true/}' $CONFIG/app.tomlSet inter-block-cache to false
sed -i 's/^inter-block-cache *=.*/inter-block-cache = false/' ~/.stabled/config/app.tomlOptional: Set Custom Port
app.toml
sed -i.bak -e "s%:1317%:${STABLE_PORT}317%g;
s%:8080%:${STABLE_PORT}080%g;
s%:9090%:${STABLE_PORT}090%g;
s%:9091%:${STABLE_PORT}091%g;
s%:8545%:${STABLE_PORT}545%g;
s%:8546%:${STABLE_PORT}546%g;
s%:6065%:${STABLE_PORT}065%g" $HOME/.stabled/config/app.tomlconfig.toml
sed -i.bak -e "s%:26658%:${STABLE_PORT}658%g;
s%:26657%:${STABLE_PORT}657%g;
s%:6060%:${STABLE_PORT}060%g;
s%:26656%:${STABLE_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${STABLE_PORT}656\"%;
s%:26660%:${STABLE_PORT}660%g" $HOME/.stabled/config/config.tomlSet peers
SEEDS="17a539fda42863a99755547e1c9b3ec4c38a4439@seed1.stable.xyz:26656"
PEERS="e314478d30ebc066ee21f2ece9a786f8b4b7a3f2@57.129.85.97:26656,b896f6f8ca5a4d1cc40de09407df0c96e76df950@57.129.85.107:26656"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \
-e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.stabled/config/config.tomlOptional: Disable Indexer
Disables the transaction indexer to reduce disk usage and I/O load. Use this if you donβt need transaction search (tx_search) or historical query support.
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $CONFIG/config.tomlConfigure Pruning
Loading...8. Install Snapshot β
cp $HOME/.stabled/data/priv_validator_state.json $HOME/.stabled/priv_validator_state.json.backup
rm -rf $HOME/.stabled/data
curl https://vault.astrostake.xyz/testnet/stable/stable-testnet_snapshot.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.stabled
mv $HOME/.stabled/priv_validator_state.json.backup $HOME/.stabled/data/priv_validator_state.json9. Create Service β
sudo tee /etc/systemd/system/stabled.service > /dev/null <<EOF
[Unit]
Description=Stable Daemon Service
After=network-online.target
[Service]
User=$USER
ExecStart=/usr/local/bin/stabled start --chain-id stable_988-1
Restart=always
RestartSec=3
LimitNOFILE=65535
StandardOutput=journal
StandardError=journal
SyslogIdentifier=stabled
[Install]
WantedBy=multi-user.target
EOF10. Start Service β
sudo systemctl daemon-reload
sudo systemctl enable stabled
sudo systemctl restart stabled
sudo systemctl status stabledUseful Commands β
Check logs
sudo journalctl -u stabled -fo catCheck Sync
curl -sL https://raw.githubusercontent.com/astrostake/scripts/refs/heads/main/cosmos_sync_monitor.sh | bash -s -- --directory $HOME/.stabled --public-rpc https://stable-rpc.linknode.org --interval 5π‘οΈ Security β
To apply a quick security baseline, you can configure your firewall like this:
sudo ufw allow ${STABLE_PORT}656/tcp comment 'STABLE Node p2p Port'π For a more secure and maintainable setup, check out our Essentials Guide, including SSH key setup, Fail2Ban protection, and a full VPS hardening checklist.
Delete Validator β
β οΈ Critical: Backup Your Validator Key!
Make sure to backup priv_validator_key.json and priv_validator_state.json. Do not lose this key β it is required to run your validator.
File location: ~/.stabled/config/priv_validator_key.json ~/.stabled/data/priv_validator_state.json
cd $HOME
sudo systemctl stop stabled
sudo systemctl disable stabled
sudo rm /etc/systemd/system/stabled.service
sudo systemctl daemon-reload
sudo rm -f $(which stabled)
sudo rm -rf $HOME/.stabled
sudo rm -rf $HOME/stable