Troubleshooting
Node won't start
Container exits immediately
Check the logs:
docker compose logs node
Common causes:
| Error | Fix |
|---|---|
keystore.json not found | Run the init command first (see Docker Setup) |
cannot acquire lock | Another node container is running. Run docker rm -f <old-container> |
PRIVANET_PASSPHRASE not set | Ensure .env file exists with the passphrase |
wrong passphrase | You changed your passphrase. Use the original one, or re-init (loses identity) |
OOM killed (Exit 137)
The container was killed by the OS due to out-of-memory. Ensure your server has at least 1 GB RAM and that the Docker memory limit is set to at least 1g:
deploy:
resources:
limits:
memory: 1g
Check memory:
free -h
docker stats --no-stream
Node shows as offline in dashboard
Check if the node is actually running
docker compose ps
docker compose logs --tail=20 node
Check port accessibility
From outside your server:
nc -zv your-server-ip 8336
From your server:
# Check the port is bound
ss -tulpn | grep 8336
Check firewall rules
sudo ufw status
Port 8336 must be allowed for both TCP and UDP:
sudo ufw allow 8336/tcp
sudo ufw allow 8336/udp
Check if the API is reachable
The node connects to https://privanet.dev/api/v1. If the API is unreachable from your server:
curl -s https://privanet.dev/api/v1/health
LevelDB lock error
failed to open datastore: resource temporarily unavailable
This happens when two node containers try to access the same data directory. Fix:
# Find and stop all node containers
docker ps -a | grep node-client
docker rm -f <container-id>
# Remove stale lock file
rm -f /opt/privanet/data/datastore/LOCK
# Restart normally
docker compose up -d
High memory usage
libp2p keeps connections in memory. High memory is normal during startup (peer discovery) and usually stabilizes after a few minutes.
If memory stays high (>800 MB) after 10 minutes:
- Check how many peers are connected (
privanet_peers_totalmetric) - If >100 peers, the network is large — consider upgrading to 2 GB RAM
Node registered but earning 0 PRIVA
Possible causes:
- Uptime below threshold — nodes need >80% uptime in a window to qualify
- Tier not matched — your locked liquidity may not meet the tier requirements
- Sync in progress — newly registered nodes have a 24h warm-up period
- API registration failed — check logs for
registration failederrors
Updating the node
# Pull latest image
docker compose pull
# Restart with new image
docker compose up -d
# Verify the new version is running
docker compose logs --tail=5 node
Getting support
- GitHub Issues: github.com/privanet/node-client
- Telegram: t.me/privanet
When reporting an issue, include:
# Useful debug info to share
docker compose logs --tail=100 node > node-logs.txt
docker stats --no-stream
free -h
uname -a