erigontech / erigontech/erigon

cl/beacon: fee recipient ignores Gloas proposer preferences

Open
#23,300 1 comment 0 reactions 1 assignee Claimed by @domiwei View on GitHub
Caplin Glamsterdam
Dominant language
Go
Stars
3.6k
Forks
1.5k
Avg merge
1d 16h
Merged PRs (30d)
455

Description

Block production resolves the fee recipient only from the `prepare_beacon_proposer` registrations:

```go
feeRecipient, registered := a.validatorParams.GetFeeRecipient(proposerIndex)
```

Under Gloas a signed `ProposerPreferences` message can carry one as well. The same closure already reads that message for `TargetGasLimit`, guarded by `pref.Message.ValidatorIndex == proposerIndex`, so the value is in scope at the point the fee recipient is chosen.

Two things follow, in increasing order of scope:

- the warning about a missing registration is inaccurate when a matching preference exists, since one is in fact available;
- more importantly, a proposer that registered only through preferences builds with the zero address and gives that block's fees away.

Deciding the precedence between the two sources is the actual question here, which is why it is not folded into #23274.

Reported by @yperbasis and @domiwei while reviewing #23274.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.