Files
lodestar/packages/params
Nazar Hussain da0bcc8f19 test: support .env.test to reuse env variables across the tests (#6408)
* Variables using .env file

* Add env variable support to normal tests

* Fix the order of variables

* Update the order of jobs

* Export the varible using actions toolkit

* Update the workflow tasks

* Fix the sim workflow

* Add .env.test file support to tests

* Fix the lint

* Update the task description

* Move lodestar preset to env file

* Fix the directory path

* newline

* Update debugging spec tests section

* Update the env variable for preset

* Fix the path for setup files

* Update code as per feedback

* Fix the e2e variables

* Update doc

* Fix the bash script

* Fix sim geth runne

* Update the env file

* Fix e2e tests

* Update the script tasks

* Update the script tasks

* Add minimal for e2e tests

* Add minimal for e2e tests

* Update comments in preset tests

* Downgrade nethermind version

* Load env file in e2e env

* Add the issue link in env variable

* Update bash script for failsafe current dir

* Fix the mistaken genesis extension for el nodes

* Add missing capella wait for one test

* Downgrade the geth version

* Update .env.test

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
2024-02-12 14:36:33 +01:00
..
2021-06-04 09:37:25 -05:00

lodestar-params

npm License Eth Consensus Spec v1.1.10 ES Version Node Version

This package is part of ChainSafe's Lodestar project

Lodestar defines all constants and presets defined in the Ethereum Consensus spec. This can be used in conjunction with other Lodestar libraries to interact with the Ethereum consensus.

Installation

npm install @lodestar/params

Usage

The Lodestar params package contains several items used in all downstream Lodestar libraries:

  • Fork names
  • Constants
  • Presets

Fork names

Many downstream components are namespaced on fork names, or otherwise rely on knowing the fork names ahead of time. The Lodestar params package exports an enum ForkName the enumerates all known fork names.

import {ForkName} from "@lodestar/params";

// dummy data
let forkName = "phase0";

switch (forkName) {
  case ForkName.phase0:
  case ForkName.altair:
  case ForkName.bellatrix:
  default:
}

Constants

All constants defined in the spec are exported verbatim.

import {GENESIS_SLOT} from "@lodestar/params";

Presets

Presets are defined in the spec as "constantish" and can only be configured at build-time. These are meant to be treated as constants, and indeed are treated as constants by all downstream Lodestar libraries. The default preset is mainnet. The only other preset defined is minimal, used only in testing environments.

The active preset is exported under the ACTIVE_PRESET named export.

import {ACTIVE_PRESET, SLOTS_PER_EPOCH} from "@lodestar/params";

The preset may be set in one of two ways:

  1. by setting the LODESTAR_PRESET environment variable
  2. by executing the setActivePreset(preset: Preset) function

Important Notes:

  • Interacting with and understanding the active preset is only necessary in very limited testing environments, like for ephemeral testnets
  • The minimal preset is NOT compatible with the mainnet preset.
  • using setActivePreset may be dangerous, and only should be run once before loading any other libraries. All downstream Lodestar libraries expect the active preset to never change.
  • Preset values can be overriden by executing setActivePreset(presetName: PresetName, overrides?: Partial<BeaconPreset>) and supplying values to override.
  • The Lodestar CLI exposes setActivePreset through --presetFile flag which allows to override the active preset with custom values from file.

License

Apache-2.0 ChainSafe Systems