pRPC Integration
TechnicalHow we connect to real Xandeum pNodes via pnRPC
Real Data Integration
This platform connects to real Xandeum pnRPC endpoints on port 6000, not mock data. All storage metrics, uptime values, and performance data come directly from the Xandeum network.
Overview
The Xandeum network provides pNode data through a specialized RPC interface called pnRPC, which runs on port 6000 (distinct from the standard Solana RPC port 8899). This platform queries multiple seed nodes to retrieve live network data.
3
Seed Nodes
6000
pnRPC Port
4
RPC Methods
Seed Nodes
We query these known pNodes in order until one responds successfully:
192.190.136.28:6000173.212.220.65:6000192.190.136.37:6000Implementation: See src/services/pnode.service.ts lines 250-257 for the seed node configuration and fallback logic.
RPC Methods
get-pods-with-stats
PrimaryPrimary data source - Returns all pNodes with storage, uptime, and performance metrics
View example response
{
"jsonrpc": "2.0",
"result": {
"pods": [{
"address": "192.190.136.28",
"is_public": true,
"pubkey": "6cXp...",
"rpc_port": 8899,
"storage_committed": 107374182400,
"storage_usage_percent": 0.0000467,
"storage_used": 5013504,
"uptime": 1234567,
"version": "2.0.15"
}]
},
"id": 1
}get-stats
Detailed metrics for a specific node - CPU, RAM, network packets, streams
View example response
{
"jsonrpc": "2.0",
"result": {
"active_streams": 0,
"cpu_percent": 12.5,
"current_index": 0,
"file_size": 107374182400,
"last_updated": 1703000000,
"packets_received": 1500000,
"packets_sent": 1200000,
"ram_total": 8589934592,
"ram_used": 4294967296,
"total_bytes": 5013504,
"total_pages": 1024,
"uptime": 1234567
},
"id": 1
}getClusterNodes
Standard Solana RPC - Returns all cluster nodes with gossip, TPU, and RPC endpoints
View example response
{
"jsonrpc": "2.0",
"result": [{
"pubkey": "6cXp...",
"gossip": "192.190.136.28:8001",
"tpu": "192.190.136.28:8003",
"rpc": "192.190.136.28:8899",
"version": "2.0.15",
"featureSet": 123456789,
"shredVersion": 1234
}],
"id": 1
}getEpochInfo
Current epoch information - slot index, slots in epoch, transaction count
View example response
{
"jsonrpc": "2.0",
"result": {
"absoluteSlot": 166598,
"blockHeight": 166500,
"epoch": 27,
"slotIndex": 8598,
"slotsInEpoch": 8192,
"transactionCount": 22661093
},
"id": 1
}Data Flow
Client Browser/api/prpc— Request pNode data/api/prpcpnRPC Seed Nodes— Forward to port 6000Seed Node/api/prpc— Return pod list with stats/api/prpcGeoIP Service— Enrich with location data/api/prpcClient Browser— Return formatted pNodesReal Data Retrieved
pubkeyNode public key for identification
addressIP address of the pNode
versionSoftware version running
storage_committedTotal storage capacity in bytes
storage_usedUsed storage in bytes
storage_usage_percentUtilization percentage
uptimeUptime in seconds (real value)
cpu_percentCPU utilization percentage
ram_used / ram_totalMemory usage
packets_sent / receivedNetwork traffic
Error Handling & Fallbacks
- •Seed nodes are tried in order - if one fails, the next is attempted
- •5-second timeout for
get-pods, 10-second forget-pods-with-stats - •Browser requests are proxied through
/api/prpcto avoid CORS - •React Query provides 30-second caching to reduce redundant requests
Code Reference
Key files implementing pRPC integration
src/services/pnode.service.tsMain pNode service with pnRPC callssrc/app/api/prpc/route.tsAPI proxy for CORS avoidancesrc/services/geoip.service.tsGeoIP enrichment for node locations