flashbots / flashbots/mev-boost
502 During Validator Registration with an Exited Validator
- Dominant language
- Go
- Stars
- 1.4k
- Forks
- 292
- PR merge metrics
- No merged PRs in 30d
Description
Hi all, I'm the Rocket Pool integration lead in charge of plugging MEV-boost into our Smartnode stack. I have a machine with a few dozen validators on Goerli/Prater, some of which have formally exited the network but their keys are still loaded by the VC.
During the validator registration routine between the MEV-boost client and my BN (Nimbus v22.7.0), I see the following logs:
```
mev-boost_1 | time="2022-08-12T00:08:00Z" level=info msg="http: GET /eth/v1/builder/status 200" duration=0.172181701 method=GET module=service path=/eth/v1/builder/status status=200
mev-boost_1 | time="2022-08-12T00:08:00Z" level=warning msg="error calling registerValidator on relay" error="HTTP error response: 400 / {\"code\":400,\"message\":\"not a known validator: 0xb440a2621abcda9f2af03b31040d62cd5ea26a9aff16d09003c1cb566fc45da1b67924384375c460a0bf1b3c187ec9b1\"}\n" method=registerValidator module=service numRegistrations=36 ua="nim-presto/0.0.3 (arm64/linux)" url="https://builder-relay-goerli.flashbots.net/eth/v1/builder/validators?id=rocketpool"
mev-boost_1 | time="2022-08-12T00:08:00Z" level=info msg="http: POST /eth/v1/builder/validators 502" duration=0.117795912 method=POST module=service path=/eth/v1/builder/validators status=502
```
This same set of logs appears during every registration.
Here's what Nimbus reports (different timestamp, but same error):
```
eth2_1 | INF 2022-08-12 04:43:12.000+00:00 Slot start topics="beacnde" slot=3647616 epoch=113988 sync=synced peers=20 head=97449245:3647615 finalized=113985:0e76a2b3 delay=614us863ns
eth2_1 | WRN 2022-08-12 04:43:12.385+00:00 registerValidators: Couldn't register validator with MEV builder topics="beacval" registerValidatorResult="(status: 502, contentType: \"application/json\", data: @[123, 34, 99, 111, 100, 101, 34, 58, 53, 48, 50, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 110, 111, 32, 115, 117, 99, 99, 101, 115, 115, 102, 117, 108, 32, 114, 101, 108, 97, 121, 32, 114, 101, 115, 112, 111, 110, 115, 101, 34, 125, 10])"
```
Here is the offending validator, which was exited back in December: https://prater.beaconcha.in/validator/0xb440a2621abcda9f2af03b31040d62cd5ea26a9aff16d09003c1cb566fc45da1b67924384375c460a0bf1b3c187ec9b1
I don't know if this is preventing me from registering properly and proposing MEV-boost blocks as I haven't received any yet, but I'll report back when I get a slot.
Contributor guide
Research direction
Start at the POST /eth/v1/builder/validators endpoint and the registerValidator routine described in the logs. Reproduce registration with a validator that has exited but remains loaded by the VC, then trace how the relay's 400 response becomes a 502. Done means the intended behavior for exited validators is established and registration no longer produces an inappropriate failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- api, backend-api-design
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100