-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GET - /eth/v1/validator/{pubkey}/feerecipient
- Specify expected behaviour when the fee recipient is not registered for {pubkey}
#55
Comments
/eth/v1/validator/{pubkey}/feerecipient
- Specify expected behaviour when the fee recipient is not specified for {pubkey}
/eth/v1/validator/{pubkey}/feerecipient
- Specify expected behaviour when the fee recipient is not registered for {pubkey}
So basically we're saying that we should allow validators to start in an invalid state? If you decide that its a valid state for a validator to be, and decide to startup, then you accept this complexity. I think that the result is an error whichever way you cut it, and it's probably not hugely important the code, though I'd probably steer towards a 400 or 500 in preference to a 404. Regardless of which way, I think we definitely want a body, which is ever so slightly not the normal with a 404, as generally its handled by the router, and you don't get an option (admittedly you would in this circumstance). |
I do think this goes against the original intention of having these apis throw as few errors as possible. that's why at prysm ours just goes with whatever the default was even if it's not set because after you import the key it's going to use it anyways. |
Issue description:
When calling
/eth/v1/validator/{pubkey}/feerecipient
for a{pubkey}
with no fee recipient registered, the response differs depending of validator client implementation:Lighthouse:
Lighthouse response is
(Note: sigp/lighthouse#3507 is open about error code)
Teku:
Teku does not allow to start a validator client without setting a fee recipient.
At start, Teku validator client logs are:
then Teku validator client quits.
==> A user cannot query
/eth/v1/validator/{pubkey}/feerecipient
on a Teku validator client if no (at least default) fee recipient is registered for{pubkey}
.Prysm:
Currently, Prysm validator client uses a custom gRPC API to communicate with the beacon node.
This gRPC API has special
GetFeeRecipientByPubKey
method which is theGET
equivalent of Beacon API prepareBeaconProposer: The request body contains a validator pubkey. The beacon node responds the corresponding fee recipient. If no specific fee recipient for this pubkey is known by the beacon node, then the beacon node answers the default fee recipient specified in beacon node configuration. If no default fee recipient is specified in beacon node configuration, then the beacon node answers the burn address0x0000...
.Proposals:
Proposal 1:
Define in Key Manager API specification that any call to
/eth/v1/validator/{pubkey}/feerecipient
validator client API with{pubkey}
with no registered fee recipient should returnHTTP 404
.Proposal 2:
Define in Beacon API specification a new
GET
fee_recipient
method. This method could take in query parameters a list of validators pubkey/index and could return corresponding fee recipient addresses.In this case, the call to
/eth/v1/validator/{pubkey}/feerecipient
validator client API will be able to answer the default fee recipient specified in beacon node configuration if no specific fee recipient is registered for{pubkey}
in the validator client.However, if
{pubkey}
has a registerd fee recipient in the validator client configuration, the validator client will have 2 possibilities:{pubkey}
GET
fee_recipient
method and returning the result.1.
and2.
may differ.The text was updated successfully, but these errors were encountered: