flashbots / flashbots/mev-boost

502 During Validator Registration with an Exited Validator

Open
#245 14 comments 1 reaction 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.