Repository navigation
FIX: retire dead MEV relays and Holesky network - #2309
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MEV relay cleanup, Holesky retirement, and lint/dep fixes
Health-checked every relay, retired Holesky from the offering, and fixed the Ansible lint tooling that had never actually been running.
6fc0e928MEV relay fixesChecked all 11 relay entries (18 URLs) against mev-boost's
/eth/v1/builder/statusplus a delivered-payload query. Four hostnames were NXDOMAIN (verified via 1.1.1.1 and 8.8.8.8):Also: Flashbots Sepolia was live and delivering, but Stereum shipped pubkey
0x845bd072...against the advertised0xafa4c698.... A stale pubkey makes mev-boost reject every bid as an invalid signature, so Sepolia's only relay was silently useless. Fixed.793be64cHolesky removed from the offeringFollows the repo's existing pattern for retired networks (goerli and prater remain in backend maps but not
networkList). Removed Holesky from the network list, its 4 checkpoint-sync sources, theConsensusSyncmapping, the edit-page service filter, and the one-click Lido fee address.Deliberately kept everything existing Holesky nodes depend on:
NodeService.networks.holesky, the network-switch regexes, contract lookups, and the 2.4.2/2.4.4 migrations. A full scrub would breakValidatorAccountManager.js:74for anyone still running one.Adjacent bug fixed in the same switch:
ConsensusSynckeyed checkpoint sources off positional network ids, which had drifted.case 5served Hoodi's sources but id 5 is OP Sepolia, so Hoodi users got no checkpoint sources at all. Now keyed off network name.a3126f362.5.1 Ansible migrationNew
update-changesmigration so existing servers get repaired, not just fresh installs: drops the two retired relays from the-relaysentrypoint and refreshes the Sepolia pubkey. Diff-guarded, so it's a no-op once applied. Holesky relays untouched.If every configured relay was retired, it leaves the config alone and warns. mev-boost won't start on an empty
-relays, and picking a replacement is a censorship-policy decision.Landed in 2.5.1 (2.5.0 has shipped). Adds molecule scenario
251with five fixtures (mixed, sepolia, all-retired, already-healthy, holesky) and registers it in the CI matrix, which enumerates scenarios explicitly and would otherwise never have run it.db17747fWorking lint toolingpyproject.tomlrequestedmolecule = {extras = ["docker-lint"]}, but molecule 25.12 declares no extras at all, so yamllint and ansible-lint were never installed. CI'spip install "molecule[docker.lint]"was the same no-op. Molecule 25+ also dropped thelintsubcommand, so everylint:block inmolecule.ymlwas dead code.controls/.yamllintlint-ansible.yml, gating onpull_request, the first Ansible check that actually gates a PRyamllint blocks; ansible-lint is informational for now, as the tree carries ~4,850 findings.
88064c8fDependency bumpMirrored across 112
pip installlines in the workflow, adding==pins to the three packages CI previously installed unpinned so the two sides can't drift again.c819c7c0,0d8e6732Integration test fixesPrysm's key import can't work on an unsynced node, so the test now calls
ValidatorAccountManager.initWallet()directly. That's the same functionimportKeycalls first, so this keeps real wallet-generation coverage while dropping the import and its key-count assertions.Running all 17 integration tests confirmed this is Prysm-specific: Lighthouse, Nimbus, and Teku all import fine unsynced. That sweep also caught Lodestar asserting a log line it no longer emits ("have same the config" is now "have the same config"), fixed in
0d8e6732.