This repo contains the source code for the distributed validator client Charon (pronounced 'kharon'); a HTTP middleware client for Ethereum Staking that enables you to safely run a single validator across a group of independent nodes.
Charon is accompanied by a webapp called the Distributed Validator Launchpad for distributed validator key creation.
Charon is used by stakers to distribute the responsibility of running Ethereum Validators across a number of different instances and client implementations.
A Distributed Validator Cluster that uses the Charon client to hedge client and hardware failure risks
The easiest way to test out charon is with the charon-distributed-validator-cluster repo which contains a docker compose setup for running a full charon cluster on your local machine.
The Obol Docs website is the best place to get started. The important sections are intro, key concepts and charon.
For detailed documentation on this repo, see the docs folder:
- Configuration: Configuring a charon node
- Architecture: Overview of charon cluster and node architecture
- Project Structure: Project folder structure
- Branching and Release Model: Git branching and release model
- Go Guidelines: Guidelines and principals relating to go development
- Contributing: How to contribute to charon; githooks, PR templates, etc.
There is always the charon godocs for the source code documentation.
Charon integrates into the Ethereum consensus stack as a middleware between the validator client and the beacon node via the official Eth Beacon Node REST API. Charon supports any upstream beacon node that serves the Beacon API. Charon aims to support any downstream standalone validator client that consumes the Beacon API.
Client | Beacon Node | Validator Client | Notes |
---|---|---|---|
Teku | ✅ | ✅ | Fully supported |
Lighthouse | ✅ | ✅ | Fully supported |
Lodestar | ✅ | *️⃣ | DVT compatibility issue |
Vouch | *️⃣ | ✅ | Only validator client provided |
Prysm | ✅ | 🛑 | Validator client requires gRPC API |
Nimbus | ✅ | ✅ | Soon to be supported |
It is still early days for the Obol Network and things are under active development. We are moving fast so check back in regularly to track the progress.
Charon is a distributed validator, so its main responsibility is performing validation duties. The following table outlines which clients have produced which duties on a public testnet, and which are still under construction (🚧 )
Duty \ Client | Teku | Lighthouse | Lodestar | Nimbus | Vouch | Prysm |
---|---|---|---|---|---|---|
Attestation | ✅ | ✅ | 🚧 | 🚧 | ✅ | 🚧 |
Attestation Aggregation | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 |
Block Proposal | ✅ | ✅ | 🚧 | 🚧 | 🚧 | 🚧 |
Blinded Block Proposal (mev-boost) | ✅ | ✅ | 🚧 | 🚧 | 🚧 | 🚧 |
Sync Committee Message | ✅ | ✅ | 🚧 | 🚧 | 🚧 | 🚧 |
Sync Committee Contribution | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 |