ObolNetwork / ObolNetwork/charon

Support web3signer custodied keys for `charon exit sign`

Open
#3,741 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

protocol
Dominant language
Go
Stars
222
Forks
138
Avg merge
2d 6h
Merged PRs (30d)
35

Description

🎯 Problem to be solved

Some users have a charon + vc + web3signer setup running, and they want to sign partial exits for their node. Right now, that entails retrieving and using the original keystores, but it should be possible to use the running web3signer to sign a voluntary exit instead.

🛠️ Proposed solution

  • Core team consensus on the proposed solution

Add the following flags to charon exit sign

      --keymanager-address string              The keymanager URL to call to sign exit signatures.
      --keymanager-auth-token string          Authentication bearer token to interact with keymanager API. Don't include the "Bearer" symbol, only include the api-token.

Use these flags to call <keymanager-address>/api/v1/eth2/sign/{pubkey} with the as a header, and the appropriate request body as per the API docs to receive a signed voluntary exit for that pubkey. Continue with the commands normal flow otherwise.

If these flags are included, --validators-keys-dir either should not be present, or ignored.

🧪 Tests

  • Tested by new automated unit/integration/smoke tests
  • Manually tested on core team/canary/test clusters
  • Manually tested on local compose simnet

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the charon exit sign command and review the linked Web3Signer ETH2 signing API documentation, including the request body and authentication header. Done means the two keymanager flags can obtain a signed voluntary exit from the specified endpoint while preserving the command's normal flow; add and run unit, integration, or smoke tests for the new path.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api, blockchain, cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.