Operator Guides
vNode Guide
Validator UPDATE version (Feb 2026 restart)
run as sol user sudo password may be required update your system installation cli sudo systemctl stop validator service sudo apt get update y && sudo apt get upgrade y reboot if you need to load a newer kernel choose which release you want to install if you dont already have the repo and this is a fresh install, go to the xandeum agave repo, use the instructions to build the software https //github com/xandeum/xandeum agave/tree/v3 0 14 upgrade use git checkout after cloning to get the right branch of the xandeum agave in your local repo git clone https //github com/xandeum/xandeum agave/ cd xandeum agave git checkout v3 0 14 upgrade there are many ways to build the agave software your specific setup will determine many things, such as the $path you keep your files, and how you transition from one version to anouther, and wheter you keep an old version around or not for rollback use the instructions published by anza to "install from source" published various places https //github com/xandeum/xandeum agave/blob/v3 0 14 upgrade/docs/src/cli/install md#build from source instructions if using agave maint util a tool such as agave maint util published by t3chie 404 (brad @xandeum) can be used to help handle some of these functions for you https //github com/t3chie 404/agave maint util this guide assumes you already have a working validator running and you have already used this agave maint util before if you haven't, use the readme to get familiar and start by going through the system tuner to set some important parameters and paths cd agave maint util/ cat start upgrade sh note the paths in the configuration settings at the top of the file (copy paste to notepad) they will be set to default when git stash / git pull are performed and will need to be put back how they were a future release of agave maint util will have a proper env file but has not been implemented yet git stash git pull next fix your paths in the start upgrade sh config section to match what you had remove old ledger rm /ledger/ rf fix cluster genesis and shred version add these arguments to the file vim /validator start sh new cluster info \ expected shred version 37688 \\ \ expected genesis hash 4ag7htmbo7xpyj5yzcsp3pecwjcrqjuqhavvgz2bghnb \\ remove if its in your file \ no snapshot fetch \\ full validator start sh example file from one of the xandeum nodes using only xandeum known validators \#!/bin/bash exec agave validator \\ \ known validator g6x4w89tja9odbsrncpeanathqbujbev5djrbzgrqhyv \\ \ known validator 5pw1ssxftqqklf9fu88898bmg1vv3tqyrrvkgkfrwobs \\ \ known validator 96wn2rrhfxxnmnjcn64qzcpbpckhvtukfwoertgrcddy \\ \ known validator dieytnni4upwxaj9ax4pvfwvyfy5fkleo3rrgn6q22lc \\ \ known validator g5qxt6hybxuihjanvzqa5ccx9ysflkzj2uzajnne5j94 \\ \ entrypoint xand 5 devnet xandeum com 8000 \\ \ entrypoint xand 4 devnet xandeum com 8000 \\ \ entrypoint xand 3 devnet xandeum com 8000 \\ \ entrypoint xand 2 devnet xandeum com 8000 \\ \ entrypoint xand 1 devnet xandeum com 8000 \\ \ expected shred version 37688 \\ \ expected genesis hash 4ag7htmbo7xpyj5yzcsp3pecwjcrqjuqhavvgz2bghnb \\ \ snapshot interval slots 500 \\ \ full snapshot interval slots 10000 \\ \ identity /validator keypair json \\ \ vote account /vote keypair json \\ \ ledger /ledger/ \\ \ dynamic port range 8000 10000 \\ \ rpc port 8899 \\ \ log /home/sol/data/logs/solana validator log \\ \ no poh speed test \\ \ limit ledger size 30000000 \\ next, add a parameter to validator service file in the \[service] section make sure youhave these two parameters sudo vim /etc/systemd/system/validator service limitnofile=2000000 limitmemlock=2000000000 reload daemon sudo systemctl daemon reload get branches on xandeum agave repo cd /agave maint util/ /start upgrade sh list branches xandeum output showing available branches for variant xandeum using source directory /home/sol/data/xandeum agave repository url https //github com/xandeum/xandeum agave git source directory /home/sol/data/xandeum agave already exists ensuring correct ownership of existing /home/sol/data/xandeum agave for user sol fetching updates from remote origin newest 20 (approx) available branches (local and remote tracking, sorted by most recent commit first) 2026 02 09 23 53 08 +0530 origin/v2 3 13 upgrade 2026 02 04 16 32 18 +0530 origin/rpc fix 2026 01 29 12 37 06 +0530 origin/v3 0 14 stoinc 2026 01 14 12 21 10 +0530 origin/v3 0 14 upgrade 2025 11 26 11 41 02 +0530 origin/reinheim 2025 11 06 16 58 40 +0530 origin/upgrade 2025 10 31 00 40 44 +0700 origin/v0 3 9 agave 2025 10 08 11 01 05 0700 origin/agave v3 0 6 2025 09 19 19 20 53 +0530 origin/ingolstadt 2025 09 19 19 20 53 +0530 origin/xandeum v3 0 6 upgrade 2025 09 19 16 42 14 +0530 x2 2 0 herrenberg 2025 09 19 16 42 14 +0530 origin/x2 2 0 herrenberg 2025 09 19 16 41 50 +0530 origin/perf fix 2025 09 06 09 32 47 0700 origin/fix/perf 2025 08 27 17 42 43 0700 origin/delay fix 2025 05 27 23 20 44 +0530 x2 2 0 munich 2025 05 27 23 20 44 +0530 origin/x2 2 0 munich 2025 05 20 19 14 48 +0530 origin/show atals rpc api 2025 04 23 18 10 23 +0530 origin/x2 2 0 2025 04 07 12 19 45 +0530 origin/zmq sockets in start upgrade script j ( jobs) can be used to determine number of worker threads to build with (it can also be set in the config section of the start upgrade sh file ) cd /agave maint util/ /start upgrade sh origin/v3 0 14 upgrade variant xandeum j 12 output build successful for origin/v2 3 13 upgrade creating directory for compiled version /home/sol/data/compiled/origin v2 3 13 upgrade/bin syncing compiled binaries using build output from custom cargo target dir /tmp/cargo target 1770689871/release note cargo install all sh doesn't respect cargo target dir, using actual build location build complete check artifacts in /home/sol/data/compiled/origin v2 3 13 upgrade/bin press enter to update active release symlink \<press enter> proceeding with symlink update backing up current symlink from /home/sol/data/compiled/origin v2 3 13 upgrade/bin to /home/sol/data/compiled/active release 20260212055648 before upgrade removing old symlink (if any remaining after backup attempt) /home/sol/data/compiled/active release creating new symlink /home/sol/data/compiled/active release > /home/sol/data/compiled/origin v3 0 14 upgrade/bin verifying new version using binary from symlink (direct path) running /home/sol/data/compiled/active release/agave validator v agave validator 3 0 14 (src\ aefe7c56; feat 3604001754, client\ xandeum) agave validator 3 0 14 (src\ aefe7c56; feat 3604001754, client\ xandeum) ref used for this upgrade = origin/v3 0 14 upgrade (compiled into directory origin v3 0 14 upgrade) performing secondary verification (from home directory using system path) temporarily changed to directory /home/sol attempting to run agave validator v (using existing system path) agave validator 3 0 14 (src\ aefe7c56; feat 3604001754, client\ xandeum) agave validator 3 0 14 (src\ aefe7c56; feat 3604001754, client\ xandeum) secondary verification successful 'agave validator' found in system path secondary verification attempt complete verification step complete pausing before restart prompt at this point you can use ctrl+c to cancel there is no need to restart when the validator is already stopped we are ready to start the validator again sudo systemctl enable now validator service create your vote account solana airdrop 1 /validator keypair json solana create vote account /vote keypair json /validator keypair json /withdraw keypair json watch logs to see if you connect to the new cluster ( 2 3 minutes) your vote account will be staked sometime after your vote account is created ping brad in discord operations (vnodes) channel to ensure it is caught if you have issues, try looking here docid\ myh9ncgna169k2hipdjba docid\ iz8k2iulzwip78mlxbge1 docid\ x8yesauj1rjaemmnrp3tb