The ethPandaOps Lab is our high velocity, experimental platform for exploring new ideas and concepts in the Ethereum ecosystem. The Lab aims to provide insights that are not viable with standard observability tools like Grafana or Prometheus.
The codebase is built with a focus on developer experience and integration with LLM's to quickly iterate on ideas.
- Multi-Network Support: Data collection and analytics for multiple Ethereum networks
- Xatu Integration: Insights from Xatu, an Ethereum event collector and metrics exporter
The application consists of:
├── backend/ # Go implementation (main codebase)
│ ├── pkg/ # Core packages
│ │ ├── api/ # API service (client-facing)
│ │ ├── server/ # SRV service (business logic, data processing)
│ │ │ ├── internal/ # Internal server components
│ │ │ │ ├── grpc/ # gRPC server implementation
│ │ │ │ └── service/# Service implementations (beacon_slots, beacon_chain_timings, xatu_public_contributors, etc.)
│ │ │ └── proto/ # Protocol buffer definitions
│ │ └── internal/ # Shared internal packages
│ │ ├── cache/ # Caching implementations (Redis, memory)
│ │ ├── ethereum/ # Ethereum-specific utilities
│ │ └── lab/ # Core lab functionality
├── frontend/ # React frontend (see frontend/README.md)
├── scripts/ # Utility scripts
└── deploy/ # Deployment configurations
The backend is implemented in Go as a single binary with two main services:
- SRV Service: Handles business logic, data processing, and metrics collection
- API Service: Provides client-facing HTTP/REST endpoints
For detailed backend architecture, modules, and technologies, see backend/README.md.
The frontend is a React application that visualizes the data collected by the backend. See frontend/README.md for development details.
You can also start specific components:
# Infrastructure only (Redis, MinIO)
docker-compose --profile infra up -d
# Backend services only (API and SRV)
docker-compose --profile backend up -d
# Frontend only
docker-compose --profile frontend up -d
Copy .env.example
to .env
and configure as needed. Key variables include:
For detailed configuration information:
- Backend: See backend/README.md
- Frontend: See frontend/README.md
- Docker Compose: Uses configs from
deploy/docker-compose/
automatically - Manual Setup: Copy configs from
deploy/docker-compose/
to project root
Contributions to the ethPandaOps Lab are welcome! Please feel free to submit issues or pull requests to the GitHub repository.
This project is licensed under the MIT License - see the LICENSE file for details.