Solutions to common problems when using ChainViz.
Symptoms:
- Backend service not responding
- Port 8000 not accessible
- Error messages in logs
Solutions:
-
Check Python version:
python3 --version # Should be 3.11 or higher -
Check dependencies:
cd backend source venv/bin/activate pip list
-
Reinstall dependencies:
pip install -r requirements.txt
-
Check port availability:
lsof -i :8000 # Kill process if needed: kill -9 <PID> -
Check logs:
tail -f backend.log
Symptoms:
- "Failed to connect to Electrum server" errors
- Timeout errors
- Slow responses
Solutions:
-
Check internet connection:
ping fulcrum.sethforprivacy.com
-
Try different server:
- Open settings (⚙️)
- Select different Electrum server
- Click "🧪 Test Connection"
- Click "💾 Save & Apply"
-
Check firewall:
sudo ufw status # Allow outbound connections on port 50002 -
Check SSL/TLS:
- Some servers require SSL
- Try with SSL enabled/disabled
- Use "🧪 Test Connection" to verify
Electrum support now lives under tools/electrum_suite/. The curated list is stored in tools/electrum_suite/services/electrum_servers.py. To refresh it:
- Run the federated stress harness (network access required):
Set
PYTHONPATH=backend backend/venv/bin/pytest \ tools/electrum_suite/tests/test_electrum_servers.py \ -k stress --maxfail=1 --disable-warnings
RUN_ELECTRUM_NETWORK_TESTS=1if you want to execute the probes. - Pick at least five hosts that report
status=pass. - Update
_CURATED_SSL_SERVERSin the suite and note the verification date.
Because the suite is decoupled from the runtime, you can port it to a standalone repo or run it as an ops-side diagnostic service without touching the mempool-only backend.
Symptoms:
- Graph stuck loading
- Backend logs show repeated requests
- No error messages
Solutions:
-
Check Electrum server:
- Server may be slow or overloaded
- Try different server
- Check server status
-
Reduce hops:
- Lower "Hops Before" and "Hops After"
- Start with 0-2 hops
-
Reduce max outputs:
- Lower "Max Outputs Per Transaction"
- Lower "Max Transactions to Expand"
-
Check logs:
tail -f backend.log # Look for repeated requests or errors -
Restart backend:
# Docker docker-compose restart backend # Manual pkill -f uvicorn cd backend && source venv/bin/activate && uvicorn app.main:app --reload
Symptoms:
- Frontend service not responding
- Port 5173 not accessible
- Error messages in console
Solutions:
-
Check Node version:
node --version # Should be 18 or higher -
Clear cache and reinstall:
cd frontend rm -rf node_modules package-lock.json npm install -
Check port availability:
lsof -i :5173 # Kill process if needed: kill -9 <PID> -
Check logs:
tail -f frontend.log
Symptoms:
- Empty graph canvas
- No nodes visible
- Error messages in console
Solutions:
-
Check browser console:
- Press F12
- Look for errors
- Check Network tab
-
Check backend connection:
curl http://localhost:8000/api/config
-
Clear browser cache:
- Press Ctrl+Shift+Delete
- Clear cache and reload
-
Try different browser:
- Chrome, Firefox, Safari
- Check if issue persists
Symptoms:
- Nodes overlapping
- Can't see individual nodes
- Graph looks cluttered
Solutions:
-
Enable Force Repulsion:
- Click ⚙️ Settings
- Toggle ⚡ Force Repulsion
- Nodes spread apart automatically
-
Use Tree Layout:
- Click 🌳 Tree Layout
- Organizes graph hierarchically
-
Manually drag nodes:
- Click and drag nodes
- Reposition for better visibility
Symptoms:
- Clicking expand buttons does nothing
- Buttons open sidebar instead
- No expansion happening
Solutions:
-
Check select mode:
- Make sure select mode (⊟) is OFF
- Select mode prevents clicking
-
Check backend:
curl http://localhost:8000/api/config
-
Check console for errors:
- Press F12
- Look for errors in console
-
Reload page:
- Press Ctrl+R or Cmd+R
- Try again
Symptoms:
docker-compose upfails- Containers exit immediately
- Error messages in logs
Solutions:
-
Check Docker is running:
docker ps
-
Check logs:
docker-compose logs
-
Rebuild containers:
docker-compose down docker-compose up --build
-
Check disk space:
df -h # Clean up if needed: docker system prune -a
Symptoms:
- "Port already in use" errors
- Can't start containers
- Services not accessible
Solutions:
-
Find process using port:
lsof -i :5173 # Frontend lsof -i :8000 # Backend
-
Kill process:
kill -9 <PID>
-
Or change port:
# docker-compose.yml services: frontend: ports: - "8080:5173" # Use 8080 instead of 5173
Symptoms:
- Changes not appearing
- No auto-reload
- Need to manually restart
Solutions:
-
Check volumes are mounted:
docker-compose exec frontend ls -la /app/src -
Restart services:
docker-compose restart
-
Check file permissions:
ls -la frontend/src/ # Should be readable by container
Symptoms:
- Graph loads but shows nothing
- No nodes or edges
- "Loading blockchain data..." forever
Solutions:
-
Check address/transaction format:
- Address: Must be valid Bitcoin address (bc1, 1, or 3 prefix)
- Transaction: Must be valid txid (64 hex characters)
-
Check Electrum server:
- Server may not have data
- Try different server
- Check server supports verbose transactions
-
Check hops settings:
- Try 0 hops first
- Increase gradually
-
Check backend logs:
tail -f backend.log # Look for errors
Symptoms:
- Graph takes forever to load
- Slow node expansion
- Laggy interactions
Solutions:
-
Reduce hops:
- Lower "Hops Before" and "Hops After"
- Start with 0-2 hops
-
Reduce max outputs:
- Lower "Max Outputs Per Transaction"
- Lower "Max Transactions to Expand"
-
Use faster server:
- Test different Electrum servers
- Use fastest one
-
Enable caching:
- Make sure Redis is running
- Cached queries are instant
Symptoms:
- Important transactions not visible
- Edge thickness not clear
- Hard to follow money flow
Solutions:
-
Increase Edge Width Scale:
- Click ⚙️ Settings
- Increase "Edge Width Scale" slider
- Large transactions become more visible
-
Expand more nodes:
- Click expand buttons on interesting nodes
- Build the graph gradually
-
Use tree layout:
- Click 🌳 Tree Layout
- Organizes graph hierarchically
Symptoms:
- "Server doesn't support verbose mode" errors
- Can't fetch transaction details
- Incomplete data
Solutions:
-
Use different server:
- Try servers that support verbose mode:
- DIYNodes
- Bitcoin.lu.ke
- Electrum Emzy
- Seth's Fulcrum
- Try servers that support verbose mode:
-
Test server:
- Click ⚙️ Settings
- Select server
- Click "🧪 Test Connection"
- Check "Features" section
Symptoms:
- Slow responses
- Timeout errors
- Long loading times
Solutions:
-
Test different servers:
- Try all available servers
- Use "🧪 Test Connection" to check latency
- Choose fastest one
-
Use local server:
- Run your own Electrum server
- Fastest possible performance
-
Enable caching:
- Use Redis for caching
- Repeated queries are instant
Symptoms:
- Settings revert after page reload
- Changes not persisting
- Cookies not working
Solutions:
-
Check browser settings:
- Make sure cookies are enabled
- Check privacy settings
-
Clear cookies and retry:
- Press Ctrl+Shift+Delete
- Clear cookies
- Reload page
-
Check backend:
curl http://localhost:8000/api/config
Symptoms:
- "Current Active" changes when selecting presets
- Confusing which server is active
Solutions:
-
This is expected behavior:
- "Current Active" = server currently in use
- "Editing" = values you're currently editing
- "Current Active" only changes after clicking "Save & Apply"
-
Verify active server:
- Check "Current Active" display
- This is the actual server in use
Symptoms:
- Slow performance
- Browser freezing
- Server running out of memory
Solutions:
-
Reduce graph size:
- Lower hops
- Lower max outputs
- Expand selectively
-
Close other tabs:
- Free up browser memory
- Close unnecessary tabs
-
Restart services:
# Docker docker-compose restart # Manual # Restart backend and frontend
Symptoms:
- Takes forever to expand nodes
- Laggy interactions
- Timeout errors
Solutions:
-
Reduce max outputs:
- Lower "Max Outputs Per Transaction"
- Lower "Max Transactions to Expand"
-
Use faster server:
- Test different Electrum servers
- Choose fastest one
-
Enable caching:
- Use Redis for caching
- Repeated queries are instant
If you're still experiencing issues:
-
Check logs:
# Backend tail -f backend.log # Frontend tail -f frontend.log # Docker docker-compose logs -f
-
Check browser console:
- Press F12
- Look for errors
- Check Network tab
-
Check system resources:
# Memory free -h # Disk space df -h # CPU top
-
Create an issue:
- Include error messages
- Include logs
- Include steps to reproduce
Good luck! 🍀