Presets are more extensive than runtime configurations, and generally only applicable during compile-time. Each preset is defined as a directory, with YAML files per fork.
Configurations can extend a preset by setting the PRESET_BASE
variable.
An implementation may choose to only support 1 preset per build-target and should validate
the PRESET_BASE
variable in the config matches the running build.
Standard presets:
mainnet/
: Used in mainnet, mainnet-like testnets (e.g. Prater), and spec-testingminimal/
: Used in low-resource local dev testnets, and spec-testing
Client implementers may opt to support additional presets, e.g. for extra large beacon states for benchmarking.
See /configs/
for run-time configuration, e.g. to configure a new testnet.
Like the config forking, the preset extends with every fork, instead of overwriting previous values. An implementation can ignore preset files as a whole for future forks, and can thus implement stricter compile-time warnings on unrecognized or missing variables in current forks.
The preset format matches the config format.