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
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
  • No Tor peers — Consider enabling Tor

(Note: the peer "ban score" / misbehavior_score field is deprecated — it is always 0, or 100 just before a peer is disconnected — so it is not useful as a live health metric.)

Configuration Impact​

Monitor shows effects of these settings:

bitcoin.conf
# Connection limits
maxconnections=125 # Total peer limit
maxuploadtarget=1000 # Upload target per 24 hours (MiB by default)

# Network selection: each onlynet= line adds a permitted network,
# so together these restrict connections to IPv4 and Tor only
onlynet=ipv4
onlynet=onion

# 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​