Setup

Check out Chain - Info.
NetworkChainID
TestnetStablestabletestnet_2201-1
Check out Hardware - Prerequisites.
Node TypeRAMNVMe StorageCoresBandwidth
Full Node+16 GB+1000 GB*8+1000 mbps

Details

XYZ
CPU8 CoresAMD Ryzen 7 / Intel Core i7 or better
RAM+16 GB32 GB for optimal performance
Storage1 TB NVMeWrite throughput > 2000 MiBps
Network1 GbpsDedicated connection preferred
OSUbuntu 24.04Latest LTS recommended

Update

npx
sudo apt update && sudo apt upgrade -y
sudo apt install htop ca-certificates zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev tmux iptables curl nvme-cli git wget make jq libleveldb-dev build-essential pkg-config ncdu tar clang bsdmainutils lsb-release libssl-dev libreadline-dev libffi-dev jq gcc screen file nano btop unzip lz4 -y

GO

npx
cd $HOME
VER="1.23.4"
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/bin

Download Stable

npx
# Download the latest binary for AMD64 architecture
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/v8.1/stabled-0.8.1-testnet-linux-amd64.tar.gz

# Extract the archive
tar -xvzf stabled-0.8.1-testnet-linux-amd64.tar.gz

# Move binary to system path
sudo mv stabled /usr/bin/

# Verify installation
stabled version
npx
# Create cosmovisor directory structure
mkdir -p ~/.stabled/cosmovisor/genesis/bin
mkdir -p ~/.stabled/cosmovisor/upgrades

# Copy current binary to genesis
cp /usr/bin/stabled ~/.stabled/cosmovisor/genesis/bin/

# Create current symlink
ln -s ~/.stabled/cosmovisor/genesis ~/.stabled/cosmovisor/current

# Verify setup
ls -la ~/.stabled/cosmovisor/
cosmovisor run version
npx
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest

Moniker

npx
export MONIKER="your-node-name"
npx
stabled init $MONIKER --chain-id stabletestnet_2201-1

Genesis ;

npx
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/stable_testnet_genesis.zip
unzip stable_testnet_genesis.zip

cp genesis.json ~/.stabled/config/genesis.json

Config ;

npx
sed -i "s/^moniker = \".*\"/moniker = \"$MONIKER\"/" ~/.stabled/config/config.toml

Peers ;

npx
sed -i.bak -e "s/^persistent_peers = \".*\"/persistent_peers = \"5ed0f977a26ccf290e184e364fb04e268ef16430@37.187.147.27:26656,128accd3e8ee379bfdf54560c21345451c7048c7@37.187.147.22:26656\"/" ~/.stabled/config/config.toml

Port :

npx
echo "export A_PORT="59"" >> $HOME/.bash_profile
source $HOME/.bash_profile
npx
sed -i.bak -e "s%:1317%:${A_PORT}317%g;
s%:8080%:${A_PORT}080%g;
s%:9090%:${A_PORT}090%g;
s%:9091%:${A_PORT}091%g;
s%:8545%:${A_PORT}545%g;
s%:8546%:${A_PORT}546%g;
s%:6065%:${A_PORT}065%g" $HOME/.stabled/config/app.toml
npx
sed -i.bak -e "s%:26658%:${A_PORT}658%g;
s%:26657%:${A_PORT}657%g;
s%:6060%:${A_PORT}060%g;
s%:26656%:${A_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${A_PORT}656\"%;
s%:26660%:${A_PORT}660%g" $HOME/.stabled/config/config.toml

Pruning

npx
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 = "10"|' \
  $HOME/.stabled/config/app.toml

EVM / RPC

npx
sed -i '/\[json-rpc\]/,/\[/{s/enable = false/enable = true/}' ~/.stabled/config/app.toml
sed -i '/\[json-rpc\]/,/\[/{s/address = "127.0.0.1:8545"/address = "0.0.0.0:8545"/}' ~/.stabled/config/app.toml
sed -i '/\[json-rpc\]/,/\[/{s/ws-address = "127.0.0.1:8546"/ws-address = "0.0.0.0:8546"/}' ~/.stabled/config/app.toml
sed -i '/\[json-rpc\]/,/\[/{s/allow-unprotected-txs = false/allow-unprotected-txs = true/}' ~/.stabled/config/app.toml

Service ;

npx
export SERVICE_NAME=stabled

# Systemd servis dosyasını oluşturun
sudo tee /etc/systemd/system/${SERVICE_NAME}.service > /dev/null <<EOF
[Unit]
Description=Cosmovisor daemon
After=network-online.target

[Service]
Environment="DAEMON_NAME=stabled"
Environment="DAEMON_HOME=$HOME/.stabled"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=true"
Environment="DAEMON_LOG_BUFFER_SIZE=512"
Environment="UNSAFE_SKIP_BACKUP=true"
User=$USER
ExecStart=$(which cosmovisor) run start --chain-id stabletestnet_2201-1
Restart=always
RestartSec=3
LimitNOFILE=65535
StandardOutput=journal
StandardError=journal
SyslogIdentifier=${SERVICE_NAME}

[Install]
WantedBy=multi-user.target
EOF

Start

npx
sudo systemctl daemon-reload
sudo systemctl enable stabled
sudo systemctl start stabled

Log

npx
sudo journalctl -u stabled -f