- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands - CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround - CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check - NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere - MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates - LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference Co-authored-by: Cursor <cursoragent@cursor.com>
8.5 KiB
RPC Node Peer Count Analysis
Last Updated: 2026-01-31
Document Version: 1.0
Status: Active Documentation
Date: 2026-01-18
Status: 📊 ANALYSIS COMPLETE
Current Peer Count Status
| VMID | IP Address | Block Height | Peers | Status | Analysis |
|---|---|---|---|---|---|
| 2101 | 192.168.11.211 | 1,145,367 | 7 | ✅ Good | Well connected |
| 2201 | 192.168.11.221 | 1,145,367 | 7 | ✅ Good | Well connected |
| 2303 | 192.168.11.233 | 1,145,367 | 7 | ✅ Good | Well connected |
| 2304 | 192.168.11.234 | 1,145,367 | 7 | ✅ Good | Well connected |
| 2305 | 192.168.11.235 | 1,145,367 | 7 | ✅ Good | Well connected |
| 2306 | 192.168.11.236 | 1,145,367 | 7 | ✅ Good | Well connected |
| 2307 | 192.168.11.237 | 1,145,367 | 7 | ✅ Good | Well connected |
| 2308 | 192.168.11.238 | 1,145,367 | 7 | ✅ Good | Well connected |
| 2400 | 192.168.11.240 | 1,149,992 | 2 | ⚠️ Warning | Under-connected, ahead |
| 2401 | 192.168.11.241 | 1,149,992 | 2 | ⚠️ Warning | Under-connected, ahead |
| 2402 | 192.168.11.242 | 1,149,992 | 2 | ⚠️ Warning | Under-connected, ahead |
| 2403 | 192.168.11.243 | 600,172 | 0 | ⏳ Syncing | Still syncing (expected) |
Expected Peer Counts
Network Size Context
Current Network: ~19-20 active nodes
- 5 Validators (VMIDs 1000-1004)
- 4 Sentries (VMIDs 1500-1503)
- 12 RPC Nodes (VMIDs 2101, 2201, 2303-2308, 2400-2403)
Recommended Peer Counts
Based on BESU_PERFORMANCE_TUNING.md:
| Network Size | RPC (Standard) | RPC (High Traffic) |
|---|---|---|
| 10-20 nodes | 5-7 peers | 20-25 peers |
| 20-50 nodes | 20-25 peers | 30-40 peers |
| 50-100 nodes | 25-30 peers | 40-50 peers |
For Current Network (10-20 nodes):
- Minimum healthy: 2-3 peers
- Recommended: 5-7 peers ✅
- Maximum: 20-25 peers (max-peers setting)
Analysis by Node Group
✅ Group 1: Standard RPC Nodes (7 peers) - HEALTHY
Nodes: 2101, 2201, 2303-2308
Peer Count: 7 peers each
Block Height: 1,145,367 (all synchronized)
Status: ✅ EXCELLENT
- All nodes have 7 peers (optimal for network size)
- All nodes are at the same block height (synchronized)
- Well connected to the network
- No issues detected
Connected to:
- Likely connected to: Validators, Sentries, and other RPC nodes
- Network topology is healthy
⚠️ Group 2: ThirdWeb RPC Nodes (2 peers) - UNDER-CONNECTED
Nodes: 2400, 2401, 2402
Peer Count: 2 peers each
Block Height: 1,149,992 (ahead by ~4,625 blocks!)
Status: ⚠️ ISSUE DETECTED
Issues:
- Under-connected: Only 2 peers each (should have 5-7)
- Block height mismatch: Ahead by ~4,625 blocks
- Network isolation: Likely only connected to each other
Analysis:
- 2 peers each suggests they're only connected to each other (3 nodes = 2 peers each)
- Ahead block height suggests:
- They might be on a different fork
- They might not be receiving blocks from the main network
- They're syncing from a different source
Possible Causes:
- Missing from static-nodes.json: Not all main network nodes listed
- Discovery disabled: Cannot discover other nodes
- Network partition: Isolated from main network
- Different bootnodes: Connecting to different network
Impact:
- ⚠️ Reduced redundancy (only 3 nodes connected)
- ⚠️ Potential fork if block height diverges further
- ⚠️ Limited access to network state
⏳ Group 3: Syncing Node (0 peers) - EXPECTED
Node: 2403
Peer Count: 0 peers
Block Height: 600,172 (syncing, ~545,000 blocks behind)
Status: ⏳ SYNCING (EXPECTED)
Analysis:
- 0 peers is normal during initial sync
- Node is actively syncing (block 600,172 vs current ~1,145,367)
- Once sync completes, peer count should increase
Expected Behavior:
- Once synced, should have 5-7 peers
- May take time depending on sync speed
Root Cause Analysis
Why ThirdWeb Nodes Have Only 2 Peers
Most Likely Cause: Network Isolation
-
static-nodes.json mismatch:
- ThirdWeb nodes might not have all main network nodes in their static-nodes.json
- Main network nodes might not have ThirdWeb nodes in their static-nodes.json
-
Discovery configuration:
- ThirdWeb nodes might have
discovery-enabled=false - Without discovery, they can only connect to nodes in static-nodes.json
- ThirdWeb nodes might have
-
Network topology:
- ThirdWeb nodes might be in a different network segment
- Firewall rules might be blocking P2P connections (port 30303)
-
Bootnode configuration:
- Different bootnodes configured
- Connecting to different network
Recommendations
Immediate Actions
1. Fix ThirdWeb Nodes (2400, 2401, 2402)
Priority: 🟠 HIGH - Network isolation and fork risk
Actions:
-
Verify static-nodes.json:
pct exec 2400 -- cat /var/lib/besu/static-nodes.json | jq . pct exec 2401 -- cat /var/lib/besu/static-nodes.json | jq . pct exec 2402 -- cat /var/lib/besu/static-nodes.json | jq .- Should contain all 15 nodes (validators, sentries, all RPC nodes)
-
Verify permissions-nodes.toml:
pct exec 2400 -- cat /etc/besu/permissions-nodes.toml- Should contain all nodes
-
Check discovery setting:
pct exec 2400 -- grep discovery-enabled /etc/besu/*.toml- Should be
discovery-enabled=truefor RPC nodes
- Should be
-
Restart services:
for vmid in 2400 2401 2402; do pct exec $vmid -- systemctl restart besu-rpc.service done -
Verify network connectivity:
# From ThirdWeb nodes, test connection to main network pct exec 2400 -- ping -c 1 192.168.11.211 pct exec 2400 -- telnet 192.168.11.211 30303
2. Monitor Syncing Node (2403)
Priority: 🟢 LOW - Expected behavior
Actions:
- Monitor sync progress
- Once synced, verify peer count increases to 5-7
- No immediate action needed
Expected Peer Count Summary
For Network Size (10-20 nodes):
| Status | Peer Count | Description |
|---|---|---|
| ✅ Optimal | 5-7 peers | Ideal for network size |
| ✅ Good | 3-4 peers | Acceptable, but below optimal |
| ⚠️ Warning | 2 peers | Under-connected, investigate |
| ❌ Critical | 0-1 peers | Isolated or syncing |
Current Status:
- ✅ 8 nodes (2101, 2201, 2303-2308): 7 peers - Optimal
- ⚠️ 3 nodes (2400, 2401, 2402): 2 peers - Need investigation
- ⏳ 1 node (2403): 0 peers - Syncing (expected)
Verification Commands
Check Peer Count for All Nodes
for ip in 192.168.11.211 192.168.11.221 192.168.11.233 192.168.11.234 \
192.168.11.235 192.168.11.236 192.168.11.237 192.168.11.238 \
192.168.11.240 192.168.11.241 192.168.11.242 192.168.11.243; do
echo -n "$ip: "
curl -s -X POST -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' \
http://$ip:8545 | jq -r '.result' | xargs printf "%d\n"
done
Check Block Height
for ip in 192.168.11.211 192.168.11.221 192.168.11.233 192.168.11.234 \
192.168.11.235 192.168.11.236 192.168.11.237 192.168.11.238 \
192.168.11.240 192.168.11.241 192.168.11.242 192.168.11.243; do
echo -n "$ip: "
curl -s -X POST -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
http://$ip:8545 | jq -r '.result' | xargs printf "%d\n"
done
Check Peer Details (if ADMIN API enabled)
curl -s -X POST -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"admin_peers","params":[],"id":1}' \
http://192.168.11.240:8545 | jq -r '.result[].enode'
Fix Scripts
Run this to check and fix peer connectivity:
cd /home/intlc/projects/proxmox
./scripts/fix-explorer-and-check-peers.sh
Summary
✅ Good Status (8 nodes):
- All have 7 peers (optimal for network size)
- All synchronized at block 1,145,367
- No action needed
⚠️ Needs Attention (3 nodes):
- ThirdWeb nodes (2400, 2401, 2402) have only 2 peers
- They're ahead by ~4,625 blocks (potential fork)
- Need to verify static-nodes.json and discovery configuration
⏳ Expected (1 node):
- Node 2403 has 0 peers (still syncing)
- No action needed until sync completes
Next Steps: Verify and fix static-nodes.json on ThirdWeb nodes to increase peer count to 5-7.