This repository hosts protocol specifications of the Solana network, maintained by various protocol teams.
| Section | Description |
|---|---|
| core | Basic concepts and data structures |
| consensus | Blockchain consensus rules |
| runtime | On-chain runtime environment (Sealevel) |
| p2p | Validator network protocols |
| api | Client-facing node APIs (e.g. JSON-RPC) |
This repo exists to define a single source of truth for consensus-critical sections of the protocol, such as verification and state transition rules.
The first long-term objective of the specification effort is to produce a complete and unambiguous reference for implementing a Solana validator.
Other documentation regarding widely adopted protocols may be added at the discretion of the Solana Foundation.
The solana_specs module contains Python 3.10 implementations of various specs.
Each unit is runnable as a test, like so:
python3.10 -m solana_specs.consensus.leader_schedule
The reference code is formatted using black.
Certain tests depend on test fixtures which are hosted on Git LFS. To download test fixtures, run:
git lfs pull