RPC Snooper
Lightweight RPC proxy for debugging Ethereum client communications with flow control API.
RPC Snooper is mostly used to inspect communication on the engine API, so between the beacon and the execution nodes.
Overview
RPC Snooper functions as a man-in-the-middle proxy that captures and logs all RPC request details including JSON bodies, making it invaluable for monitoring communications between beacon nodes and execution nodes, as well as beacon nodes and validator clients. The tool provides REST APIs for dynamic flow control, allowing operators to pause and resume request forwarding without restarting the service.
Features
- Request Forwarding & Capture: Routes all RPC calls to designated targets while capturing complete request/response data
- Flow Control REST API: Dynamic proxy management via
/start,/stop, and/statusendpoints - Prometheus Metrics: Built-in metrics collection at
/metricsendpoint for monitoring - Authentication Support: Basic auth support with
--api-authflag for API endpoints - WebSocket Control: Advanced management interface at
/_snooper/control - Flexible Deployment: Optional API mode - can be deployed as pure proxy using
--no-api
Use Cases
- Debugging RPC Interactions: Inspect communications between Ethereum client components
- Network Monitoring: Track RPC traffic patterns and packet inspection
- Maintenance Operations: Dynamic flow control during updates or migrations
- Infrastructure Diagnostics: Troubleshoot connectivity and protocol issues
- Production Monitoring: Integration with Prometheus for operational visibility