Try   HackMD

WIP!!! Validator Client: Fee Recipient with MEV Boost ( custom builder) changes

This document is experimental and subject to change

This document describes the changes being made to existing flags to support the Builder API and custom block builders such as MEV.

Summary of changes

  • New suggested fee recipient builder flag
  • Name change for fee-recipient-config-file and fee-recipient-config-url flags to validator-config-file and validator-config-url
  • Update fee-recipient-config to include optional gas limit, and builder-fee-recipient-override field
  • Include Yaml parsing for validator-config-file

Current Fee Recipient Config based on Teku Implementation

JSON file for defining validator public key to eth address
This will allow you to map your validators to corresponding eth addresses or generally cover the remaining keys with a default.

{
  "proposer_config": {
    "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": {
      "fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3",
    }
  },
  "default_config": {
    "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A"
  }
}

proposer_config is optional
default_config is mandatory
fee_recipient is mandatory in each config

Current Flags

Validator Client

  • suggested-fee-recipient to set default eth address for ALL validators.
    ( i.e. suggested-fee-recipient=0x046Fb65722E6b0000012BFEBf6177F1D2e9758D9)
  • fee-recipient-config-file to set file location for fee recipient json.
    ( i.e. fee-recipient-config-file=./fee_recipient_config.json)
  • fee-recipient-config-url to set URL for fee recipient json.
    ( i.e. fee-recipient-config-url=http://example.com/api/getFeeRecipient)

suggested fee recipient flag will override the configuration file.

you can not use both the file and url flags at the same time.

the validator client will send the fee recipient information at startup for all public keys that are active
as well as when the public key becomes active. It does this by calling the beacon api prepareBeaconProposer

Beacon Node

  • suggested-fee-recipient to set default eth address from validator client cli
    ( i.e. suggested-fee-recipient=0x046Fb65722E6b0000012BFEBf6177F1D2e9758D9)

this sets the fall back default fee recipient on the beacon node if the validator restarts without fee recipient flags set

The beacon node will cache fee recipient information locally to be persistent.

No Flags

by default Prysm uses the eth burn address (0x0000)

Updated Config Changes

New Flags and Changes to Old Flags

  • Newsuggested-builder-fee-recipient flag: a new flag that can be used to set the fee recipient for the custom builder.
    note: flag can be used with suggested-fee-recipient together as the prepare beacon proposer api will still be used as a fall back for the custom builder. This flag will be unavailable with

  • Name change for fee-recipient-config-file and fee-recipient-config-url flags to validator-config-file and validator-config-url : This is to make the configurations more generic for future field additions.

Config Changes

  • new support for yaml (i.e.)
​---
proposer_config:
​ '0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a':
​   fee_recipient: '0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3'
default_config:
​ fee_recipient: '0x6e35733c5af9B61374A128e6F85f553aF09ff89A'
  • include optional gas limit(uint64 with default 30M),builder-fee-recipient(hex string eth address), and the enable custom builder field(bool) (i.e.)
 ---
proposer_config:
  '0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a':
    fee_recipient: '0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3'
    builder-fee-recipient-override: '0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3'
    gas_limit: 30000000
default_config:
  fee_recipient: '0x6e35733c5af9B61374A128e6F85f553aF09ff89A'
  builder-fee-recipient-override: '0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3'
  gas_limit: 30000000
  • gas limit ( optional): maximum gas for building the block with a default of 30M
  • builder-fee-recipient-override ( required if using custom builder): the fee recipient used for the builder which can be the same fee recipient as for the execution client