Solana Technical
Clear and consistent focus on hardware integration to maximize performance.
Desired outcomes that drive architectural decision making:
- Minimize cognitive load to understand the code
- Optimize data flow
Context
Architectural Guidelines
Laser focus on data flow and locality:
- Modern programming paradigms often hide data flow and locality, which are crucial for performance.
- Systems should be designed with data flow in mind from the start.
- Locality is critical for high-performance computing.
Resource planning and allocation:
- Pre-allocate resources (memory, cores) at job startup rather than relying on dynamic allocation.
- Be explicit about resource requirements and limitations.
- Avoid using features like malloc that pretend resources are infinite.
Tile architecture:
- Assign specific tasks to dedicated cores or "tiles".
- This allows for specialization, efficient caching, and deterministic performance.
- Provides natural security boundaries between components.
Rethink abstraction layers:
- Many modern APIs and operating systems hide important low-level details.
- Create abstractions that allow developers to express locality and data flow without needing to understand all low-level details.
Optimize for real-world constraints:
- Consider physical limitations like the speed of light.
- Design systems with concurrency budgets in mind (number of instruction pointers available).
Encourage proper resource management:
- Provide developers with tools and abstractions that naturally lead to good resource allocation practices.
- Avoid relying on the operating system or language runtime to magically handle resource management.
Focus on reliability and determinism:
- Design systems to be hyper-deterministic and reliable.
- This is crucial for financial applications that require quick, consistent responses.
Plan for scale from the beginning:
- Support millions of transactions per second from huge numbers of accounts
- Design for quick recovery from outages.
Networking Protocols
- Existing protocols like QUIC may not be optimal for validator needs.
- Consider designing purpose-built protocols for high-performance blockchain systems.
Address Implicit Behaviors
- Spend time identifying and specifying all implicit behaviors in the system.
- This is crucial for creating a reliable and consistent implementation across different clients.
Architecture Features
- Token Extensions — aligned focus on delivering customer value by providing native support for enterprise features
- Scalability — designed to be the most scalable blockchain for mass adoption
- Performance — high speed, low fees, and a single global state machine allowing composability
- Hardware optimization — extract maximal benefit from hardware evolution
- Blinks and Actions — transaction intents
- Ex Qualcomm Engineering — hardware-first thinking
Firedancer
Firedancer is a new validator being developed by Jump Crypto in C language:
- Highly optimized for performance with zero technical debt
- Will provide true decentralization with a second independent validator implementation
Validators
https://www.perplexity.ai/search/solana-validator-4mbIDTg.QUWVlcmebq0ssQ