mev-boost icon indicating copy to clipboard operation
mev-boost copied to clipboard

Relay multiplexing

Open faheelsattar opened this issue 4 months ago • 0 comments

📝 Summary

Introduces a muxing feature to mev-boost that enables different sets of validators to connect to different sets of relays. This addresses a significant operational need for large-scale validator operations.

See also: https://collective.flashbots.net/t/muxing-in-mev-boost-to-handle-diverse-relay-sets/5231/2

Each policy contains:

  • name: a unique identifier for the policy
  • relayers: a list of relay configurations including:
    • name: relay identifier
    • url: the relay endpoint URL
    • http-header: optional custom http headers

Each mapping contains:

  • name: name for the mapping
  • policy: references a policy defined in the policies section
  • filters: criteria for selecting which validators use this policy:
    • public_keys: list of validator public keys

Example config:

policies:
  - name: "lido-policy"
    relayers:
      - name: "relayer-1"
        url: "0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246@relay.relayer1.net"
      - name: "relayer-2"
        url: "0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246@relay.relayer2.com"
        http-header:
          X-Custom-Header: "custom-value"
  - name: "rocket-pool-policy"
    relayers:
      - name: "relayer-1"
        url: "0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246@relay.relayer1.io"
      - name: "relayer-2"
        url: "0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246@relay.relayer2.com"

mappings:
  - name: "lido-validators"
    policy: "lido-policy"
    filters:
      public_keys:
        - "0x8a1d7b8dd64e0aafe7ea7b6c95065c9364cf99d38470c12ee807d55f7de1529ad29ce2c422e0b65e3d5a05c02caca249"
        - "0x8b1d7b8dd64e0aafe7ea7b6c95065c9364cf99d38470c12ee807d55f7de1529ad29ce2c422e0b65e3d5a05c02caca250"
        - "0x8c1d7b8dd64e0aafe7ea7b6c95065c9364cf99d38470c12ee807d55f7de1529ad29ce2c422e0b65e3d5a05c02caca251"
  - name: "rocket-pool-validators"
    policy: "rocket-pool-policy"
    filters:
      public_keys:
        - "0x8d1d7b8dd64e0aafe7ea7b6c95065c9364cf99d38470c12ee807d55f7de1529ad29ce2c422e0b65e3d5a05c02caca252"
        - "0x8e1d7b8dd64e0aafe7ea7b6c95065c9364cf99d38470c12ee807d55f7de1529ad29ce2c422e0b65e3d5a05c02caca253"
        - "0x8f1d7b8dd64e0aafe7ea7b6c95065c9364cf99d38470c12ee807d55f7de1529ad29ce2c422e0b65e3d5a05c02caca254"

✅ I have run these commands

  • [x] make lint
  • [ ] make test-race
  • [x] go mod tidy

faheelsattar avatar Sep 18 '25 22:09 faheelsattar