Skip to main content

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

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

2. Sync Issues

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

3. High Resource 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%

4. Validator Issues

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

5. Network Issues

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:

  1. Check the logs: journalctl -u nibid -f
  2. Visit the documentation: Nibiru Docs
  3. Join the Discord: Nibiru Discord
  4. 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