This repository has been archived by the owner on Jan 13, 2025. It is now read-only.
High TPS for Self-Sovereign nodes
Jaws v0.19.0
In this release, we celebrate high TPS in testnets with self-sovereign nodes. Prior to v0.18, we ran testnets using cloud services such as AWS and Google Cloud. In v0.18, we added "the shredder" to Turbine to support the networking infrastructure used by our Tour de SOL participants. That first implementation got us through TdS Dry Run 4, but introduced a large performance regression in the process. This release includes an optimized shredder that's so good it may have you wondering if we named the release after it. The answer is no. :)
Major Features And Improvements
- New documentation site! https://docs.solana.com
- Resolved the 0.18 TPS regression
- In response to Tour de SOL Dry Run 4, we continued to improve Validator ergonomics:
solana-validator
now verifies NAT/Router configuration at boot, avoiding obscure errorssolana
command-line now understands both SOLs and lamports- Added BIP39 mnemonic-based keypair generation to
solana-keygen
- Added new
solana uptime
command
- Streamlined CUDA support, no more need to set obscure environment variables
- Added BPF program support for Rust's
libstd
- No longer constrained by Rust's
no_std
environment - Some restrictions still exist, for example, no thread support, random number support, etc...
- Most Rust crates now supported, some may still not like the BPF target triple
- No longer constrained by Rust's
- Rust BPF programs now use the common Solana SDK crate
- Switched to use standard Solana types such as
Pubkey
,sysvar
s, etc... - Updated BPF program entrypoint to use Solana SDK types.
- Switched to use standard Solana types such as
Breaking Changes
- Rust BPF type and entrypoint changes
- Existing Rust BPF programs must be ported over from the
Sol
types (SolPubkey
) to the common types 'Pubkey' - Existing Rust BPF programs must be ported over from to the new entrypoint.
- The following examples have been ported and are good references for what needs to be ported:
- Existing Rust BPF programs must be ported over from the
TPS
Node Count | Avg TPS | Max TPS | Avg Confirmation | Max Confirmation |
---|---|---|---|---|
10 | 28,158 | 55,709 | 1.43 | 5.41 |
25 | 20,308 | 125,223 | 2.75 | 20.3 |
50 | 9,516 | 44,403 | 5.31 | 37.3 |
Known Issues
- Windows binaries not available (#6033)
- crates.io release assets not available