Xolana Validator Guide

Setup your Xolana (X1 SVM) Validator. This is a Solana fork that Jack Levin is currently testing out. Running your node helps in stress testing the network and address potential bugs.

Disclaimer:

Not financial advise. The only incentive you get from running a node is earning the right to ask Jack, "wen X1 mainnet?", "wen xolana?" or anything related to X1. Check the original source guide here.

LFG!

Requirement

You need to have a dedicated server that meets the basic requirements of:

  • CPU: 3GHz or higher (recommended)

  • RAM: 1TB or higher (recommended)

Get a server from Interserver. Use my referral link if you want: https://www.interserver.net/r/950716

Setup Solana CLI

Run this command on your Terminal session:

sh -c "$(curl -sSfL https://release.solana.com/v1.18.15/install)"

Make sure the apply the PATH environment once the install is done. Test by running this:

solana --version

System Tuning (Linux only)

This will make sure that your server runs the node properly.

Run the following commands on your Terminal session:

  • Optimize sysctl knobs

sudo bash -c "cat >/etc/sysctl.d/21-solana-validator.conf <<EOF
# Increase UDP buffer sizes
net.core.rmem_default = 134217728
net.core.rmem_max = 134217728
net.core.wmem_default = 134217728
net.core.wmem_max = 134217728

# Increase memory mapped files limit
vm.max_map_count = 1000000

# Increase number of allowed open file descriptors
fs.nr_open = 1000000
EOF"
sudo sysctl -p /etc/sysctl.d/21-solana-validator.conf
  • Increase systemd and session file limits

Add the following line to the [Service] section of your systemd service file.

LimitNOFILE=1000000

Or, Add the following line to the [Manager] section of /etc/systemd/system.conf.

DefaultLimitNOFILE=1000000

Save your changes and then run these commands to reload the services.

sudo systemctl daemon-reload
sudo bash -c "cat >/etc/security/limits.d/90-solana-nofiles.conf <<EOF
# Increase process file descriptor count limit
* - nofile 1000000
EOF"

Close session, Logout and then Login. Check if the limits have taken effect.

ulimit -n

You should get a result showing 1000000.

In case it did not work for you, you can manually set it by using this command:

ulimit -n 1000000

Manual Xolana Build

Install Rust

curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
rustup component add rustfmt

Run update

rustup update

Update your system files

sudo apt-get update
sudo apt-get install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang cmake make libprotobuf-dev protobuf-compiler

Clone Xolana repo

git clone https://github.com/jacklevin74/xolana.git
cd xolana
git checkout xolana

Build Xolana validator

cargo build --release

Once the build is done, check the version you are running

./target/release/solana-validator -V

You should see a prompt like this:

solana-validator 1.18.15 (src:00000000; feat:4215500110, client:SolanaLabs)

Create Wallets

You need to create a main wallet id.json and 4 additional wallets for the validator namely; identity.json, vote.json, withdrawer.json, and stake.json.

Main wallet

solana-keygen new --no-passphrase -o id.json

4 additional wallets

solana-keygen new --no-passphrase -o identity.json
solana-keygen new --no-passphrase -o vote.json
solana-keygen new --no-passphrase -o withdrawer.json
solana-keygen new --no-passphrase -o stake.json

Take note of the seed phrases of your wallets. You might need them in the future.

Fund Wallets

Connect CLI to Xolana Network by running this command:

solana config set -u http://xolana.xen.network:8899

Then airdrop 100 SOL to your main wallet.

solana airdrop 100

Run Read Only Node

It is best practice to always run your node first in read only until it is fully synced.

Using the following command, this should run your server in read only.

nohup solana-validator --identity identity.json --limit-ledger-size 50000000 --rpc-port 8899 --entrypoint xolana.xen.network:8001 --full-rpc-api --log - --vote-account vote.json --max-genesis-archive-unpacked-size 1073741824 --no-incremental-snapshots --require-tower --enable-rpc-transaction-history --enable-extended-tx-metadata-storage --skip-startup-ledger-verification --no-poh-speed-test &

This will run the node in the background. You can check logs by running this command and see if it is working:

tail -f nohup.out

To check if your node is fully synced, you can run this command:

solana catchup --our-localhost

Stake SOL Tokens

Send 100 SOL to identity.json address. PUBKEY or public key is the address of your generated wallets.

solana transfer <IDENTITY_PUBKEY> 100 --allow-unfunded-recipient

Create Stake account

solana create-stake-account stake.json 10

Create Vote account

solana create-vote-account vote.json identity.json <WITHDRAWER_PUBKEY> --commission 10

Transfer SOL to Stake account

solana transfer <STAKE_PUBKEY> 10

Run Delegate Stakeke command

solana delegate-stake stake.json vote.json

Run Stake command

solana stake-account stake.json

Check your stakes on the vote.json address

solana stakes <VOTE_PUBKEY>

Relaunch Validator and Final Checks

Get ID of the running validator

ps aux | grep solana-validator

Kill validator

kill <# beside the logged in profile>
example:
kill 143551

Run the command again to check if it is still running.

ps aux | grep solana-validator

Run the validator using the following command:

nohup ./target/release/solana-validator --identity identity.json --limit-ledger-size 50000000 --rpc-port 8899 --entrypoint xolana.xen.network:8001 --full-rpc-api --log - --vote-account vote.json --max-genesis-archive-unpacked-size 1073741824 --no-incremental-snapshots --require-tower --enable-rpc-transaction-history --enable-extended-tx-metadata-storage --skip-startup-ledger-verification --rpc-pubsub-enable-block-subscription &

Check logs:

tail -f nohup.out

Check list of nodes and validators. Look for your identity and it should match the IP address of your server.

solana gossip

Finally, check validators list

solana validators

If your node does not have an exclamation warning, then it is running fine.

Congratulations, you have successfully ran your own Xolana Validator.

Need Help?

Join Telegram: https://t.me/+gBrQjWYlyZYxZTBk Watch Full guide video by Xenducation: https://youtu.be/o61ROj-H0zY?si=dTZ8gtcEDLBwRXfp

Last updated