Upcoming Update to Solana Labs Validator Client
Important Update Notice
On September 25, 2023, Solana Labs engineers notified validators that version 1.16, a proposed update to the Solana Labs validator client, will soon be available for mainnet-beta. This comes after numerous audits and the work of volunteer adopters, who were able to identify and help engineers correct earlier issues.
Key Features of Version 1.16
Version 1.16 contains nearly ten months of work and includes a number of developments that will be activated over time. The key features of this update include:
- Improve runtime support for zero-knowledge math
- Supports SPL Token22 Confidential Transfers
- Supports 128 elliptic curve operations (equivalents of EIP-196, EIP-197, and EIP-198)
- Supports resizeable program data accounts
Optimizations and Performance Improvements
The ledger data cleanup service has been optimized to reduce disk IO and time spent searching for entries to remove. Gossip pull-requests peer sampling has been reworked to reduce startup bandwidth. Accounts index has been moved to disk by default, which reduces memory usage while increasing IOPS.
Repair Process Improvements
Several small changes were made to improve performance and resilience of the repair process:
- Repair requests are now prioritized by stake
- The delay threshold for issuing shred repairs was increased (100ms -> 200ms) to reduce the number of repair requests for shreds that would ultimately be served through turbine anyway
- Epoch accounts hash: If no transaction interacts with an account during a block, the contents of that account will have no effect on the block. Accounts that are rarely accessed could be corrupted on individual validators and the corruptions would go undetected. The epoch accounts hash project generates the hash of all accounts once per epoch and includes the result in a bank’s hash. Nodes with corrupted accounts will fork off within an epoch, so corruptions will be detected quickly.
Testnet, Canaries, and Fuzzers
Testnet
Testnet has been running v1.16 since June 7, 2023. In addition to handling public transactions, testnet is stress tested regularly with high transaction volume. More recently, core contributors have built a regression and capacity testing framework that is used regularly on testnet.
Canaries
Solana Labs operates canary nodes on mainnet-beta, including seven that run the beta branch (currently v1.16). Those v1.16 nodes have been stable for several months. To follow the canaries in real-time, checkout the #canaries-monitoring channel on the Solana Tech Discord.
Fuzzers
Multiple runtime fuzzers have also been developed. Their implementations vary, but they execute partially randomized transactions against multiple versions of the runtime to ensure that the results are consistent. This is especially useful for catching edge cases or race conditions that manifest infrequently.
Audits
Version 1.16 has been extensively audited by multiple external auditors. Reports will be published to the security-audits repo as they become available.
Volunteer Adoption
A small subset of volunteers updated their mainnet-beta nodes to v1.16 starting on August 23, 2023. These early adopters helped identify and resolve remaining issues, including slow startup for RPC nodes and general protection faults.
Conclusion
Solana Labs is excited to announce the upcoming release of version 1.16 of the validator client. This update includes numerous improvements, optimizations, and features that will enhance the performance and security of the network. With extensive audits and volunteer adoption, we are confident that this update will be a positive step forward for the Solana ecosystem.
FAQs
Q: When will version 1.16 be available for mainnet-beta?
A: Version 1.16 will be available for mainnet-beta shortly.
Q: What are the key features of version 1.16?
A: The key features of version 1.16 include improve runtime support for zero-knowledge math, supports SPL Token22 Confidential Transfers, supports 128 elliptic curve operations, and supports resizeable program data accounts.
Q: What optimizations were made to the ledger data cleanup service?
A: The ledger data cleanup service has been optimized to reduce disk IO and time spent searching for entries to remove.
Q: How do I stay up-to-date with the latest developments and updates?
A: The best place to monitor for updates is the Solana Status Twitter account.