Skip to content

firedancer-io/firedancer

Repository files navigation

Firedancer πŸ”₯πŸ’ƒ

Firedancer is a new validator client for Solana.

  • Fast Designed from the ground up to be fast. The concurrency model draws from experience in the low latency trading space, and the code contains many novel high performance reimplementations of core Solana primitives.
  • Secure The architecture of the validator allows it to run with a highly restrictive sandbox and almost no system calls.
  • Independent Firedancer is written from scratch. This brings client diversity to the Solana network and helps it stay resilient to supply chain attacks in build tooling or dependencies.

Documentation

If you are an operator or looking to run the validator, see the Getting Started guide in the Firedancer docs

Releases

If you are an operator looking to run the validator, see the Releases Guide in the documentation.

The Firedancer project is producing two validators,

  • Frankendancer A hybrid validator using parts of Firedancer and parts of Agave. Frankendancer uses the Firedancer networking stack and block production components to perform better while leader. Other functionality including execution and consensus is using the Agave validator code.
  • Firedancer A full from-scratch Firedancer with no Agave code.

Both validators are built from this codebase. The Firedancer validator is not ready for test or production use and has no releases. Frankendancer is currently in testing on the Solana testnet.

Developing

Firedancer currently only supports Linux and requires a relatively new kernel, at least v4.18 to build.

$ git clone --recurse-submodules https://github.com/firedancer-io/firedancer.git
$ cd firedancer
$ ./deps.sh
$ make -j run

The make run target runs the fddev dev command. This development command will ensure your system is configured correctly before creating a genesis block, some keys, a faucet, and then starting a validator on the local machine. fddev will use sudo to make privileged changes to system configuration where needed. If sudo is not available, you may need to run the command as root.

By default fddev will create a new development cluster, if you wish to join this cluster with other validators, you can define [rpc.entrypoints] in the configuration file to point at your first validator and run fddev dev again.

License

Firedancer is available under the Apache 2 license. Firedancer also includes external libraries that are available under a variety of licenses. See LICENSE for the full license text.