With the recent trepidation around v1.14 of the Solana Labs validator client, the following document aims to outline the major changes landing in v1.14.17, release timelines, and testing. This release version includes significant changes and improvements to the Solana Labs validator client, many of which have been eagerly awaited for some time.
The tentative upgrade schedule is as follows:
• 2023-05-08 - Ask for volunteers to upgrade 10% of mainnet-beta stake to v1.14.17.
• 2023-05-15 - Ask for volunteers to upgrade 25% of mainnet-beta stake to v1.14.17.
• 2023-05-22 - Recommend v1.14.17 for all mainnet-beta validators and RPC nodes.
The Solana Labs client version 1.14.17 has undergone a rigorous release engineering testing regime in preparation for the upcoming release. Testnet has been used to simulate the exact upgrade processes that will be done on mainnet-beta during rollout of the release.
First, testnet was downgraded and feature gates were reverted to match current mainnet-beta on v1.13.7. Following this, testnet was gradually upgraded to v1.14.17 over a period of 27 days. This was done gradually to identify any interoperability issues between the two versions. Then testnet was live downgraded from v1.14.17 to v1.13.7 to demonstrate that the cluster can downgrade versions while remaining online. From here, testnet was again upgraded to v1.14.17. This time it was done quickly, mostly as a way to get back to v1.14.17 for further testing, but it also provided engineers another period of testing mixed Solana Labs client versions live on testnet. As previously mentioned, on the first downgrade to v1.13.7 feature gates in v1.14.17 were reverted. The final part of the release engineering testing process was to re-enabled the feature gates to verify the full functionality of v1.14.17 on testnet. This also brought testnet back to the same state as before the February 25th incident.
Throughout this process stress testing on testnet was ongoing. This includes standard benchmarking and DDOS tests, as well as the new test cases outlined in detail in the outage report below. No outstanding issues were identified. In addition to the testnet testing, Solana Labs has been running test nodes against mainnet-beta with an assortment of 1.14 versions near the tip of the release. This has been ongoing since the February 25th incident and the test nodes have yet to encounter any problems.
If you would like to learn more about v1.14.17 you can start reading the pull requests which are linked in the notes on the release page.
If you’d like to better understand what caused the last outage check out the outage report.
tldr: v1.14 was not the culprit; v1.13.6 was also susceptible (both v1.13 and v1.14 have since been patched
A comprehensive list of changes in v1.14 can be found by reading the pull requests linked above, however an index of some of the more significant changes is listed below:
- Compact Vote State*
Stake Program Changes*:
- Minimum Stake Delegation Vote
- Get Minimum Stake Delegation Instruction
- Undelegated Stakes Allowed Below Minimum
- Deactivate Delinquent Stake Instruction
- Improvements to Caching
- RPC Call to Get Estimated Priority Fees
- Accounts Index on Disk
- Erasure Batch Construction & Transmission
- Remove Redundant Turbine Path
- Increased TX Account Lock Limits*
*These features will not go live immediately upon 1.14.17 release but at a later date. These features are feature gated and require cluster synchronization on activation through consensus. A comprehensive list of feature gates scheduled for 1.14 can be found here.