Skip to main content

Solana Technical

Clear and consistent focus on hardware integration to maximize performance.

Desired outcomes that drive architectural decision making:

  1. Minimize cognitive load to understand the code
  2. 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