Nibiru Troubleshooting Guide
This guide helps you diagnose and resolve common issues with your Nibiru node.
Quick Diagnostics
Before diving into specific issues, run this diagnostic script:
quick-diagnostics.sh
#!/bin/bash
echo "=== Nibiru Node Diagnostics ==="
echo ""
# Check if service is running
echo "1. Service Status:"
systemctl is-active nibid && echo "✅ Service is running" || echo "❌ Service is not running"
echo ""
# Check disk space
echo "2. Disk Space:"
df -h | grep -E "^/dev|Filesystem"
echo ""
# Check memory
echo "3. Memory Usage:"
free -h
echo ""
# Check peers
echo "4. Connected Peers:"
curl -s localhost:26657/net_info | jq .result.n_peers 2>/dev/null || echo "❌ Cannot connect to RPC"
echo ""
# Check sync status
echo "5. Sync Status:"
curl -s localhost:26657/status | jq .result.sync_info.catching_up 2>/dev/null || echo "❌ Cannot get sync status"
echo ""
# Check recent errors
echo "6. Recent Errors (last 20):"
journalctl -u nibid --no-pager | grep -i error | tail -20
Common Issues and Solutions
1. Node Won't Start
- Port Already in Use
- Permission Denied
- Missing Configuration
Symptoms:
- Error:
listen tcp :26656: bind: address already in use
Solution:
# Find process using the port
sudo lsof -i :26656
# Kill the process (replace PID with actual process ID)
sudo kill -9 PID
# Or change the port in config
sed -i 's/:26656/:26756/g' ~/.nibid/config/config.toml
Symptoms:
- Error:
permission denied
- Cannot write to data directory
Solution:
# Fix ownership
sudo chown -R $USER:$USER ~/.nibid
# Fix permissions
chmod -R 755 ~/.nibid
# If using systemd, ensure correct user in service file
sudo sed -i "s/User=.*/User=$USER/" /etc/systemd/system/nibid.service
sudo systemctl daemon-reload
Symptoms:
- Error:
config file not found
no such file or directory
Solution:
# Reinitialize the node
nibid init my-node --chain-id nibiru-itn-1
# Restore config from backup if available
cp ~/.nibid/config/config.toml.backup ~/.nibid/config/config.toml
# Or download default config
wget -O ~/.nibid/config/genesis.json https://networks.nibiru.fi/nibiru-itn-1/genesis
wget -O ~/.nibid/config/addrbook.json https://snapshots.nibiru.fi/addrbook.json
2. Sync Issues
- Stuck Syncing
- Very Slow Sync
Symptoms:
- Block height not increasing
catching_up: true
for extended period
Solution:
# 1. Check if you have peers
curl -s localhost:26657/net_info | jq .result.n_peers
# 2. If no peers, add seeds/peers
SEEDS="a431d3d1b451629a21799963d9c64c17726b8c96@seed-1.nibiru.fi:26656,6a78a2a5f19c93661a493ecbe69afc72b5c54117@seed-2.nibiru.fi:26656"
PEERS="37713248f21c37a2f022fbbb7228f02862224190@35.243.130.198:26656,ff59bff2d8b8fb6114191af7063e92a9dd637bd9@35.185.114.96:26656"
sed -i "s/seeds = \"\"/seeds = \"$SEEDS\"/g" ~/.nibid/config/config.toml
sed -i "s/persistent_peers = \"\"/persistent_peers = \"$PEERS\"/g" ~/.nibid/config/config.toml
# 3. Restart the node
sudo systemctl restart nibid
# 4. If still stuck, try state sync or snapshot restore
Symptoms:
- Syncing but extremely slow
- High CPU/disk usage
Solution:
# Option 1: Use state sync
nibid tendermint unsafe-reset-all
# Configure state sync in ~/.nibid/config/config.toml
# [statesync]
# enable = true
# rpc_servers = "https://rpc.itn-1.nibiru.fi:443,https://rpc2.itn-1.nibiru.fi:443"
# Option 2: Download snapshot
sudo systemctl stop nibid
cd ~/.nibid
wget -O snapshot.tar.lz4 https://snapshots.nibiru.fi/nibiru-itn-1_latest.tar.lz4
lz4 -c -d snapshot.tar.lz4 | tar -x -C ~/.nibid
sudo systemctl start nibid
# Option 3: Increase resources
sed -i 's/max_num_inbound_peers = 40/max_num_inbound_peers = 100/g' ~/.nibid/config/config.toml
sed -i 's/max_num_outbound_peers = 10/max_num_outbound_peers = 50/g' ~/.nibid/config/config.toml
3. High Resource Usage
- High CPU Usage
- High Memory Usage
Symptoms:
- CPU constantly at 100%
- Node becomes unresponsive
Solution:
# 1. Check what's consuming CPU
top -p $(pgrep nibid)
# 2. Reduce mempool size
sed -i 's/size = 5000/size = 1000/g' ~/.nibid/config/config.toml
# 3. Disable unnecessary features
# In ~/.nibid/config/config.toml:
# index_all_keys = false
# prometheus = false
# 4. Restart with limits
sudo systemctl edit nibid
# Add:
# [Service]
# CPUQuota=80%
Symptoms:
- RAM usage continuously growing
- Out of memory errors
Solution:
# 1. Check memory usage
free -h
ps aux | grep nibid
# 2. Reduce cache sizes
# In ~/.nibid/config/app.toml:
# cache = 10000
# 3. Enable pruning
# In ~/.nibid/config/app.toml:
# pruning = "default"
# pruning-keep-recent = "100"
# pruning-keep-every = "0"
# pruning-interval = "10"
# 4. Add memory limits
sudo systemctl edit nibid
# Add:
# [Service]
# MemoryLimit=4G
4. Validator Issues
- Double Signing
- Missing Blocks
Symptoms:
- Node shows as jailed
double sign
errors in logs
Solution:
# 1. Stop the node immediately
sudo systemctl stop nibid
# 2. Check validator status
nibid query staking validator $(nibid keys show wallet --bech val -a)
# 3. Wait for unjailing period (usually 10 minutes)
# Check if you can unjail
nibid tx slashing unjail --from wallet --chain-id nibiru-itn-1 --gas-prices 0.025unibi --gas auto --gas-adjustment 1.5
# 4. Ensure you have only one validator running
# Remove duplicate nodes or fix key management
Symptoms:
- Validator missing blocks
- Signing window warnings
Solution:
# 1. Check validator status
nibid query slashing signing-info $(nibid tendermint show-validator)
# 2. Ensure node is fully synced
curl -s localhost:26657/status | jq .result.sync_info
# 3. Check system time
timedatectl status
# If wrong, fix with:
sudo timedatectl set-ntp true
# 4. Improve connectivity
# Add more peers in config.toml
# Increase timeout values
5. Network Issues
- No Peers Connected
Symptoms:
- Peer count is 0
- Cannot sync with network
Solution:
# 1. Check firewall settings
sudo ufw status
sudo ufw allow 26656/tcp
# 2. Add seed nodes
sed -i 's/seeds = ""/seeds = "a431d3d1b451629a21799963d9c64c17726b8c96@seed-1.nibiru.fi:26656"/g' ~/.nibid/config/config.toml
# 3. Clear peer store
sudo systemctl stop nibid
rm -rf ~/.nibid/data/peerstore.db
sudo systemctl start nibid
# 4. Check network connectivity
ping seed-1.nibiru.fi
Performance Optimization
System Tuning
# Increase file descriptors
echo "fs.file-max = 65535" | sudo tee -a /etc/sysctl.conf
ulimit -n 65535
# Optimize for SSD
echo "madvise" | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
# Network optimization
echo "net.core.rmem_default = 262144" | sudo tee -a /etc/sysctl.conf
echo "net.core.rmem_max = 16777216" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Database Optimization
# Enable pruning to save disk space
# In ~/.nibid/config/app.toml:
# pruning = "default"
# pruning-keep-recent = "100"
# pruning-keep-every = "0"
# pruning-interval = "10"
# Increase cache
# cache = 50000
# Use faster database backend
# db_backend = "pebbledb"
Emergency Procedures
Complete Reset
# WARNING: This will delete all local data
sudo systemctl stop nibid
nibid tendermint unsafe-reset-all
sudo systemctl start nibid
Backup and Restore
# Create backup
sudo systemctl stop nibid
tar -czf nibiru-backup-$(date +%Y%m%d).tar.gz ~/.nibid
sudo systemctl start nibid
# Restore from backup
sudo systemctl stop nibid
rm -rf ~/.nibid
tar -xzf nibiru-backup-YYYYMMDD.tar.gz -C ~/
sudo systemctl start nibid
Getting Help
If you're still experiencing issues:
- Check the logs:
journalctl -u nibid -f
- Visit the documentation: Nibiru Docs
- Join the Discord: Nibiru Discord
- Search GitHub issues: Nibiru Issues
When asking for help, always include:
- Your OS and version
- Node version:
nibid version
- Error logs from the last 50 lines:
journalctl -u nibid -n 50
- Your node status:
curl -s localhost:26657/status | jq .result.sync_info