ObolNetwork / ObolNetwork/charon
Support web3signer custodied keys for `charon exit sign`
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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