Skip to main content
Once you’ve installed all dependencies, you’re ready to build Firedancer. This process will compile both Firedancer components and some Agave components that are currently required.

Basic Build

To build the core Firedancer validator and Solana CLI tools:
make -j fdctl solana
You will need around 32GB of available memory to build Firedancer. If you run out of memory during compilation, make can return a variety of errors.

Build Targets

The build process creates two primary binaries:
  • fdctl — Firedancer control binary (short for Firedancer control)
  • solana — Solana CLI binary for running RPC commands
The Firedancer production validator is built as a single binary fdctl. You can start, stop, and monitor the Firedancer instance from this one program. The solana CLI binary can be built with make as well for convenience so you can run RPC commands like solana transfer.

Architecture-Specific Builds

Firedancer automatically detects the hardware it’s being built on and enables architecture-specific instructions for maximum performance.
This means binaries built on one machine may not be able to run on another with different CPU capabilities.

Building for a Specific Target

If you need to target a different machine architecture, you can compile for a specific target by setting the MACHINE environment variable:
MACHINE=linux_gcc_x86_64 make -j fdctl solana
Available target configurations can be found in the config/ directory.

Default Build Location

The default target is native, and compiled binaries will be placed in:
./build/native/gcc/bin

Development Build

For developers who want to build and run a local development cluster:
./deps.sh +dev
make -j run
The make run target runs the fddev dev command, which:
  • Ensures your system is configured correctly
  • Creates a genesis block and test keys
  • Starts a faucet
  • Launches a validator on your local machine

Updating Firedancer

To update to a newer version of Firedancer:
1

Fetch latest tags

git fetch --tags
2

Checkout new version

git checkout v0.xxx.yyyyy  # Replace with desired version
3

Update submodules

git submodule update
4

Rebuild binaries

make -j fdctl solana

Build Troubleshooting

Out of Memory Errors

If compilation fails due to memory constraints:
  1. Close other memory-intensive applications
  2. Reduce parallelism by using fewer jobs: make -j4 fdctl solana
  3. Consider adding swap space temporarily
  4. Build on a machine with more RAM

Submodule Issues

If you encounter errors related to missing files or dependencies:
git submodule update --init --recursive

Clean Build

To perform a clean rebuild:
make clean
make -j fdctl solana

Verifying Your Build

After a successful build, verify the binaries were created:
ls -lh ./build/native/gcc/bin/fdctl
ls -lh ./build/native/gcc/bin/solana
You should see both executables listed with their file sizes.

Check Version

Verify the version of your built binary:
./build/native/gcc/bin/fdctl version

Next Steps

Now that you’ve successfully built Firedancer:

Build docs developers (and LLMs) love