Setup

Check out Chain -
Info.| Network | Chain | ID |
|---|---|---|
| Testnet | Stable | stabletestnet_2201-1 |
Check out Hardware -
Prerequisites.| Node Type | RAM | NVMe Storage | Cores | Bandwidth |
|---|---|---|---|---|
| Full Node | +16 GB | +1000 GB* | 8+ | 1000 mbps |
Details
| X | Y | Z |
|---|---|---|
| CPU | 8 Cores | AMD Ryzen 7 / Intel Core i7 or better |
| RAM | +16 GB | 32 GB for optimal performance |
| Storage | 1 TB NVMe | Write throughput > 2000 MiBps |
| Network | 1 Gbps | Dedicated connection preferred |
| OS | Ubuntu 24.04 | Latest 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