2021-05-19 15:58:57 +00:00
|
|
|
# Presets
|
2021-05-19 15:15:34 +00:00
|
|
|
|
|
|
|
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/`](./mainnet): Used in mainnet, mainnet-like testnets (e.g. Prater), and spec-testing
|
|
|
|
- [`minimal/`](./minimal): 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/`](../configs) for run-time configuration, e.g. to configure a new testnet.
|
|
|
|
|
|
|
|
## Forking
|
|
|
|
|
|
|
|
Like the [config forking](../configs/README.md#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.
|
|
|
|
|
|
|
|
## Format
|
|
|
|
|
|
|
|
The preset format matches the [config format](../configs/README.md#format).
|