0

Article Background Blur

Automated Solana Validator Version Synchronization

At SOL Strategies, managing multiple Solana validators across different networks and providers presents some operational challenges. One of these is keeping validator client versions current with their latest releases. This is important not just for our operations, but for the health of the broader Solana network. To address this challenge, we developed solana-validator-version-sync — a simple, open-source tool […]

October 1st 2025

SOL Strategies Team

Automated Solana Validator Version Synchronization

At SOL Strategies, managing multiple Solana validators across different networks and providers presents some operational challenges. One of these is keeping validator client versions current with their latest releases. This is important not just for our operations, but for the health of the broader Solana network.

To address this challenge, we developed solana-validator-version-sync — a simple, open-source tool that automatically monitors releases and executes configurable synchronization commands when new versions become available.

Press enter or click to view image in full size

Version synchronization is currently supported for agave, jito-solana, bam-client, and firedancer, with extensibility for other validator clients.

How It Works

solana-validator-version-sync operates in two modes: single-run or on a configurable interval. It is also role-aware, distinguishing between active (voting) and passive (non-voting) validators. For safety, by default it refrains from executing sync commands on active validators.

We’ve found it most useful to run the program across all validators, enabling automatic upgrades of passive backup nodes on Mainnet and on active Testnet nodes. This approach allows us to keep validators current within minutes of new allowed releases.

When a new release is detected, the program evaluates the following criteria before executing synchronization commands:

1. Validator Role: active validators do not run sync commands by default.

2. Version Constraints: Configurable semantic version constraints (e.g., >= 3.0.0, < 3.1.0) control when synchronization triggers

3. SFDP: Optional SFDP version compliance if configured

Once these conditions are satisfied, the configured synchronization commands execute automatically.

Implementation

We keep all validators up to date running the following command as a systemd service:

solana-validator-version-sync --config config.yaml run --on-interval 10m

The configuration example below then enables automatic version synchronization for Testnet validators. On Mainnet, only passive backup validators auto-upgrade to later be promoted using solana-validator-failover to become active. Once active the original primary counterpart node becomes passive and automatically auto-upgrades.

validator:
  client: jito-solana # jito-solana, firedancer, bam-client, or agave
  version_constraint: ">= 2.3.0, < 2.4.0" # stay on 2.3 patch releases
  identities:
    active: /home/solana/identities/active.json
    passive: /home/solana/identities/passive.json

cluster:
  name: testnet

sync:
  enabled_when_active: false # when true, trigger sync commands even if 
                             # validator reports the active identity in 
                             # getIdentity - on testnet it's generally ok to 
                             # set to true and take a validator offline for 
                             # a few minutes while it upgrades.

  enable_sfdp_compliance: true # ensure version changes are SFDP-compliant

  # build commands support templating - see github repo for more
  # every operator's setup is different
  commands:
    - name: build
      stream_output: true
      cmd: /home/solana/scripts/solana-validator-client.sh
      args: [
        "build", 
        "--client={{ .ValidatorClient }}",
        "--version={{ .VersionTo }}"
      ]

    - name: install
      stream_output: true
      cmd: /home/solana/scripts/solana-validator-client.sh
      args: [
        "install", 
        "--client={{ .ValidatorClient }}", 
        "--version={{ .VersionTo }}"
      ]
    
    - name: restart
      cmd: /home/solana/scripts/restart-validator-and-wait-healthy.sh
      args: ["--rpc-url={{ .ValidatorRPCURL }}"]

    - name: audit-trail
      cmd: /home/solana/scripts/audit-trail.sh
      args: [
        "--role={{ .ValidatorRole }}", 
        "--from-version={{ .VersionFrom }}", 
        "--to-version={{ .VersionTo }}"
      ]

    - name: notify
      cmd: /home/solana/scripts/notify-slack.sh
      args: [
        "--channel=solana-alerts", "--role={{ .ValidatorRole }}",
        "--from-version={{ .VersionFrom }}", "--to-version={{ .VersionTo }}",
      ]

Conclusion

solana-validator-version-sync provides a safe, automated approach to Solana validator version management, significantly reducing operational overhead. We’ve open sourced the tool and welcome contributions from other operators that find it useful too.

Disclaimer

  1. No Investment Advice or Offer: The information provided here is for general informational purposes only. It does not constitute an offer to sell or a solicitation of an offer to buy any securities, futures, options, or other financial instruments. This information is not investment, legal, or tax advice and should not be considered an individualized recommendation or personalized advice. Any decisions based on this information are your sole responsibility.
  2. Opinions, Accuracy, and Liability: Views expressed are as of the date indicated, are subject to change without notice, and may not reflect the views of SOL Strategies. Certain statements may be based on SOL Strategies’ views, estimates, or opinions, which may not be accurate or ultimately realized. Information obtained from third-party sources has not been independently verified, and SOL Strategies does not assume responsibility for its accuracy. SOL Strategies nor any of its affiliates, shareholders, partners, members, directors, officers, management, employees, or representatives makes any representation or warranty, express or implied, as to the accuracy or completeness of this information. SOL Strategies expressly disclaims any and all liability relating to or resulting from the use of this information.
  3. Company Disclosures & Conflicts: SOL Strategies and its affiliates may own investments or have other incentives in some of the digital assets, protocols, and securities discussed herein. SOL Strategies does not provide services as a money transmitter, custodian, bank, securities broker-dealer, investment adviser, or commodity trading adviser and is not registered as such with the U.S. Securities and Exchange Commission, the U.S. Commodity Futures Trading Commission, or other regulatory agencies.
  4. Important Risk Warnings: Past performance is no guarantee of future results, and examples are for illustrative purposes only. All investments carry risk. Digital asset investments are high-risk and subject to, among other things, price volatility, regulatory changes, and cyber-attacks. Cryptocurrencies are not legal tender, not backed by any government, can become illiquid, and may result in the total loss of principal. On-chain transactions are irreversible. These investments are only for investors with a high-risk tolerance.
  5. Forward-Looking Statements: The information provided herein may contain “forward-looking information” within the meaning of applicable securities laws. Forward-looking information is based on certain factors and assumptions believed to be reasonable at the time such statements are made and is subject to known and unknown risks, uncertainties, and other factors that may cause the actual results, level of activity, performance, or achievements to be materially different from those expressed or implied by such forward-looking information. There can be no assurance that such forward-looking information will prove to be accurate, as actual results and future events could differ materially from those anticipated in such information. Accordingly, readers should not place undue reliance on forward-looking information. Readers are cautioned against attributing undue certainty to forward-looking statements.
CTA Background

Take a stake
in Solana

Take a stake
in Solana

Shift Blue
Shift Orange
Contact Background Top
Contact Background Bottom

Let's talk!
We're here to help

Drop us a message

Please provide your info and we'll connect with you soon.

Type of Inquiry