Frankendancer
Firedancer is a new Solana validator with a new codebase, but it is being developed incrementally. To enable testing and deployment before the entire Solana protocol has been implemented, the project relies on the existing Agave validator code to provide functionality that is missing. This side-by-side configuration is referred to as “Frankendancer”.Frankendancer is currently available on both Solana testnet and mainnet-beta, allowing you to run a production validator today.
What Is Frankendancer?
Frankendancer is a hybrid validator that uses parts of Firedancer and parts of Agave:- Firedancer components: Networking stack and block production
- Agave components: Runtime and consensus mechanisms
Currently Implemented Components
Firedancer has implemented the following high-performance components in Frankendancer:QUIC and UDP Networking
High-performance kernel bypass networking for ingress, enabling faster packet processing and reduced latency.
Block Distribution Engine
Egress networking using kernel bypass, with a full reimplementation of erasure coding and the Solana turbine protocol for packet routing.
Signature Verification
Custom AVX512 ED25519 implementation for fast cryptographic signature verification.
Block Packing Logic
Optimized logic for packing transactions into blocks during leader slots.
All other functionality is retained by Agave, including the runtime itself which tracks account state and executes transactions.
How Frankendancer Works
Building and running a Firedancer validator also builds an Agave validator and runs it as a child process. The Agave process is fully built into and managed by Firedancer, and you do not need to start it up or otherwise configure it. Key characteristics:- Firedancer manages the Agave process automatically
- No separate Agave configuration required
- Uses the same
solanaCLI commands you’re familiar with - Monitoring and metrics remain the same as Agave
Because of this side-by-side operation, existing knowledge and processes you have from running an Agave validator will likely apply to Firedancer too.
Performance Characteristics
Frankendancer uses the Firedancer networking stack and block production components to perform better while leader. This provides several advantages:Improved Leader Performance
When your validator is leader, Frankendancer’s optimized networking and block production components enable:- Faster transaction ingestion
- More efficient block packing
- Reduced latency in block distribution
DoS Mitigation
The high-performance networking layer provides better protection against denial-of-service attacks through:- Efficient packet filtering
- Optimized resource utilization
- Kernel bypass networking reducing CPU overhead
Running Frankendancer
If you’re already familiar with running an Agave validator, you’ll find Frankendancer operates with similar concepts and components. The validator heavily leans on the same operational patterns you’re used to. What stays the same:- Command-line interface (
solanaCLI) - Monitoring and metrics
- Key management
- Configuration concepts
- You use the
fdctlcommand to manage the validator - Configuration is done through a TOML configuration file
- The Agave process is managed automatically by Firedancer
Getting Started with Frankendancer
Learn how to install, configure, and run a Frankendancer validator node
The Path to Full Firedancer
While you run Frankendancer, the Firedancer development team is working in parallel on replicating the functionality of the runtime and consensus code. The goal is to deliver a fully independent validator with no Agave components. This incremental development approach means:- You can benefit from performance improvements today
- The validator is production-ready and battle-tested
- The transition to full Firedancer will be seamless
Firedancer is beta software and you should expect hiccups when getting started with, and when operating the validator. The Firedancer development team can help diagnose any issues in the #firedancer channel in the Solana Tech discord.
Contributing and Community
Firedancer is open source and being developed on GitHub. All contributions are welcome. Jump is currently the primary contributor as the project is in the initial development phase, but Firedancer is a decentralized, community validator and project stewardship will be transitioned to the community as the project matures.GitHub Repository
View the source code and contribute to the project
Discord Community
Join the #firedancer channel for support and discussion