Skip to main content

Network Monitor

Bitcoin Knots includes enhanced network monitoring through the gui_netwatch and gui_trafficgraph patches, providing real-time visibility into your node's network activity.

Features Overview

FeatureDescription
Peer MonitorReal-time peer connection status
Traffic GraphVisual bandwidth usage over time
Connection TypesIPv4, IPv6, Tor, I2P breakdown
Block PropagationSee blocks as they arrive
Quality IndicatorsLatency and reliability metrics

Accessing Network Information

Via Menu

Window → Peers — Detailed peer list with:

  • IP addresses (or .onion addresses)
  • Connection direction (in/out)
  • Protocol version
  • User agent string
  • Ping time
  • Bytes sent/received
  • Block height

Window → Network Traffic — Traffic graph visualization

Via Status Bar

The status bar shows:

  • Connection count indicator
  • Sync progress
  • Network activity icon

Click the network icon for quick stats.

Peer Monitor

Peer List Columns

ColumnDescription
AddressIP or onion address
TypeIPv4/IPv6/Onion/I2P
Networkmainnet/testnet
ServicesNode capabilities
Starting HeightPeer's block height at connect
Sync HeightCurrent synced height
Ban ScoreMisbehavior points
PingRound-trip latency
Sent/ReceivedBandwidth usage

Connection Types

┌─────────────────────────────────────────────────────────────┐
│ Peer Connections │
├─────────────────────────────────────────────────────────────┤
│ Type │ Count │ Description │
├─────────────────────────────────────────────────────────────┤
│ ● Outbound │ 8 │ Connections you initiated │
│ ◐ Inbound │ 12 │ Connections others initiated │
│ ◉ Manual │ 2 │ Manually added with -addnode │
│ ○ Feeler │ 1 │ Temporary connection testing peer │
└─────────────────────────────────────────────────────────────┘

Network Distribution

The monitor shows peer distribution across networks:

Network Breakdown:
├── IPv4: 45% ████████████░░░░░░░░
├── IPv6: 20% ████████░░░░░░░░░░░░
├── Onion: 30% ██████████████░░░░░░
└── I2P: 5% ██░░░░░░░░░░░░░░░░░░

Traffic Graph

Enhanced Visualization

The gui_trafficgraph patches provide:

  • Non-linear scaling — Better visibility of both small and large traffic
  • Separate in/out — Distinct colors for upload/download
  • Time range selection — View different time windows
  • Tooltips — Exact values on hover

Reading the Graph

Traffic (last hour)

2 │ ╭─╮
MB/s│ ╱ ╲ ╭─╮
1 │───╱────╲───────╱──╲──
│ ╱ ╲─────╱ ╲
0 └─────────────────────────▶
-60min -30min now

── Received (download)
── Sent (upload)

Traffic Patterns

Normal operation:

  • Steady baseline of ~1-10 KB/s
  • Spikes when new blocks arrive
  • Higher during initial sync

Initial sync:

  • Sustained high download (blocks)
  • Low upload
  • May saturate connection

Serving peers:

  • Higher upload if you have many inbound connections
  • Spikes when serving historical blocks

Block Propagation

See when new blocks arrive:

Recent Blocks:
│ Height │ Time │ From Peer │ Size │
├──────────┼────────────┼──────────────────┼─────────┤
│ 870,123 │ 12:34:56 │ 192.168.1.5:8333 │ 1.2 MB │
│ 870,122 │ 12:24:31 │ xyz...abc.onion │ 1.8 MB │
│ 870,121 │ 12:15:02 │ 10.0.0.8:8333 │ 0.9 MB │

RPC Equivalents

The GUI displays data available via RPC:

# Peer information
bitcoin-cli getpeerinfo

# Network totals
bitcoin-cli getnettotals

# Network info summary
bitcoin-cli getnetworkinfo

# Connection count
bitcoin-cli getconnectioncount

Example: Peer Summary

# Get peer count by network
bitcoin-cli getpeerinfo | jq 'group_by(.network) | map({network: .[0].network, count: length})'

# Output:
# [
# {"network": "ipv4", "count": 5},
# {"network": "ipv6", "count": 2},
# {"network": "onion", "count": 8}
# ]

Example: Traffic Stats

# Total bytes transferred
bitcoin-cli getnettotals

# Output:
# {
# "totalbytesrecv": 1234567890,
# "totalbytessent": 987654321,
# "timemillis": 1699999999999
# }

Connection Health

Indicators

IndicatorMeaning
🟢 GreenHealthy connection
🟡 YellowHigh latency (>500ms)
🔴 RedConnection issues
⚪ GrayDisconnected/banned

Healthy Node Signs

  • 8+ outbound connections — Good peer diversity
  • Some inbound connections — Ports open, helping network
  • Mixed network types — IPv4/IPv6/Tor diversity
  • Low ping times — under 200ms typically
  • Steady traffic — Not stuck or stalled

Warning Signs

  • 0 connections — Network issue, check firewall
  • Only outbound — Ports not forwarded
  • High ban scores — May be misbehaving peer
  • No Tor peers — Consider enabling Tor

Configuration Impact

Monitor shows effects of these settings:

bitcoin.conf
# Connection limits
maxconnections=125 # Total peer limit
maxuploadtarget=1000 # Monthly upload limit (MB)

# Network selection
onlynet=ipv4 # Restrict to IPv4
onlynet=onion # Add Tor peers

# Peer management
addnode=x.x.x.x # Always try to connect
connect=x.x.x.x # ONLY connect to these

Debugging Network Issues

No Connections

# Check if listening
bitcoin-cli getnetworkinfo | grep '"localaddresses"'

# Check connection count
bitcoin-cli getconnectioncount

# Try adding a node
bitcoin-cli addnode "seed.bitcoin.sipa.be" onetry

Slow Sync

# Check peer sync status
bitcoin-cli getpeerinfo | jq '.[] | {addr, synced_blocks, inflight}'

# See if stuck on specific peer
# Look for peers with low synced_blocks

High Bandwidth Usage

# Check traffic
bitcoin-cli getnettotals

# Reduce connections if needed
# Edit bitcoin.conf: maxconnections=20

Knots Enhancements

Compared to Bitcoin Core, Knots adds:

EnhancementDescription
Non-linear graphBetter scaling for varying traffic
Network breakdownVisual IPv4/IPv6/Tor/I2P split
Enhanced tooltipsMore detailed hover information
Dark mode supportProper theming in all views
Block arrival timesSee propagation timing

GUI vs CLI Monitoring

TaskGUICLI
Quick status check✓ Best
Automated monitoring✓ Best
Historical data✓ (external tools)
Real-time visual✓ Best
Scriptable✓ Best

For automated monitoring, consider tools like:

  • bitcoin-cli in scripts
  • Prometheus + Grafana
  • Custom monitoring solutions

See Also