Solana Validators Adopt the v1.17 Update
On Jan. 15, 2024, Solana Labs engineers notified validators that v1.17, a proposed update to the Solana Labs validator client, is recommended for use on mainnet beta. This comes after numerous audits and the work of volunteer adopters, who were able to identify and help engineers correct earlier issues.
Version 1.17 includes a number of developments that will be activated over time. Here’s what you can expect.
Feature updates
The ZK Token proof program is ready for activation in v1.17 (delayed from its intended activation in v1.16). This will facilitate confidential transfers.
Performance updates
Gossip push message propagation has improved in v1.17. This reduces the reliance on pull requests which have been down-sampled leading to reduction in resource usage by consensus validators.
The tpu client connection cache has been improved by creating connections asynchronously. This will reduce transaction latency in some cases.
When a validator restarts it needs information about the state of accounts. In prior versions that state comes from snapshots. V1.17 adds the --use-snapshot-archives-at-startup flag which can be used to specify whether to use local snapshots, the local state already on disk, or whichever is newer. In cases where the existing local state is newer than the local snapshots this eliminates the need to unpack and process the snapshots, leading to faster startup times.
Resiliency
v1.17 adds the capability to broadcast shreds and do repair over QUIC. This lays the groundwork to transition those protocols to QUIC.
How was v1.17 tested
Testnet
Testnet has been running v1.17 since Oct. 3, 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.17). Those v1.17 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.17 has been 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.17 starting on Dec. 4, 2023. These early adopters helped identify and resolve remaining issues.