Skip to content

Latest commit

 

History

History
72 lines (51 loc) · 1.96 KB

README.md

File metadata and controls

72 lines (51 loc) · 1.96 KB

ethPandaOps Lab UI

The ethPandaOps Lab is an experimental platform for exploring and visualizing Ethereum network data. This UI component provides interactive visualizations and insights from various data sources.

Structure

├── data/              # JSON data files generated by notebooks
├── frontend/          # React frontend application]
└── notebooks/         # Jupyter notebooks for data processing

Data Sources

Xatu

Xatu is a beacon chain event collector and metrics exporter. The Lab processes data from Xatu to provide insights into:

  • Network contributor statistics
  • Client version distribution
  • Network health metrics

Development

Frontend

The frontend is built with:

  • React
  • TypeScript
  • Tailwind CSS
  • Recharts for data visualization
  • Vite for development and building

To run the frontend locally:

cd frontend
npm install
npm run dev

The development server includes a proxy that serves data files from the ../data directory at the /api/data endpoint.

Data Processing

Data is processed using Jupyter notebooks located in the notebooks/ directory. Each notebook:

  • Does whatever it needs to do to get the data
  • Saves the results as JSON files in the data/ directory

To run a notebook:

cd notebooks
pip install -r requirements.txt
cp .env.example .env  # Configure your environment variables
./run_notebook.sh xatu-public-contributors

Notebooks are configured to run on a schedule defined in notebooks.yaml. Each notebook has:

  • A minimum interval between runs
  • Specific data processing tasks
  • Output paths for generated data

Deployment

The frontend is deployed on Cloudflare Pages, providing:

  • Global CDN distribution
  • Automatic HTTPS
  • Continuous deployment from Git

Contributing

The Lab is part of ethPandaOps' suite of tools for Ethereum network operations. Contributions are welcome! Please check our GitHub repository for more information.