Lab
Practice on a Bitcoin node that can't break
A simulated Linux shell on a machine running Bitcoin Core: nothing real, nothing installed, nothing sent anywhere. Type the commands you would run on a real node, or tap a suggestion. The output is shaped like the real thing.
Pick a situation
Enter runs a command. Up/Down for history, Tab completes, help lists commands, clear wipes the screen.
Mission
Healthy node. Everything works. Get a feel for what normal looks like: run bitcoin-cli -getinfo, check getblockchaininfo and getpeerinfo, then confirm there is disk to spare with df -h. Knowing the baseline is what makes problems stand out later.
Show diagnosis
initialblockdownload is false, blocks equals headers, verificationprogress is about 1, and ten outbound peers are connected. That is a synced node. Zero inbound peers is normal behind a home router. Keep an eye on disk growth and the maintenance checklist. All the commands are in the command library.
Initial sync. The node is downloading the chain. Is it moving? Run bitcoin-cli getblockchaininfo twice and compare blocks, headers and verificationprogress, then read the log with sudo tail -n 20 /var/lib/bitcoind/debug.log.
Show diagnosis
blocks is behind headers and verificationprogress rises on every call: the node is healthy and just busy. The UpdateTip lines with progress= are the heartbeat. Waiting is normal; see sync stuck: how to tell slow from broken and the setup guide for dbcache and storage tips.
No peers. The node is running but the chain has not advanced for days. Find out why the sync isn't moving. Start with bitcoin-cli getconnectioncount, then compare the block time in getblockchaininfo with date, and read the log.
Show diagnosis
Zero connections, a tip about a week old, and Network is unreachable errors in the log: the machine cannot reach the Bitcoin network. Check its own connectivity (cable, Wi-Fi, DNS), outbound firewall rules for port 8333, and any VPN. The node itself is fine. Walk through sync stuck and the peer checks in commands.
Disk full. The node is down and won't stay up. Diagnose it: systemctl status bitcoind, journalctl -u bitcoind -n 20, then df -h. Look at cat /etc/bitcoin/bitcoin.conf for a way out.
Show diagnosis
df -h shows 100% on / and the journal says Disk space is low: Bitcoin Core shut itself down to protect its database, and systemd gave up after five restarts. Free a little room first (sudo journalctl --vacuum-size=100M), start it again, then fix it for good: a bigger disk, or pruning (prune= in bitcoin.conf). See disk space and pruning.
Not running. bitcoin-cli won't answer after a reboot. Work out why and bring the node back: check systemctl status bitcoind, then start it with sudo systemctl start bitcoind and verify the commands work again.
Show diagnosis
Could not connect to the server 127.0.0.1:8332 means nothing is listening: the daemon is down, not broken. systemctl status shows inactive (dead) and disabled, so it did not come back after the reboot. sudo systemctl start bitcoind starts it and sudo systemctl enable bitcoind makes it survive reboots. The install and systemd unit are in the setup guide; keep RPC on localhost as in security basics.
Real node, real problem? The command library has the read-only diagnostics, and the guides cover the fixes.