Skip to content
/ xatu Public
forked from ethpandaops/xatu

Ethereum network monitoring with collection clients and a centralized server for data pipelining.

License

Notifications You must be signed in to change notification settings

00x-dx/xatu

 
 

Repository files navigation

Xatu

Ethereum network monitoring with collection clients and a centralized server for data pipelining.

Overview

Xatu can run in multiple modes. Each mode can be run independently. The following diagram shows the different modes and how they interact with each other and other services.

┌───────────┐
│ CONSENSUS │
│   CLIENT  ◄─────┐
└─────▲─────┘     │
      │           │
      │           │
  ┌───▼────┐ ┌────▼─────┐  ┌───────────┐ ┌───────────┐
  │  XATU  │ │   XATU   │  │   XATU    │ │   XATU    │
  │ SENTRY │ │  CANNON  │  │  MIMICRY  │ │ DISCOVERY │
  └───┬────┘ └─────┬────┘  └─────┬─────┘ └─────┬─────┘
      │            │             │             │
      │            │             │             │
      │       ┌────▼─────┐       │             │
      └───────►          ◄───────┘─────────────┘
              │   XATU   │
              │  SERVER  │    ┌─────────────┐
              │          ◄────► PERSISTENCE │
              │          │    └─────────────┘
              └─────┬────┘
                    │
                    │
                    ▼
              DATA PIPELINE

Modes

Follow the links for more information on each mode.

  • Server - Centralized server collecting events from various clients and can output them to various sinks.
  • Sentry - Client that runs along side a Ethereum consensus client and collects data via the consensus client's Beacon API. You must run your own consensus client and this projects sentry will connect to it via the consensus client's http server.
  • Discovery - Client that uses the Node Discovery Protocol v5 and Node Discovery Protocol v4 to discovery nodes on the network. Also attempts to connect to execution layer nodes and collect meta data from them.
  • Mimicry - Client that collects data from the execution layer P2P network.
  • Cannon - Client that runs along side a Ethereum consensus client and collects canonical finalized data via the consensus client's Beacon API. You must run your own consensus client and this projects cannon client will connect to it via the consensus client's http server.

Getting Started

Download a release

Download the latest release from the Releases page. Extract and run with:

./xatu <server|sentry|discovery|mimicry> --config your-config.yaml

Docker

Available as a docker image at ethpandaops/xatu

Images

  • latest - distroless, multiarch
  • latest-debian - debian, multiarch
  • $version - distroless, multiarch, pinned to a release (i.e. 0.4.0)
  • $version-debian - debian, multiarch, pinned to a release (i.e. 0.4.0-debian)

Kubernetes via Helm

Read more

helm repo add ethereum-helm-charts https://ethpandaops.github.io/ethereum-helm-charts

helm install xatu ethereum-helm-charts/xatu -f your_values.yaml

Contributing

Contributions are greatly appreciated! Pull requests will be reviewed and merged promptly if you're interested in improving Xatu!

  1. Fork the project
  2. Create your feature branch:
    • git checkout -b feat/new-output
  3. Commit your changes:
    • git commit -m 'feat(sentry): new output
  4. Push to the branch: -git push origin feat/new-output
  5. Open a pull request

Contact

Sam - @samcmau

Andrew - @savid

About

Ethereum network monitoring with collection clients and a centralized server for data pipelining.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.8%
  • Other 0.2%