Two Clients. One Cluster.
Pluto and Charon are validating side by side
In November we announced that Nethermind was building a second Distributed Validator client. In March we made the repository public. In May a mixed cluster completed a DKG ceremony.
This month Pluto ran the full duty lifecycle on a public testnet. Charon is no longer the only Distributed Validator middleware client.
Hoodi in August
A four-node Distributed Validator cluster has been running on the Hoodi testnet since the start of the month. Two nodes run Charon. Two run Pluto. Every included attestation contains threshold signature shares from both implementations. Nethermind updated the nodes in production, one at a time, the cluster missed nothing.
Every duty type works: attestations, aggregations, proposals, sync committees, voluntary exits, and validator registrations. Nethermind verified each of them in three environments before the testnet run.
The whole project hinged on key compatibility. Keyshares generated from a mixed Pluto and Charon cluster behave like shares from any other cluster. The combine command reassembled the keyshares into a full validator private key. A Pedersen reshare using recreate-private-keys created a fresh set of DV keyshares for the cluster. Members do not need to know which implementation their peers are running.
What Has Shipped Since May
Three months of work went into the gap between a DKG ceremony and a client that validates. Nethermind merged 125 pull requests and closed 42 issues. Most of that effort went into hardening and thinking about the Node Operator.
Pluto is a drop-in binary. Pull the Pluto image instead of the Charon image for some of your nodes and your existing flags carry over. No new mental model, no rewritten runbook.
Your dashboards keep working. Pluto's monitoring API feeds the same Prometheus and Grafana setup you already run, and a /readyz endpoint handles health checks.
Nethermind also runs its own Pluto relays, now registered in the public relay table, add them to your Distributed Validator setup to minimize your single points of failure.
What's Next for Pluto
Some early mainnet deployments are already underway. Pluto's next big milestone is Gloas-readiness in the coming weeks. After this it will undergo a security assessment, and will be recommended for mainnet trials at less than the fault tolerance threshold of the cluster, to begin building up hours on mainnet.
The goal was never to move clusters off of Charon outright. The goal is to have no single codebase that can jeopardize the security of the validator's private keys, as well as to make it easier to recover from an outage if Charon were to have a catastrophic failure. A second implementation makes middleware diversity possible. It does not deliver it.
The most useful thing a node operator can do right now is stand up a mixed Charon and Pluto cluster on Hoodi and tell us if anything breaks. Issues go to the Pluto repository which can be found here.
November was a commitment. March was a repository. May was a DKG ceremony. This month it validated alongside the original DV client. None of those were the finish line, and neither is this one. Obol is making staking secure and institutional ready, this is another step on that journey.