Solana validators adopt the v1.14 upgrade

by Solana Foundation

Solana validators adopt the v1.14 upgrade

On May 1, 2023, Solana Labs engineers notified validators that version 1.14, a proposed upgrade to the Solana Labs validator client, would soon be available for mainnet-beta. After several weeks of upgrades and monitoring, Solana Labs engineers recommended that all mainnet-beta validators adopt v1.14 on May 21, and as of publication time on May 30, it has been adopted by 97.4% of stake.

Version 1.14 unlocks a number of highly anticipated new features on the Solana blockchain that will be activated over time, and understanding how upgrading works helps users understand the network overall.

Why should you care?

As a network for decentralized, permissionless, and composable applications, the experience of all ecosystem participants depends on the performance of the validator nodes that finalize transactions and record them to the blockchain ledger — whether a validator, builder, creator or just a participant in the Solana ecosystem.

Updates to the Solana Labs validator client require participation from the validator network. While Solana Core engineers may recommend that validators update to a certain release, validators elect to update of their own accord.

Validators upgraded 10 percent of mainnet-beta stake to v1.14 during the week of May 8, 2023, and 25 percent of the stake upgraded the week of May 15. All validator operators were notified on May 21 that they may choose to update to the new release. Once greater than 66.6% of stake on the network chose to upgrade on May 22, v1.14 was considered adopted by the cluster.

What’s in the release?

This version of the Solana Labs validator client, release v1.14, includes a number of significant new features to improve the experience of the Solana network. Please keep in mind that some of these features are embodied in the release but will not be available until the feature gate is activated. In many cases, the experience on the network will remain unchanged until dApps and projects in the ecosystem take advantage of these new features. Links to forum discussions, Github repositories, and other resources are included at the bottom of this blog post for developers who wish to take a deeper dive into the release.

Here are some of the notable new features included in this release.

Get Estimated Fees Remote Procedure Call (RPC)

This release allows developers on Solana to retrieve recent fees paid for transactions and then apply that information to estimate future transactions. Applications can use this RPC Applied Programming Interface (API) to alert the user to the potential fees that will be required when signing a transaction. This feature also lays the groundwork for developers to take full advantage of localized fee markets that will be introduced in future releases.

Improvements to the Staking Program

The updates to the staking program include the following:

  • Permissionless deactivation of delinquent stake. Delinquent stake on the network causes blocks to be skipped and degrades the overall network performance. This release permits the removal of delinquent stake if it has been offline for more than five epochs (Each epoch spans roughly two days).
  • Minimum stake delegation. This release lays the foundation to apply a minimum required stake delegation, should validator governance approve and introduce a new RPC to retrieve the current minimum stake delegation.
  • Optimized caching. The performance, cost and consistency of storing information in the bank as a stake cache has been improved. The cache is also now being applied to the inflationary rewards distribution process. 

While these features are significant in themselves, they also lay the groundwork for continued improvements to the staking program in future releases.

Compact Vote State Update Instruction

A new instruction has been added to the native vote program which allows for votes to be cast in a less complex way. Previously, validators have been required to track their vote state locally, independent from the state tracked on-chain. This requires some fairly complex logic to attempt to keep the two in sync. With the new CompactVoteStateUpdate instruction, votes instead propose the new on-chain vote state explicitly, leaving only verification that the transition from old to new state is legal to be completed during execution. The reduction in complexity makes voting more efficient and simplifies validator operations.

Turbine Improvements

Turbine is Solana’s block propagation protocol, which puts it at the heart of the network. Improvements to Turbine can affect the overall experience of the Solana blockchain.

Turbine breaks blocks into chunks of transmissible data called “shreds.” Shreds come in two varieties — “data shreds,” containing raw block data, and “coding shreds,” which contain erasure data used to recover shreds that do not arrive as intended. In previous versions, this “erasure configuration” required that shreds be padded out to fill out the erasure batch, which was costly in time and bandwidth. In this release, the erasure configuration is now dynamic, avoiding padding and preventing overhead.

How was it tested?

The core engineering team at Solana Labs has been collaborating with validators and third parties to increase the stability, reliability, performance, and security of this release. Quality assurance teams have simulated this update numerous times on Testnet over the last several months, starting as early as March. Testnet has been running an early version of v1.14 since Sept. 15, 2022 and the current version since May 1, 2023.

This is part of a larger effort of adversarial testing for Solana validator releases. Solana Labs publicly provided a security audit for version 1.14. Meanwhile, independent and inter-organizational QA teams have undertaken internal and external efforts to run tests, such as ongoing fuzzing tests against the Solana runtime and various networking protocols.

Where can I monitor for future releases?

If you are not a validator, the best place to monitor updates to the Solana Labs validator client is the Solana Status Twitter account.

Related links: