Upgrading the Solana Labs Validator Client
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.
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.
New Features
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.
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.
- Erasure Configuration
- In previous versions, the 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 September 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.
Conclusion
The adoption of Solana Labs validator client v1.14 marks a significant milestone in the continued improvement of the Solana network. This release brings numerous features that enhance the experience of the network, including the ability to estimate fees, improvements to the staking program, and optimized caching.
FAQs
Q: Why is upgrading to v1.14 important for the Solana network?
A: Upgrading to v1.14 brings significant new features that enhance the experience of the Solana network, including the ability to estimate fees, improvements to the staking program, and optimized caching.
Q: What is the main purpose of the Get Estimated Fees RPC?
A: The Get Estimated Fees RPC allows developers to retrieve recent fees paid for transactions and apply that information to estimate future transactions.
Q: How will the new Compact Vote State Update Instruction improve the voting process?
A: The new Compact Vote State Update Instruction reduces complexity in voting by allowing votes to be cast in a less complex way, making voting more efficient and simplifying validator operations.
Q: What are the benefits of the improved erasure configuration in Turbine?
A: The improved erasure configuration in Turbine avoids padding and prevents overhead, making it more efficient and cost-effective.
Q: How was the testing process for v1.14?
A: The testing process for v1.14 involved collaborating with validators and third parties to increase the stability, reliability, performance, and security of the release. Quality assurance teams also simulated the update numerous times on Testnet and undertook internal and external efforts to run tests.