Rewrite the validator client code to be compatible with the Beacon API instead of prysmaticlabs' internal API.
Ticket here.
GetFeeRecipientByPubKey
I wrote this (merged) PR:
This PR introduces two main changes:
In ProposerOption
, a new wrapper FeeRecipientConfig
around FeeRecipient
is created:
type FeeRecipientConfig struct {
FeeRecipient common.Address
}
// ProposerOption is a Prysm internal representation of the ProposerOptionPayload on the validator client in bytes format instead of hex.
type ProposerOption struct {
FeeRecipientConfig *FeeRecipientConfig
BuilderConfig *BuilderConfig
}
This change enables the fact that FeeRecipient
could be undefined while BuilderConfig
is defined.
This fixes https://github.com/prysmaticlabs/prysm/issues/11948.
This PR ensures PrepareBeaconProposer
and SubmitValidatorRegistrations
are called only for pubkeys with a (custom or default) fee recipient.
==> We can call POST setGasLimit on a pubkey without fee recipient without automatically defined the corresponding fee recipient to burn address.
Before this PR, GetFeeRecipientByPubKey
gRPC call is called in:
SetGasLimit
,SetFeeRecipientByPubkey
, andListFeeRecipientByPubkey
There is no (direct or indirect) equivalent of GetFeeRecipientByPubKey
in Beacon API.
The idea of this PR is to reduce usage of GetFeeRecipientByPubKey
gRPC call as low as possible.
After this PR, GetFeeRecipientByPubKey
gRPC is only used in ListFeeRecipientByPubkey
.
A next PR will handle this last case in order to be fully Beacon API compatible.
Also, I wrote this (not yet merged) PR:
This PR deals with the (lack of) implementation for the GetFeeRecipientByPubKey
method in beacon API.
With gRPC implementation, if, for a given {pubkey}
:
{pubkey}
specific fee recipient is set in validator client, ANDGetFeeRecipientByPubKey
gRPC beacon API call responds on error, then:Before this PR, the call to GET /eth/v1/validator/{pubkey}/feerecipient
returns the burn address 0x0000....
After this PR the call to GET /eth/v1/validator/{pubkey}/feerecipient
returns:
{
"message": "Failed to retrieve default fee recipient from beacon node",
"code": 500
}
With gRPC implementation, if, for a given {pubkey}
:
{pubkey}
specific fee recipient is set in validator client, ANDGetFeeRecipientByPubKey
gRPC beacon API call responds with a nil
value or with an empty value, then:Before this PR, the call to GET /eth/v1/validator/{pubkey}/feerecipient
returns the burn address 0x0000....
After this PR the call to GET /eth/v1/validator/{pubkey}/feerecipient
returns:
{
"message": "No fee recipient set",
"code": 400
}
With beacon API implementation, if, for a given {pubkey}
:
{pubkey}
specific fee recipient is set in validator client, ANDthe call to GET /eth/v1/validator/{pubkey}/feerecipient
returns:
{
"message": "No fee recipient set",
"code": 400
}
Warning:
The 400 and 500 code listed above will cause, in Prysm validator WebUI, the following error:
Because this PR breaks the Prysm validator client WebUI, it is marked as blocked
waiting for the Prysm validator client WebUI (which is in another git repo) update.
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing