How to Run a Full Node
This guide walks you through the process of setting up a node on Stable Testnet.
System Requirements
Before proceeding, ensure your system meets the following minimum requirements:
- CPU: 4 cores
- Memory: 8GB RAM
- Storage: 500 GB NVMe/SSD with Write Throughput > 1000 MiBps
- Network: 100 Mbps bandwidth
Step-by-step Guide
Install stabled
For Ubuntu 24.04
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/v7/stabled_testnet-v7_6436c55_ubuntu24.04_amd64.tar.gz
tar -xvzf stabled_testnet-v7_6436c55_ubuntu24.04_amd64.tar.gz
sudo mv stabled /usr/bin
For Ubuntu 22.04
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/v7/stabled_testnet-v7_6436c55_ubuntu22.04_amd64.tar.gz
tar -xvzf stabled_testnet-v7_6436c55_ubuntu22.04_amd64.tar.gz
sudo mv stabled /usr/bin
For Debian
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/v7/stabled_testnet-v7_6436c55_debian12_amd64.tar.gz
tar -xvzf stabled_testnet-v7_6436c55_debian12_amd64.tar.gz
sudo mv stabled /usr/bin
Initialize a New Stable Node
Before running your Stable node, we need to initialize the chain:
# The argument <moniker> is the custom username of your node. It should be human-readable.
export MONIKER=<moniker>
# Stable Testnet has a chain-id of "stabletestnet_2201-1"
stabled init $MONIKER --chain-id stabletestnet_2201-1
Prepare Configuration to Join Testnet
You should now update the default configuration with the Testnet's genesis file and application config file, as well as configure your persistent peers with seed nodes.
Genesis file
# Genesis file
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 files
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/rpc_node_config.zip
unzip rpcnode_config.zip
cp config.toml ~/.stabled/config/config.toml
sed -i "s/^moniker = \".*\"/moniker = \"$MONIKER\"/" ~/.stabled/config/config.toml
- Please update the
~/.stabled/config/app.toml
file accordingly. - For app.toml
json-rpc.enable
, the default value isfalse
. Make sure you change the value totrue
. - Also in app.toml
json-rpc.allow-unprotected-txs
, make sure you change the value totrue
.
You can run the command below to verify the genesis checksum:
sha256sum ~/.stabled/config/genesis.json
# the output should be 66afbb6e57e6faf019b3021de299125cddab61d433f28894db751252f5b8eaf2
Configure systemd Service for stabled
Edit the config at /etc/systemd/system/stabled.service
:
[Unit]
Description=Stable Daemon Service
After=network-online.target
[Service]
SyslogIndentifier=stabled
ExecStart=/bin/bash -c '/usr/bin/stabled start --chain-id stabletestnet_2201-1'
LimitNOFILE=65535
Type=simple
Restart=always
RestartSec=3
User=<USER>
[Install]
WantedBy=multi-user.target
Commands
Starting and restarting the systemd service:
sudo systemctl daemon-reload
sudo systemctl restart stabled
sudo systemctl status stabled
# enable start on system boot
sudo systemctl enable stabled
# To check Logs
journalctl -u stabled -f
If an error occurs in
_C_getpwuid_r
when running as a daemon, check/etc/nsswitch.conf
and verify the order forpasswd
; try prioritizingfiles
.
Node sync via snapshot
Use the instructions below to sync your node with the latest snapshot. Snapshots are updated weekly on Mondays at 00:00 UTC.
Archive Snapshot
sudo apt install -y wget zstd tar
sudo systemctl stop stable.service
mkdir $HOME/snapshot
cd $HOME/snapshot
wget https://stable-snapshot.s3.eu-central-1.amazonaws.com/archive.tar.zst
zstd -d --long=31 --memory=2048MB -c archive.tar.zst | tar -xvf - -C $HOME/.stabled
sudo systemctl start stable.service
sudo systemctl status stable.service
Pruned Snapshot
sudo apt install -y wget lz4 tar
sudo systemctl stop stable.service
mkdir $HOME/snapshot
cd $HOME/snapshot
wget https://stable-snapshot.s3.eu-central-1.amazonaws.com/snapshot.tar.lz4
tar -I lz4 -xvf $HOME/snapshot/snapshot.tar.lz4 -C $HOME/.stabled
sudo systemctl start stable.service
sudo systemctl status stable.service