Breakpoint 2024: Scenes From a Firedancer Validator
We are starting a short series of articles for all those of you who missed the Solana Breakpoint event that took place in Singapore in September 2024. In the series, we will showcase some of the presentations that we found most useful for validators, infrastructure aficionados, and the broader Solana community.
Introducing Firedancer: A Fully-Fledged Solana Validator Client
At Breakpoint 2024, the Firedancer team took the stage to showcase the latest developments in their Solana validator client. Firedancer, a blockchain engineering project, has been quietly building a full-featured validator client written entirely in C, with no Rust code and no shared components with Agave. After years of engineering, integrating, and testing dozens of components, the Firedancer team is excited to announce that their validator client is now live on the Solana testnet, actively participating in consensus and producing blocks.
In this article, we'll dive into the key highlights from the Firedancer team's Breakpoint presentation, showcasing the validator's performance on the testnet and the impressive capabilities of the Firedancer client when pushed to its limits.
Firedancer's Testnet Debut: Proving Validator Effectiveness
The Firedancer team began their presentation by demonstrating the effectiveness of their validator on the Solana testnet. They highlighted four critical metrics that define a successful validator:
- Root Distance and Vote Distance: These metrics measure how far behind the latest block the validator is, with lower values indicating the validator is closer to the tip of the chain and voting on more blocks.
- Missed Blocks and Skipped Slots: These metrics show how often the Firedancer validator missed opportunities to produce a block during its leader slot, as well as how often the next validator in line was skipped due to the Firedancer validator's performance.
- Vote Latency: This metric represents the number of slots between when the validator generates a vote transaction and when it is included in a block, with lower latency being better for resolving forks and finalizing blocks.
- RPC Capabilities: The team demonstrated the Firedancer validator's RPC interface, showcasing its ability to provide useful data to end-users, including cluster statistics, block information, and transaction details.
By comparing the Firedancer validator's performance to that of its peers on the testnet, the team was able to show that their validator is on par with or better than other well-performing nodes in the network, indicating its effectiveness as a consensus participant.
Firedancer's Performance Demonstrations: Pushing the Limits
The second part of the presentation focused on showcasing Firedancer's performance capabilities in two different environments: the Solana testnet and a globally distributed cluster composed exclusively of Firedancer nodes.
Firedancer on the Solana Testnet
The Firedancer team shared three demonstrations of large blocks they had built on the Solana testnet, highlighting the validator's ability to perform well while running on the existing Solana protocol and interacting with a majority of Agave and Frankensteiner nodes.
In the first demonstration, the team showed a block containing just under 36,000 transactions, mostly composed of "basic" transactions that did not perform any complex operations but still consumed a small amount of compute units. By running the numbers, the team calculated an effective transaction rate of nearly 90,000 transactions per second for this block.
The second demonstration focused on the Solana token program, with the Firedancer validator building a block containing just under 19,000 token transfer transactions. While the transaction rate was lower than the basic transactions, the team pointed out that each token transfer consumed significantly more compute units, highlighting the potential for Firedancer to optimize the token program's performance.
The final testnet demonstration showcased the Firedancer validator building a block using the Nano token program, an experimental and highly optimized variant of the Solana token program. By leveraging the Nano token's efficiency, the team was able to achieve an effective transaction rate of 54,000 transactions per second, with each transaction consuming only 48 compute units, a massive reduction compared to the standard token program.
These testnet demonstrations not only highlighted Firedancer's ability to perform well on the existing Solana network but also shed light on the potential for significant performance improvements through optimizations and the adoption of new, more efficient protocols.
Firedancer on a Dedicated Cluster
The final performance demonstration took place on a globally distributed test cluster composed solely of Firedancer nodes. This cluster, located in major metropolitan areas around the world, was designed to mimic the characteristics of the Solana validator set, with low-latency, high-bandwidth connectivity between the nodes.
The team began by showcasing Firedancer's ability to handle 1 million transactions per second of basic transactions, demonstrating the validator's capacity to keep up with an extremely high volume of simple transactions. They then pushed the limits even further, showing Firedancer handling over 1.2 billion compute units per second using the Solana memo program, which consumes several thousand compute units per transaction.
Next, the team highlighted Firedancer's ability to provide over 3.5 Gbps of block space when handling "no-op" programs with fixed-size payloads. This metric is crucial for supporting data availability solutions, on-chain proof systems, and handling large transaction payloads, such as NFT minting events.
Finally, the team demonstrated Firedancer validators handling over 500 million transactions per second of Solana Virtual Machine (SVM) executions using the Nano token program. This represents a 10-fold increase in performance compared to the team's earlier testnet demonstration, showcasing the significant optimizations and improvements made to the Firedancer client.
These performance demonstrations on the dedicated Firedancer cluster highlight the team's commitment to pushing the boundaries of what is possible with Solana-based validators, laying the groundwork for future scalability and performance enhancements.
The Road Ahead for Firedancer
While the Firedancer team is excited to showcase the progress they've made, they acknowledge that the client is not yet ready for general use in production. There is still a significant amount of work ahead, including additional features, optimizations, audits, and hardening before the Firedancer validator can be considered production-ready.
However, the team did have one last surprise to share: the Firedancer client is already live on the Solana mainnet, running in a non-voting mode. This means that the full Firedancer client is currently participating in the Solana network, listening to the gossip protocol and replaying blocks in real-time, even though it is not yet actively voting or producing blocks.
The Firedancer team's journey is far from over, but the progress they've made and the impressive performance demonstrations they've showcased at Breakpoint 2024 have set the stage for the continued evolution and integration of their validator client into the Solana ecosystem.
Conclusion
The Firedancer team's Breakpoint 2024 presentation was a testament to their dedication and the significant progress they've made in building a fully-fledged Solana validator client. By showcasing the validator's effectiveness on the testnet and its impressive performance capabilities, the team has demonstrated the potential for Firedancer to play a crucial role in the future of the Solana network.
As the Firedancer team continues to refine and harden their client, the community can look forward to seeing the ongoing developments and the integration of this powerful validator into the Solana ecosystem. The future of Solana-based blockchain infrastructure is bright, and Firedancer is poised to be a key player in driving that progress forward.