Quick Start Guide

circle-check
1

Set up Commit-Boost

2

Register validators to ETHGas

3

Earn higher rewards

That's it, you're earning higher rewards! You can sit back and relax πŸ–οΈ

circle-info

This guide is a simplified quick start configuration that assumes a standard validator setup. For a full technical guide with every available configuration option, check out the repo READMEarrow-up-right.

Commit-Boost

The ethgas-preconf-commit-boost-module repo contains everything needed to setup and run Commit-Boost as well as the ETHGas module. If you are already running an existing version of Commit-Boost, you can either:

  1. Use this single repo instead for simpler configuration management.

  2. Or, continue using your existing version, making sure to add the configuration, rpc_url, ETHGas [[relays]], etc.

To get started, clone the repo:

git clone https://github.com/ethgas-developer/ethgas-preconf-commit-boost-module.git

Copy docker-compose-example.yml as docker-compose.yml and make any required modifications.

cp docker-compose-example.yml docker-compose.yml

Create an empty .cb.env file and generate a new jwt for the signer module by running:

touch .cb.env
docker compose -f docker-compose.yml up cb_gen_jwt

Create a config.toml file and enter the following configuration:

touch config.toml
circle-info

This is a minimal setup and does not cover all environment types. For a comprehensive list of all available configuration options, open the config.example.mainnet.toml file.

Signers

This section continues the configuration of the config.toml file for the signer modules. Select the signer that you are using add the configuration below the [signer] section in your config.toml file

Local Signers

chevron-rightLighthousehashtag

File structure:

Config:

chevron-rightPrysmhashtag

File structure:

Config:

chevron-rightTekuhashtag

File structure:

Config:

chevron-rightLodestarhashtag

File structure:

Config:

circle-info

All keys have the same password stored in secrets/password.txt

chevron-rightNimbushashtag

File structure:

Config:

Remote Signers

chevron-rightWeb3Signerhashtag

Web3Signer implements the same API as Commit-Boost, so there's no need to set up a Signer module. The parameters needed for the remote signer are:

chevron-rightDirkhashtag

Dirk is a distributed key management system that can be used to sign transactions. In this case the Signer module is needed as an intermediary between the modules and Dirk. The following parameters are needed:

  • cert_path and key_path are the paths to the client certificate and key used to authenticate with Dirk.

  • wallets is a list of wallets from which the Signer module will load all accounts as consensus keys. Generated proxy keys will have format <WALLET_NAME>/<ACCOUNT>/<MODULE_ID>/<UUID>, so accounts found with that pattern will be ignored.

  • secrets_path is the path to the folder containing the passwords of the generated proxy accounts, which will be stored in <secrets_path>/<WALLET_NAME>/<ACCOUNT>/<MODULE_ID>/<UUID>.pass.

Delegation signatures will be stored in files with the format <proxy_dir>/delegations/<MODULE_ID>/<PROXY_KEY>.sig.

A full example of a config file with Dirk can be found herearrow-up-right.

ETHGas Module

The ETHGas module is run each time you want to update your ETHGas account configuration. This includes actions like:

  • Registering and deregistering validators

  • Updating your entity name, etc.

circle-info

Currently, the only authentication optoions are adding your EOA_SIGNING_KEY or ACCESS_JWT to the config directly (or through a .env file). An improvement is planned to allow the generation of an API key in the ETHGas validator UI that can then be reused in this module configuration file. This would provide an alternative method for validators who want to use a hardware wallet and/or multisig wallet for authentication.

Metrics and Logs

Start the Signer module

circle-info

For DVT validators or remote signer, you don't need to run this module.

For registration of non-DVT validators, run:

βœ… If your signer starts successfully, you should see the log similar to INFO Starting signing service version="0.8.0" commit_hash="f51f5bd61831fde943057b29ffd6e26e7eb23765" modules=["ETHGAS_COMMIT"] endpoint=0.0.0.0:20000 loaded_consensus=100 loaded_proxies=0 where loaded_consensus indicates the total number of loaded keys.

Start the ETHGas Commit module

You are advised to run this module at or after the 2nd slot of the current epoch, so you can have more time to configure the PBS module.

This module only needs to be run whenever you modify the configuration of this module, e.g. when you want to register or deregister a validator to the ETHGas Exchange, to change collateral settings, etc. Think of running this module as "Update my config and sync with ETHGas".

To register the validators to the ETHGas Exchange, run:

βœ… You will see the log INFO successful registration, you can now sell preconfs on ETHGas! or INFO successful registration, the default pricer can now sell preconfs on ETHGas on behalf of you! if all goes well

❌ If the module encounters ConnectionRefused error when it tries to connect to http://cb_signer:20000/signer/v1/get_pubkeys, please wait for 20 minutes to retry.

Start the PBS module

Start the PBS module by running:

The default port used by the PBS module is the same default port as MEV-Boost. If you had previously configured a custom port for MEV-Boost, make sure you have configured that on the PBS module.

βœ… You will see the log DEBUG register_validators{req_id=...}:handler{relay_id="ethgas"}: registration successful code=200 latency=...ms if all goes well.

Once the ETHGas Commit module has completed the registration process and right before the start of the next epoch, stop your existing MEV-Boost client, restart the beacon node with new builder endpoint (if the port is different), and immediately start the PBS module.

To hot reload the config without restarting the module, run:

βœ… You will see the log INFO : config reload successful if the config reloads successfully.

Refer herearrow-up-right for more details about hot reloading.

Last updated