Usage
Arguments
Path to a configuration TOML file to configure the validator with. This must be the same configuration file the validator will be started with.
Configuration Stages
There are several stages to each configure command:hugetlbfs
hugetlbfs
Reserves huge and gigantic pages for use by Firedancer and mounts huge page filesystems under a path specified in the configuration TOML file.
sysctl
sysctl
Set required kernel parameters for optimal validator performance.
hyperthreads
hyperthreads
Disables hyperthreaded pair for critical CPU cores to ensure consistent performance.
bonding
bonding
Prepares bonded network devices for XDP networking.
ethtool-channels
ethtool-channels
Configures the number of channels on the network device.
ethtool-offloads
ethtool-offloads
Modify offload feature flags on the network device.
ethtool-loopback
ethtool-loopback
Disables UDP segmentation on the loopback device.
Subcommands
configure init
Prepare the operating system environment to run Firedancer. This will reserve and mount the huge page filesystems, set the kernel parameters, and configure the number of combined channels on the network device.Required Capabilities
Required for:
- Increasing
/proc/sys/vm/nr_hugepagesand mounting hugetlbfs filesystems (hugetlbfsstage) - Increasing network device channels with
ethtool --set-channels(ethtool-channelsstage) - Disabling network device offloads with
ethtool --offload(ethtool-offloadsstage) - Disabling network device tx-udp-segmentation (
ethtool-loopbackstage)
Required for setting kernel parameters in
/proc/sys (only applies for the sysctl stage)configure check
Check if the operating system environment is properly configured. Exits with a non-zero exit code if it is not, after printing relevant diagnostics tostderr.
configure fini
Remove any Firedancer specific operating system configuration still lingering. This only unmounts thehugetlbfs stages and returns the reserved huge and gigantic pages to the kernel pool.
Required Capabilities
Required for removing directories from
/mnt and unmounting hugetlbfs (only applies for the hugetlbfs stage)Configuration File Example
Workflow
Typical workflow for configuring a system:- Create configuration file with your system-specific settings
- Initialize configuration:
sudo fdctl configure init hugetlbfs sysctl ethtool-channels ethtool-offloads ethtool-loopback --config config.toml - Verify configuration:
fdctl configure check hugetlbfs sysctl ethtool-channels ethtool-offloads ethtool-loopback --config config.toml - Run validator:
sudo fdctl run --config config.toml
- Clean up (optional):
sudo fdctl configure fini hugetlbfs --config config.toml