Firedancer
Firedancer is a new validator client for Solana.
PoC required
KYC required
Codebase
The Firedancer codebase can be found at https://github.com/firedancer-io/firedancer/tree/main.
Documentation and further resources can be found on:
- Documentation: https://firedancer-io.github.io/firedancer/
- Technical education: Technical articles, ReadMe's, whitepaper, etc.
- https://github.com/firedancer-io/firedancer/blob/main/README.md
- https://github.com/firedancer-io/firedancer/blob/main/src/disco/README.md
- All header files contain sufficient documentation about each component's function
- Developer codebase walkthrough (recorded for the preceding contest): https://youtu.be/KJzZ5QApW2s
- Non-technical education: introductory videos, protocol summaries, FAQs, etc
- Solana Docs: https://solana.com/docs
- How to build and run a Node https://firedancer-io.github.io/firedancer/guide/getting-started.html
The Firedancer validator builds as a single binary: fdctl
. All code and functionality linked and reachable by the main function of this binary is in scope, including from the primary run
command, but also configure
, monitor
, and others. Bugs in linked but unreachable code (for example: cryptography implementations that are behind a development flag or library utility code that is never called) are in scope but are not exploitable and will be considered informational (aka insight reports).
The Firedancer repository contains code for two validators:
- Firedancer v0.1, lovingly nicknamed “Frankendancer”, a split between Firedancer and the existing Agave validator written in Rust
- A full C-only Firedancer, completely replacing the existing Agave validator.
The full Firedancer code is behind a development flag, and findings in code that is only reachable in full Firedancer will be considered informational (aka insight reports).
The Firedancer v0.1 validator interfaces with the existing Agave validator written in Rust via an FFI interface. This FFI interface and the modifications to Agave to support such FFI are in scope, but bugs in the Agave validator itself that would impact existing Solana validators should be reported to the Agave bug bounty and are not considered in scope for the contest.
The directory and file listing are provided to help navigate the codebase and determine what is in scope. The ground truth for scope and impact will follow the production binary.