diff --git a/docs/Concepts/Builder-Network.md b/docs/Concepts/Builder-Network.md index bf260e1f1..64a79aaa3 100644 --- a/docs/Concepts/Builder-Network.md +++ b/docs/Concepts/Builder-Network.md @@ -4,18 +4,21 @@ description: Builder network and MEV-Boost # Builder network and MEV-Boost -When [The Merge](Merge.md) completes, [consensus clients](Merge.md#consensus-clients) -will be responsible for proposing blocks containing an execution payload obtained -from their local [execution clients](Merge.md#execution-clients) via the Engine API. +[Consensus clients](Merge.md#consensus-clients) are responsible for proposing blocks containing an +execution payload obtained from their local [execution clients](Merge.md#execution-clients) via the +Engine API. -A consensus client can optionally configure an external builder and -delegate the execution payload construction to it, instead of using the execution client. +A consensus client can optionally configure an external builder and delegate the execution payload +construction to it, instead of using the execution client. ## MEV-Boost -The most common builder deployment is to run a specialised external software such as [MEV-Boost](https://github.com/flashbots/mev-boost). -MEV-Boost works by requesting a payload proposal from several entities (called relays), and selecting the best bid -in order to improve validator rewards and increase the maximal extractable value (MEV). +The most common builder deployment is to run a specialized external software such as [MEV-Boost](https://github.com/flashbots/mev-boost). +MEV-Boost works by requesting a payload proposal from several entities (called relays), and +selecting the best bid in order to improve validator rewards and increase the maximal extractable +value (MEV). -Teku allows you to [configure the beacon node to use a builder network](../HowTo/Builder-Network.md) to generate execution payloads. -In case of failures or non-timely responses, Teku will fall back to the payload produced by the local execution client specified with [`ee-endpoint`](../Reference/CLI/CLI-Syntax.md#ee-endpoint). +Teku allows you to [configure the beacon node to use a builder network](../HowTo/Configure/Builder-Network.md) +to generate execution payloads. +In case of failures or non-timely responses, Teku falls back to the payload produced by the local +execution client specified using [`ee-endpoint`](../Reference/CLI/CLI-Syntax.md#ee-endpoint). diff --git a/docs/HowTo/Builder-Network.md b/docs/HowTo/Builder-Network.md deleted file mode 100644 index cb55d8aaf..000000000 --- a/docs/HowTo/Builder-Network.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -description: How to connect to a builder network ---- - -# Connect to a builder network - -You can connect to a [builder network](../Concepts/Builder-Network.md) to generate execution -payloads for the [consensus client](../Concepts/Merge.md#consensus-clients). - -The builder recommends new blocks that are validated by the consensus client. -If the builder goes down, the local execution client proposes a block instead. - -## Configure an endpoint - -To configure a builder endpoint: - -* [enable blinded block production](#enable-blinded-block-production) -* [specify the builder endpoint](#specify-the-builder-endpoint) -* [register the validator](#register-the-validator) - -### Enable blinded block production - -Enable blinded block production using the [`--validators-proposer-blinded-blocks-enabled`](../Reference/CLI/CLI-Syntax.md#validators-proposer-blinded-blocks-enabled) command line option. - -!!! note - - If [--validators-builder-registration-default-enabled](../Reference/CLI/CLI-Syntax.md#validators-builder-registration-default-enabled) is set to `true`, then `--validators-proposer-blinded-blocks-enabled` is automatically enabled, so you don't need to set it explicitly. - -### Specify the builder endpoint - -Specify the builder endpoint using [`--builder-endpoint`](../Reference/CLI/CLI-Syntax.md#builder-endpoint) - -```bash ---builder-endpoint="https://builder-relay-sepolia.flashbots.net/" -``` - -View the [list of relay endpoints](https://github.com/flashbots/mev-boost#usage) for available endpoints. - -You can also use external software such as [MEV-Boost](https://github.com/flashbots/mev-boost) to connect to multiple relays: - -```bash ---builder-endpoint=http://127.0.0.1:18550 -``` - -### Register the validator - -You must register your validator with the builder before proposing a block. -Enable registration for all validators using [`--validators-builder-registration-default-enabled`](../Reference/CLI/CLI-Syntax.md#validators-builder-registration-default-enabled) - -To enable registration for specific validators only, use the -[--validators-proposal-config](../Reference/CLI/CLI-Syntax.md#validators-proposer-config) option -and specify the enabled validators in the `proposer_config` of the proposer configuration JSON file. - -Note the `default_config` applies to all validators who don't have their own proposer configuration. - -!!! example "`proposerConfig.json`" - - ```json - { - "proposer_config": { - "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": { - "fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3", - "builder": { - "enabled": true, - "gas_limit": "12345654321" - } - } - }, - "default_config": { - "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A", - "builder": { - "enabled": false - } - } - } - ``` - - In this example, validator `0xa057816...` is registered with the builder, - but any validator using the default configuration is not. - -!!! note - - If you use a proposer configuration, you must enable blinded block production using [`--validators-proposer-blinded-blocks-enabled`](../Reference/CLI/CLI-Syntax.md#validators-proposer-blinded-blocks-enabled) - -### Example builder configurations - -!!! example "Validator client and beacon node in a single process" - - ```bash - teku --validators-proposer-default-fee-recipient="0x6e35733c5af9B61374A128e6F85f553aF09ff89A" --ee-endpoint="http://127.0.0.1:8551" --ee-jwt-secret-file="/etc/jwt-secret.hex" --validators-builder-registration-default-enabled=true --builder-endpoint="http://127.0.0.1:18550" - ``` - -!!! example "Validator client and beacon node in separate processes" - - === "Validator client parameters" - - ```bash - teku validator-client --validators-proposer-blinded-blocks-enabled=true --validators-proposer-config="/etc/teku/proposerConfig.json" - ``` - - === "Proposer configuration" - - ```json - { - "proposer_config": { - "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": { - "fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3", - } - }, - "default_config": { - "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A", - "builder": { - "enabled": true - } - } - } - ``` - - === "Beacon node paramaters" - - ```bash - teku --validators-proposer-default-fee-recipient="0x6e35733c5af9B61374A128e6F85f553aF09ff89A" --ee-endpoint="http://127.0.0.1:8551" --ee-jwt-secret-file="/etc/jwt-secret.hex" --builder-endpoint="http://127.0.0.1:18550" - ``` diff --git a/docs/HowTo/Configure/Builder-Network.md b/docs/HowTo/Configure/Builder-Network.md new file mode 100644 index 000000000..1cb71f256 --- /dev/null +++ b/docs/HowTo/Configure/Builder-Network.md @@ -0,0 +1,140 @@ +--- +description: How to connect to a builder network +--- + +# Configure Teku to use a builder network + +You can connect to a [builder network](../../Concepts/Builder-Network.md) to generate execution +payloads for the [consensus client](../../Concepts/Merge.md#consensus-clients). + +The builder recommends new blocks that are validated by the consensus client. +If the builder goes down, the local execution client proposes a block instead. + +To configure Teku to use a builder network: + +1. [Enable blinded block production.](#1-enable-blinded-block-production) +1. [Specify the builder endpoint.](#2-specify-the-builder-endpoint) +1. [Register the validator.](#3-register-the-validator) + +## 1. Enable blinded block production + +Enable blinded block production using the [`--validators-proposer-blinded-blocks-enabled`](../../Reference/CLI/CLI-Syntax.md#validators-proposer-blinded-blocks-enabled) +command line option. + +!!! note + + If [--validators-builder-registration-default-enabled](../../Reference/CLI/CLI-Syntax.md#validators-builder-registration-default-enabled) + is set to `true`, then `--validators-proposer-blinded-blocks-enabled` is automatically enabled. + +## 2. Specify the builder endpoint + +Specify the builder endpoint using the [`--builder-endpoint`](../../Reference/CLI/CLI-Syntax.md#builder-endpoint) +command line option. + +!!! example + + ```bash + --builder-endpoint="https://builder-relay-sepolia.flashbots.net/" + ``` + +View the [list of relay endpoints](https://github.com/flashbots/mev-boost#usage) for available endpoints. + +You can also use external software such as [MEV-Boost](https://github.com/flashbots/mev-boost) to +connect to multiple relays. + +!!! example + + ```bash + --builder-endpoint=http://127.0.0.1:18550 + ``` + +## 3. Register the validator + +You must register your validator with the builder before proposing a block. +Enable registration for all validators using the [`--validators-builder-registration-default-enabled`](../../Reference/CLI/CLI-Syntax.md#validators-builder-registration-default-enabled) +command line option. + +To enable registration for specific validators only, use the +[`--validators-proposal-config`](../../Reference/CLI/CLI-Syntax.md#validators-proposer-config) option +and specify the enabled validators in the `proposer_config` field of the [proposer configuration file](Proposer-Configuration.md). + +!!! example "`proposerConfig.json`" + + ```json + { + "proposer_config": { + "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": { + "fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3", + "builder": { + "enabled": true, + "gas_limit": "12345654321" + } + } + }, + "default_config": { + "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A", + "builder": { + "enabled": false + } + } + } + ``` + + In this example, validator `0xa057816...` is registered with the builder, + but any validator using the default configuration isn't. + +!!! note + + If you use a proposer configuration, you must enable blinded block production using + [`--validators-proposer-blinded-blocks-enabled`](../../Reference/CLI/CLI-Syntax.md#validators-proposer-blinded-blocks-enabled). + +## Example builder configurations + +!!! example "Validator client and beacon node in a single process" + + ```bash + teku \ + --validators-proposer-default-fee-recipient="0x6e35733c5af9B61374A128e6F85f553aF09ff89A" \ + --ee-endpoint="http://127.0.0.1:8551" \ + --ee-jwt-secret-file="/etc/jwt-secret.hex" \ + --validators-builder-registration-default-enabled=true \ + --builder-endpoint="http://127.0.0.1:18550" + ``` + +!!! example "Validator client and beacon node in separate processes" + + Validator client parameters: + + ```bash + teku validator-client \ + --validators-proposer-blinded-blocks-enabled=true \ + --validators-proposer-config="/etc/teku/proposerConfig.json" + ``` + + Proposer configuration: + + ```json + { + "proposer_config": { + "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": { + "fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3", + } + }, + "default_config": { + "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A", + "builder": { + "enabled": true + } + } + } + ``` + + Beacon node paramaters: + + ```bash + teku \ + --validators-proposer-default-fee-recipient="0x6e35733c5af9B61374A128e6F85f553aF09ff89A" \ + --ee-endpoint="http://127.0.0.1:8551" \ + --ee-jwt-secret-file="/etc/jwt-secret.hex" \ + --builder-endpoint="http://127.0.0.1:18550" + ``` diff --git a/docs/HowTo/Configure/Proposer-Configuration.md b/docs/HowTo/Configure/Proposer-Configuration.md new file mode 100644 index 000000000..b907797ca --- /dev/null +++ b/docs/HowTo/Configure/Proposer-Configuration.md @@ -0,0 +1,240 @@ +--- +title: Use a proposer configuration file +--- + +# Use a proposer configuration file + +You can define complex fee recipient and [builder network](Builder-Network.md) configurations for +multiple validators using a proposer configuration file. +Specify the proposer configuration file using the +[`--validators-proposer-config`](../../Reference/CLI/CLI-Syntax.md#validators-proposer-config) +command line option. + +!!! note + + To define a single default fee recipient for all validator keys, use the + [`--validators-proposer-default-fee-recipient`](../../Reference/CLI/CLI-Syntax.md#validators-proposer-default-fee-recipient) + option instead. + +## Proposer configuration file attributes + +The proposer configuration file is a JSON file that specifies: + +* `default_config` - (required) A default proposer configuration containing all default values to be + applied to every validator. + These values can be overridden for specific validators in `proposer_config`. +* `proposer_config` - (optional) A proposer configuration for multiple validator public keys. + +Attributes for each proposer configuration are: + +* `fee_recipient` - (optional in `proposer_config` but required in `default_config`) + The fee recipient to use when proposing blocks. +* `builder` - (optional) The [builder network configuration](Builder-Network.md), which includes the + following attributes: + * `enabled` - (optional in `proposer_config` but required in `default_config`) Indicates whether + to use the [builder endpoint](../../Reference/CLI#builder-endpoint) when proposing blocks. + The default is `false`. + * `gas_limit` - (optional) Gas limit for the builder. + The default is `30000000`. + * `registration_overrides` - (optional) Dedicated overrides to use during the registration process. + Useful for distributed validator technology (DVT) and secret shared validator (SSV) technology. + The override is specified using the following attributes: + * `timestamp` - (optional) Timestamp to be used (instead of the current time) in the validator + registration message. + * `public_key` - (optional in `proposer_config` but forbidden in `default_config`) Public + key to be used (instead of the validator's public key) in the validator registration message. + +Each attribute value, for a given validator key, is determined using the following priority: + +1. Specific configuration in `proposer_config` +1. Default configuration in `default_config` +1. Default CLI argument (applicable only to `builder.enabled`) +1. Default value (applicable only to `builder.enabled`) + +## Example configuration file + +```json +{ + "proposer_config": { + "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": { + "fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3", + "builder": { + "enabled": true, + "gas_limit": "35000000" + } + }, + "0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c": { + "builder": { + "enabled": true + } + }, + }, + "default_config": { + "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A", + "builder": { + "enabled": false, + "gas_limit": "25000000" + } + } +} +``` + +In this example, validator `0xa0578...` is configured as: + +```json +"fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3", +"builder": { + "enabled": true, + "gas_limit": "35000000" +} +``` + +Validator `0xa99a7...` is configured as: + +```json +"fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A", +"builder": { + "enabled": true, + "gas_limit": "25000000" +} +``` + +All other validators are configured as: + +```json +"fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A", +"builder": { + "enabled": false, + "gas_limit": "25000000" +} +``` + +## Example configuration file and CLI argument + +The following is an example proposer configuration in conjunction with a CLI argument. + +```json +{ + "proposer_config": { + "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": { + "fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3", + "builder": { + "gas_limit": "35000000" + } + }, + "0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c": { + "builder": { + "enabled": false + } + }, + }, + "default_config": { + "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A", + } +} +``` + +If [`--validators-builder-registration-default-enabled`](../../Reference/CLI/CLI-Syntax.md#validators-builder-registration-default-enabled) +is set to `true`: + +* Validator `0xa0578...` is configured as: + + ```json + "fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3", + "builder": { + "enabled": true, + "gas_limit": "35000000" + } + ``` + +* Validator `0xa99a7...` is configured as: + + ```json + "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A" + "builder": { + "enabled": false, + "gas_limit": "30000000" + } + ``` + +* All other validators are configured as: + + ```json + "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A", + "builder": { + "enabled": true, + "gas_limit": "30000000" + } + ``` + +If [`--validators-builder-registration-default-enabled`](../../Reference/CLI/CLI-Syntax.md#validators-builder-registration-default-enabled) +isn't specified (or set to `false`): + +* Validator `0xa0578...` is configured as: + + ```json + "fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3", + "builder": { + "enabled": false, + "gas_limit": "35000000" + } + ``` + +* Validator `0xa99a7...` is configured as: + + ```json + "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A", + "builder": { + "enabled": false, + "gas_limit": "30000000" + } + ``` + +* All other validators are configured as: + + ```json + "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A", + "builder": { + "enabled": false, + "gas_limit": "30000000" + } + ``` + +## Example configuration file using DVT and SSV + +The following is a proposer configuration example using distributed validator technology (DVT) and +secret shared validator (SSV) technology. + +```json +{ + "proposer_config": { + "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": { + "builder": { + "registration_overrides": { + "public_key": "0xaef9162ee6f29ee82fbfe387756d84f9ac472eb8709217aaf28f5ef0ea273f6210e531496470b30d2b7747216e3672d5" + } + } + }, + "0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c": { + "builder": { + "registration_overrides": { + "public_key": "0xb53d21a4cfd562c469cc81514d4ce5a6b577d8403d32a394dc265dd190b47fa9f829fdd7963afdf972e5e77854051f6f" + } + } + }, + }, + "default_config": { + "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A", + "builder": { + "enabled": true, + "registration_overrides": { + "timestamp": "1669285248" + } + } + } +} +``` + +In this example, the builder is enabled by default, with `timestamp` registration override. +Each validator has its own `public_key` override. +All validators use the same `0x6e35733c5af9B61374A128e6F85f553aF09ff89A` as `fee_recipient`. diff --git a/docs/HowTo/Prepare-for-The-Merge.md b/docs/HowTo/Prepare-for-The-Merge.md index 6e3654585..529633406 100644 --- a/docs/HowTo/Prepare-for-The-Merge.md +++ b/docs/HowTo/Prepare-for-The-Merge.md @@ -83,7 +83,7 @@ the [`validators-proposer-default-fee-recipient`](../Reference/CLI/CLI-Syntax.md option. This fee recipient will be used for any duties performed by the beacon node. -For more complex configurations, provide a proposer configuration file that defines the default fee recipient plus +For more complex configurations, provide a [proposer configuration file](Configure/Proposer-Configuration.md) that defines the default fee recipient plus non-default fee recipients for any validators using the [`validators-proposer-config`](../Reference/CLI/CLI-Syntax.md#validators-proposer-config) option. diff --git a/docs/Reference/CLI/CLI-Syntax.md b/docs/Reference/CLI/CLI-Syntax.md index b9ba1aa0a..85e1a3d83 100644 --- a/docs/Reference/CLI/CLI-Syntax.md +++ b/docs/Reference/CLI/CLI-Syntax.md @@ -74,7 +74,7 @@ teku --Tab+Tab builder-endpoint: "http://127.0.0.1:18550" ``` -Specifies the address for an external [builder endpoint](../../HowTo/Builder-Network.md). +Specifies the address for an external [builder endpoint](../../HowTo/Configure/Builder-Network.md). ### config-file @@ -1996,7 +1996,8 @@ When specifying file names, Teku expects that the files exist. validators-builder-registration-default-enabled: true ``` -Set to `true` to have all validators managed by the validator client register to the [builder endpoint](../../HowTo/Builder-Network.md) when proposing a block. +Set to `true` to have all validators managed by the validator client register to the +[builder endpoint](../../HowTo/Configure/Builder-Network.md) when proposing a block. ### validators-early-attestations-enabled @@ -2444,7 +2445,8 @@ When `LOGGING` is enabled, attestation and block performance is reported as log validators-proposer-blinded-blocks-enabled: true ``` -Set to `true` to enable blinded blocks production, a prerequisite for the [builder network](../../HowTo/Builder-Network.md). +Set to `true` to enable blinded blocks production, a prerequisite for the +[builder network](../../HowTo/Configure/Builder-Network.md). When [`--validators-builder-registration-default-enabled`](#validators-builder-registration-default-enabled) is enabled this option is enabled automatically. The default is `false`. @@ -2475,42 +2477,7 @@ The default is `false`. validators-proposer-config: "/home/me/node/proposerConfig.json" ``` -Remote URL or local file path to the [proposer configuration file](../../HowTo/Prepare-for-The-Merge.md), which is a -JSON file that specifies: - -* `proposer_config` - (optional) A proposer configuration for multiple validator public keys. -* `default_config` - (required) A default proposer configuration for validator public keys not included in - `proposer_config`. - -`fee_recipient`is optional in `proposal_config` but is mandatory for `default_config`. - -`builder` is optional for each proposer configuration and includes two attributes: - -* `enabled` - (mandatory when including `builder`) specifies whether to use the [builder endpoint](#builder-endpoint) when proposing blocks. -* `gas_limit` - (optional) specifies the `gas_limit` for the builder. The default is `30000000`. - -!!! example "`proposerConfig.json`" - - ```json - { - "proposer_config": { - "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": { - "fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3", - "builder": { - "enabled": true, - "gas_limit": "12345654321" - } - } - }, - "default_config": { - "fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A" - "builder": { - "enabled": false, - "gas_limit": "12345654321" - } - } - } - ``` +Remote URL or local file path to the [proposer configuration file](../../HowTo/Configure/Proposer-Configuration.md). ### validators-proposer-config-refresh-enabled @@ -2538,8 +2505,8 @@ JSON file that specifies: validators-proposer-config-refresh-enabled: true ``` -Set to `true` to enable reloading the [proposer configuration](#validators-proposer-config) on every proposer -preparation (once per epoch). +Set to `true` to enable reloading the [proposer configuration](../../HowTo/Configure/Proposer-Configuration.md) +on every proposer preparation (once per epoch). The default is `false`. ### validators-proposer-default-fee-recipient @@ -2568,9 +2535,9 @@ The default is `false`. validators-proposer-default-fee-recipient: "0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73" ``` -Default [fee recipient](../../HowTo/Prepare-for-The-Merge.md#configure-the-fee-recipient) for all validator keys. +Default recipient of transaction fees for all validator keys. When running a validator, this is an alternative to the `fee_recipient` in the -[default proposer configuration](#validators-proposer-config). +[default proposer configuration](../../HowTo/Configure/Proposer-Configuration.md). !!! important diff --git a/mkdocs.yml b/mkdocs.yml index 6fbf81fe8..17ead4cdf 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -72,6 +72,8 @@ nav: - Configure logging: HowTo/Monitor/Logging.md - Configure: - Specify options in a configuration file: HowTo/Configure/Use-Configuration-File.md + - Use a proposer configuration file: HowTo/Configure/Proposer-Configuration.md + - Configure Teku to use a builder network: HowTo/Configure/Builder-Network.md - Configure TLS: HowTo/Configure/Configure-TLS.md - Prevent slashing offences: HowTo/Prevent-Slashing.md - Find and connect to peers: @@ -80,7 +82,6 @@ nav: - Voluntary exit: HowTo/Voluntary-Exit.md - Migrate database: HowTo/Migrate-Database.md - Prepare for The Merge: HowTo/Prepare-for-The-Merge.md - - Connect to a builder network: HowTo/Builder-Network.md - Troubleshoot: - Solve common problems: HowTo/Troubleshoot/Troubleshooting.md - Concepts: @@ -154,3 +155,4 @@ plugins: HowTo/Get-Started/Run-Docker-Image.md: HowTo/Get-Started/Installation-Options/Run-Docker-Image.md HowTo/Get-Started/Connect-To-Testnet.md: HowTo/Get-Started/Connect/Connect-To-Testnet.md Reference/Rest_API/API-Objects.md: Reference/Rest_API/Rest.md + HowTo/Builder-Network.md: HowTo/Configure/Builder-Network.md