Releases: solana-labs/solana
v0.12.2
This release fixes a few stability bugs, mainly
- Crash in status_dequeue due to freeze
- Crash caused by account squash
The release also includes more statistics to view consensus algorithm performance.
Known Issues
- Low TPS; not a focus of this release
- Rust crates not published to crates.io; circular dependencies
v0.12.1
v0.12.1-pre3: Update leader slot in poh recorder if we skipped it (#3451)
* reset poh recorder with the original start slot
Smart contract development via solana_runtime
Beacons v0.12.0
Major Features And Improvements
- New Rust crate, solana-runtime, allows for smart contract development without needing to spin up a testnet
- Improved leader rotation algorithm using the validators' VDFs as ...beacons!
- Added a high-throughput, streaming block explorer
- Scalable account storage and reduced RAM usage via memory-mapping
- Avalanche fully-implemented; simulation indicates promising scale to 10's of thousands of nodes
- Improved support for BPF-compiled smart contracts written in Rust
TPS Report
The codebase is undergoing a large rewrite. Performance is awful at the moment and was not a focus of this release cycle. We'll report TPS, node counts, and confirmation times again soon!
Additional Features and Improvements
- New TransactionBuilder Rust library in the SDK to trivialize creation of multi-instruction transactions
- Fullnodes now fork-aware and implement rudimentary fork selection
- New fork-aware Bank now supports checkpointing, rollback and squashing
- New Blocktree ledger format with builtin support for forks
- Improved security via signed control plane messages
- Solana's equivalent of Bitcoin's satoshis named lamports. All code and documentation updated. The term "token" is now reserved for fungible currencies implementing the ERC20 interface.
- solana_erc20 crate renamed to solana_token
- Budget smart contract DSL now recurses to support nested expressions
- New compressed transaction format encodes 64-bit integers with 1 to 9 bytes
- Preview release of KvStore, a high-speed Key-Value Store to replace RocksDB
Breaking Changes
- Transaction format is incompatible with previous releases. Expect this in all releases until mainnet launch.
Known Issues
- Low TPS; not a focus of this release
- Cluster stalls; fullnodes can't find each other
- Rust crates not published to crates.io; circular dependencies
Stake-weighted leader rotation
Release v0.11.0 - Tabletops
Major Features And Improvements
- A new online book, detailing what's implemented and what's to come! Solana: Blockchain Rebuilt for Scale
- Fullnodes now use stake weights to take turns producing new blocks
- Preview release of Rust programs compiled to BPF bytecode and running on chain
TPS Report
Node Count | Avg TPS | Max TPS | Avg Confirmation | Max Confirmation |
---|---|---|---|---|
10 | 192,162 | 358,771 | 0.984 | 3.351 |
25 | 182,221 | 358,179 | 1.071 | 2.953 |
50 | 185,631 | 350,462 | 1.046 | 2.673 |
100 | 117,132 | 436,523 | 1.683 | 5.313 |
Additional Features and Improvements
- Tic-tac-toe on-chain games now funded using an off-chain Ethereum-style faucet
- Transaction format extended to support single transaction multisig
- SDK now includes a fork of the LLVM compiler toolchain that includes an enhanced BPF backend
- On-chain C programs can now return structs and pass them across translation units
- Validators now do Proof of History verification
- Banking code restructured to track multiple forks (though fork selection and rollback not yet implemented)
- Lots of progress to replicator nodes (though not yet integrated into the data plane)
- Migrate codebase to Rust 2018
- Upgraded GPU code to CUDA 10.0
Breaking Changes
- Transaction format is incompatible with previous releases. Expect this in all releases until mainnet launch.
Known Issues
- ~10% drop in TPS compared to the latest Pillbox release
- TPS degrades for clusters of 100+ fullnodes. Avalanche rewrite in progress.
50% higher TPS and on-chain programs in C
Release v0.10 - Pillbox
With this release we have increased our mean transaction throughput to 200k TPS while extending our transaction engine to load and interact with programs written in C. We execute programs using BPF, the same technique that the Linux kernel uses to run untrusted code for high-performance packet filtering and process sandboxing. Applied to blockchain, it means DApp developers can expect the same amazing runtime performance previously only available to the blockchain software itself.
Major Features And Improvements
- New tutorial showing how to compile and deploy an on-chain game with the SDK
- Solana JavaScript SDK extended to spin up new tokens with an ERC20 interface
TPS Report
Node Count | Avg TPS | Max TPS | Avg Finality | Max Finality | 99th Finality |
---|---|---|---|---|---|
10 | 204,150 | 491,772 | 1.716 | 20.132 | 7.466 |
25 | 198,498 | 442,707 | 1.560 | 15.206 | 5.058 |
50 | 201,418 | 564,986 | 1.820 | 16.724 | 15.833 |
100 | 186,808 | 460,587 | 1.318 | 14.398 | 10.834 |
Additional Features and Improvements
- Added atomic batched transactions so multiple instructions can be included in a single transaction
- Published Rust crate solana-sdk to implement built-in programs
- Preview release of on-chain program solana-lualoader to load on-chain Lua programs
- Down to zero known security vulnerabilities in all package dependences. Thanks
cargo audit
!
Breaking Changes
- Transaction format is incompatible with previous releases. Expect this in all releases until mainnet launch.
Known Issues
- Average finality times popped above 1 second. The validators on our testnet are having a bit of trouble keeping up with the speedy new leader.
v0.9.1
Rock-solid 100k+ TPS public testnet
Release v0.9 - Swamis
Just two weeks after our v0.8 Windansea release, the Solana team is proud to release the next major revision, v0.9 Swamis.
Major Features And Improvements
- First release of our smart contracts SDK. Play tic-tac-toe on-chain!
- First debut of "replicator" nodes that provably store ledger segments.
- Fixed all known issues from the v0.8 testnet. It's rock solid, averaging well over 100k TPS.
TPS Report
Node Count | Avg TPS | Max TPS | Avg Finality | Max Finality |
---|---|---|---|---|
10 | 130,371 | 235,165 | 568ms | 1.414s |
25 | 123,356 | 240,309 | 624ms | 1.595s |
50 | 110,136 | 235,045 | 680ms | 1.474s |
100 | 116,849 | 242,730 | 732ms | 2.068s |
Breaking Changes
- Transaction format, ledger format, and wire format for replication are incompatible with previous releases. Expect this in all releases until a mainnet launch.
Known Issues
- None!
What's next
- Proof-of-Stake leader rotation
- Torrent-style ledger replication
- Multi-threaded contract engine
- User-defined smart contract interpreters
- Faster, faster, faster!
v0.8.1
tagged perf libs
updated to rust 1.29
Windansea
Release v0.8 - Windansea
The Solana team is proud to release version 0.8.0 of our high-performance blockchain software. In this release, we introduce the LAMPORT smart contract engine, our biggest innovation since Avalanche replication. With LAMPORT (Language-Agnostic, Memory-oriented, Parallel-friendly, Optimized Run-Time), we can execute smart contracts concurrently, and written in the client’s choice of programming language. Furthermore, we demonstrate Solana’s built-in smart contract language Budget can target LAMPORT without any loss in performance. The two features that allow LAMPORT to work:
- Client-owned memory identified by public keys. By declaring ownership upfront and separating the program’s state from the program, the runtime knows which contracts can safely be executed concurrently.
- Solana’s blockchain-encoded VDF tells validator nodes at precisely what times they need to end up in the same state. Between those times, they are free to introduce non-deterministic behavior as-needed to improve execution times.
Major Features And Improvements
- Initial support for web-based clients via JsonRPC
- Accounts with state: forms the basis for Solana's smart contracts engine
- Dynamic testnet deployment for Google Cloud SDK - run your own testnet!
- 20% performance improvement over v0.7 in transactions per second
- Improved metrics and network monitoring
- Simpler and more robust rendezvous with gossip
- Simpler and more consistent CLI interfaces
Breaking Changes
- Network rendezvous and network ports have moved from hard-coded to ad-hoc
- Transaction format, ledger format, and wire format for replication are incompatible with previous releases. Follow-on releases are also likely to break this.
Known Issues
- Heavily trafficked testnets are suffering from our aggressive out of memory approach.
- Server restart may fail on networks with heavy traffic with "LastIdNotFound" #1171
Thanks to our Contributors
This release contains contributions from many people at Solana, as well as: Nikhil Saraf