Skip to content
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

Upcoming mev-boost release: v1.4.0 #377

Closed
metachris opened this issue Oct 19, 2022 · 21 comments
Closed

Upcoming mev-boost release: v1.4.0 #377

metachris opened this issue Oct 19, 2022 · 21 comments
Labels
next up It's next up testing

Comments

@metachris
Copy link
Collaborator

metachris commented Oct 19, 2022

A number of improvements have accumulated since the last release (v1.3.2 on September 22, 2022), and it's time to think about the next release v1.4.0!

These are the already merged changes since the last release:

Would love to hear any comments, concerns, thoughts!

The process would be:

  1. merge any remaining PRs that we want in the release
  2. test for a few some time on testnets (Goerli, Sepolia) in partnership with node operators
  3. release
@metachris
Copy link
Collaborator Author

metachris commented Oct 20, 2022

@metachris
Copy link
Collaborator Author

metachris commented Oct 21, 2022

Prepared release candidate 1: mev-boost v1.4.0-rc1

@metachris
Copy link
Collaborator Author

metachris commented Oct 21, 2022

Help output with cli args:

$ docker run flashbots/mev-boost:1.4.0-rc1 -help
Usage of /app/mev-boost:
  -addr string
        listen-address for mev-boost server (default "localhost:18550")
  -debug
        shorthand for '-loglevel debug'
  -genesis-fork-version string
        use a custom genesis fork version
  -goerli
        use Goerli
  -json
        log in JSON format instead of text
  -log-no-version
        disables adding the version to every log entry
  -log-service string
        add a 'service=...' tag to all log messages
  -loglevel string
        minimum loglevel: trace, debug, info, warn/warning, error, fatal, panic (default "info")
  -mainnet
        use Mainnet
  -min-bid float
        minimum bid to accept from a relay [eth]
  -relay value
        a single relay, can be specified multiple times
  -relay-check
        check relay status on startup and on the status API call
  -relay-monitor value
        a single relay monitor, can be specified multiple times
  -relay-monitors string
        relay monitor urls - single entry or comma-separated list (scheme://host)
  -relays string
        relay urls - single entry or comma-separated list (scheme://pubkey@host)
  -request-timeout-getheader int
        timeout for getHeader requests to the relay [ms] (default 950)
  -request-timeout-getpayload int
        timeout for getPayload requests to the relay [ms] (default 4000)
  -request-timeout-regval int
        timeout for registerValidator requests [ms] (default 3000)
  -sepolia
        use Sepolia
  -version
        only print version

@metachris metachris added next up It's next up testing labels Oct 21, 2022
@metachris
Copy link
Collaborator Author

Found an issue in requesting gzip encoded responses. Fix: #382 (v1.4.0-rc3 Docker image)

@metachris
Copy link
Collaborator Author

Turns out, Go http requests add Accept-Encoding: gzip automatically (and do the decoding). And if the header is set manually then it wouldn't auto decode. See also #383

Also merged #380 with minor cleanup

@nalepae
Copy link
Contributor

nalepae commented Oct 24, 2022

Tested rc3 during 2 days and rc4 for a few hours on Sepolia (100 keys, proposing very often).
100% block proposals using Sepolia Flashbots relay success.

(Also tested on Goerli)

@metachris
Copy link
Collaborator Author

This release will be out within a week or so.

The reason for being slow to roll out include (a) ongoing discussions about whether to include #297, (b) wanting to add this release to this week's CL call, and (c) me being on vacation until Thursday.

@metachris
Copy link
Collaborator Author

Merged two more notable PRs:

And a few minor PRs. See v1.4.0-rc4...v1.4.0-rc5

Prepared v1.4.0-rc5

last expected release candidate

@metachris
Copy link
Collaborator Author

metachris commented Nov 4, 2022

Should we remove the strict json decoding from the getPayload call to accomodate future consensus changes in a backwards-compatible manner? And add this to the current release?

For instance the upcoming Capella and EIP-4844 changes will modify certain payloads, which would guarantee to break in the current mev-boost version because of the strict JSON payload decoding (disallowing unknown fields). See also #392 for more details about the specific changes.

@metachris
Copy link
Collaborator Author

We may also want to revert #299 now, since it would incorrectly alert to have received a different block hash once the new payload fields are live.

@ralexstokes
Copy link
Collaborator

ralexstokes commented Nov 4, 2022

is it not better to keep the strict {en,de}coding and instead just support versioned types? -- we have to address this problem in e.g. the beacon APIs so we can just do something similar here

@metachris
Copy link
Collaborator Author

metachris commented Nov 4, 2022

The strict en/decoding is only used in a single place (decoding the getPayload request body from the beacon node), where it doesn't actually serve a purpose, since the full payload is already read before (therefore it wouldn't protect from resource exhaustion).

I think it'd be better to remove the constraint in the decoding, which has no downsides but leaves more options open for the future. Fwiw, i've heard various opinions from CL devs about adding a new API version in the builder specs for each payload change vs adding it in a backwards compatible way.

@jtraglia
Copy link
Collaborator

jtraglia commented Nov 4, 2022

Wouldn't there still be a problem? The SignedBlindedBeaconBlock from the BN will most likely have an additional field (like bls_to_execution_changes). The block in mev-boost wouldn't have that field, it would send the signed blinded block with a missing field to the relay, and it would then fail the signature check, right?

@metachris
Copy link
Collaborator Author

Yeah @jtraglia that is correct. I think we can leave the json as is for now, and it will be a mandatory mev-boost upgrade along with EL+CL anyway. Cutting a new, possibly final, release candidate now.

@metachris
Copy link
Collaborator Author

metachris commented Nov 7, 2022

Created a new release candidate based on current main. Feature freeze.

v1.4.0-rc6

Next steps:

  • Waiting for @ralexstokes to tell us whether to use his relay monitor server in the rc testing
  • Testing on testnets by node operators
  • Release later this week

@metachris
Copy link
Collaborator Author

ETA for publishing this release is tomorrow - Wednesday Nov. 9, 2022.

@nalepae
Copy link
Contributor

nalepae commented Nov 9, 2022

I have some error messages:

time="2022-11-09T08:34:00Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T08:40:00Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T08:40:24Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T08:46:24Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T08:46:48Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T08:52:48Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T08:53:12Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T08:59:12Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T08:59:36Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T09:05:36Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T09:06:00Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T09:12:00Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T09:12:24Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T09:15:36Z" level=warning msg="error sending auction transcript to relay monitor" error="HTTP error response: 502 / " method=sendAuctionTranscriptToRelayMonitors url="https://sepolia.relay-monitor.pbs.dev/monitor/v1/transcript" version=v1.4.0-rc6
time="2022-11-09T09:18:24Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6
time="2022-11-09T09:18:48Z" level=warning msg="error calling registerValidator on relay monitor" error="HTTP error response: 502 / " method=sendValidatorRegistrationsToRelayMonitors numRegistrations=50 url="https://sepolia.relay-monitor.pbs.dev/eth/v1/builder/validators" version=v1.4.0-rc6

Args:

      --relay-check
      --relay-monitor=https://sepolia.relay-monitor.pbs.dev
      --relays=https://0x845bd072b7cd566f02faeb0a4033ce9399e42839ced64e8b2adcfc859ed1e8e1a5a293336a49feac6d9a5edb779be53a@builder-relay-sepolia.flashbots.net
      --sepolia

@nalepae
Copy link
Contributor

nalepae commented Nov 9, 2022

Also:

time="2022-11-08T21:31:48Z" level=error msg="relay status error - request failed" error="Get \"https://builder-relay-sepolia.flashbots.net/eth/v1/builder/status\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)" url="https://builder-relay-sepolia.flashbots.net/eth/v1/builder/status" version=v1.4.0-rc6
time="2022-11-08T21:31:48Z" level=warning msg="error making request to relay" error="Get \"https://builder-relay-sepolia.flashbots.net/eth/v1/builder/header/1017459/0x4c775e3bcbc9dc42f6ab2b3ec5a11145de28de8388f677136693dd590d5f9953/0xb0d4231814e40e53ab4eed8333d418a6e2e4bd3910148b610dec5f91961df1ad63f4661d533137a503d809ea1ad576fa\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)" method=getHeader parentHash=0x4c775e3bcbc9dc42f6ab2b3ec5a11145de28de8388f677136693dd590d5f9953 pubkey=0xb0d4231814e40e53ab4eed8333d418a6e2e4bd3910148b610dec5f91961df1ad63f4661d533137a503d809ea1ad576fa slot=1017459 url="https://builder-relay-sepolia.flashbots.net/eth/v1/builder/header/1017459/0x4c775e3bcbc9dc42f6ab2b3ec5a11145de28de8388f677136693dd590d5f9953/0xb0d4231814e40e53ab4eed8333d418a6e2e4bd3910148b610dec5f91961df1ad63f4661d533137a503d809ea1ad576fa" version=v1.4.0-rc6

@metachris
Copy link
Collaborator Author

Thanks @nalepae 🙏

  • The first errors are the relay monitor from @ralexstokes being down currently, and are fine to disregard
  • The second errors are status and getHeader timeout on the Sepolia relay, which is also fine

@nalepae
Copy link
Contributor

nalepae commented Nov 9, 2022

@metachris
Copy link
Collaborator Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
next up It's next up testing
Projects
None yet
Development

No branches or pull requests

4 participants