Solana Validator configuration
This documentation guide you on how to bootstrap a Solana Validator with our ansible playbook.
Our Ansible playbooks
We choose ansible to automate the validator setup. You can find playbooks here.
It's good practice to read the source code before executing it.
Quick start
For simplicity, we execute our ansible directly on the validator node.
Install solana-boot
For Stock Solana mainnet-beta
Bootstrap mainnet-beta validator
The init_validator.sh script is a wrapper to install some ansible dependencies and pass args to the playbook.
Go to the solana-bootstrap directory
cd solana-bootstartWe recommend not putting accounts on ramdisk for a validator with 256GB or less of ram.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account False \
--swap-file-size-gb 256 \
--ledger-path /mnt/solana_ledger/ledgerFor a validator with 512GB or more, we recommend putting accounts on ramdisk.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account True \
--swap-file-size-gb 512 \
--ledger-path /mnt/solana_ledger/ledgerTo see the complete list of args.
./scripts/init_validator.sh -hFor Stock Solana testnet
Bootstrap testnet validator
The init_validator.sh script is a wrapper to install some ansible dependencies and pass args to the playbook.
Go to the solana-bootstrap directory
cd solana-bootstartWe recommend not putting accounts on ramdisk for a validator with 256GB or less of ram.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account False \
--swap-file-size-gb 256 \
--ledger-path /mnt/solana_ledger/ledger \
-c testnetFor a validator with 512GB or more, we recommend putting accounts on ramdisk.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account True \
--swap-file-size-gb 512 \
--ledger-path /mnt/solana_ledger/ledger \
-c testnetTo see the complete list of args.
./scripts/init_validator.sh -hFor Jito Solana mainnet-beta
Bootstrap mainnet-beta validator with Amsterdam Block Engine
The init_validator.sh script is a wrapper to install some ansible dependencies and pass args to the playbook.
Go to the solana-bootstrap directory
cd solana-bootstartWe recommend not putting accounts on ramdisk for a validator with 256GB or less of ram.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account False \
--swap-file-size-gb 256 \
--ledger-path /mnt/solana_ledger/ledger \
--jito-enable True \
--jito-block-engine-url https://amsterdam.mainnet.block-engine.jito.wtf \
--jito-relayer-url http://amsterdam.mainnet.relayer.jito.wtf:8100 \
--jito-receiver-addr 74.118.140.240:1002 \
--jito-tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \
--jito-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \
--jito-merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--jito-commission-bps 500
For a validator with 512GB or more, we recommend putting accounts on ramdisk.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account True \
--swap-file-size-gb 512 \
--ledger-path /mnt/solana_ledger/ledger \
--jito-enable True \
--jito-block-engine-url https://amsterdam.mainnet.block-engine.jito.wtf \
--jito-relayer-url http://amsterdam.mainnet.relayer.jito.wtf:8100 \
--jito-receiver-addr 74.118.140.240:1002 \
--jito-tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \
--jito-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \
--jito-merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--jito-commission-bps 500To see the complete list of args.
./scripts/init_validator.sh -hBootstrap mainnet-beta validator with Frankfurt Block Engine
The init_validator.sh script is a wrapper to install some ansible dependencies and pass args to the playbook.
Go to the solana-bootstrap directory
cd solana-bootstartWe recommend not putting accounts on ramdisk for a validator with 256GB or less of ram.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account False \
--swap-file-size-gb 256 \
--ledger-path /mnt/solana_ledger/ledger \
--jito-enable True \
--jito-block-engine-url https://frankfurt.mainnet.block-engine.jito.wtf \
--jito-relayer-url http://frankfurt.mainnet.relayer.jito.wtf:8100 \
--jito-receiver-addr 145.40.93.84:1002 \
--jito-tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \
--jito-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \
--jito-merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--jito-commission-bps 500
For a validator with 512GB or more, we recommend putting accounts on ramdisk.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account True \
--swap-file-size-gb 512 \
--ledger-path /mnt/solana_ledger/ledger \
--jito-enable True \
--jito-block-engine-url https://frankfurt.mainnet.block-engine.jito.wtf \
--jito-relayer-url http://frankfurt.mainnet.relayer.jito.wtf:8100 \
--jito-receiver-addr 145.40.93.84:1002 \
--jito-tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \
--jito-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \
--jito-merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--jito-commission-bps 500To see the complete list of args.
./scripts/init_validator.sh -hBootstrap mainnet-beta validator with New York Block Engine
The init_validator.sh script is a wrapper to install some ansible dependencies and pass args to the playbook.
Go to the solana-bootstrap directory
cd solana-bootstartWe recommend not putting accounts on ramdisk for a validator with 256GB or less of ram.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account False \
--swap-file-size-gb 256 \
--ledger-path /mnt/solana_ledger/ledger \
--jito-enable True \
--jito-block-engine-url https://ny.mainnet.block-engine.jito.wtf \
--jito-relayer-url http://ny.mainnet.relayer.jito.wtf:8100 \
--jito-receiver-addr 141.98.216.96:1002 \
--jito-tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \
--jito-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \
--jito-merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--jito-commission-bps 500
For a validator with 512GB or more, we recommend putting accounts on ramdisk.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account True \
--swap-file-size-gb 512 \
--ledger-path /mnt/solana_ledger/ledger \
--jito-enable True \
--jito-block-engine-url https://ny.mainnet.block-engine.jito.wtf \
--jito-relayer-url http://ny.mainnet.relayer.jito.wtf:8100 \
--jito-receiver-addr 141.98.216.96:1002 \
--jito-tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \
--jito-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \
--jito-merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--jito-commission-bps 500To see the complete list of args.
./scripts/init_validator.sh -hBootstrap mainnet-beta validator with Tokyo Block Engine
The init_validator.sh script is a wrapper to install some ansible dependencies and pass args to the playbook.
Go to the solana-bootstrap directory
cd solana-bootstartWe recommend not putting accounts on ramdisk for a validator with 256GB or less of ram.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account False \
--swap-file-size-gb 256 \
--ledger-path /mnt/solana_ledger/ledger \
--jito-enable True \
--jito-block-engine-url https://tokyo.mainnet.block-engine.jito.wtf \
--jito-relayer-url http://tokyo.mainnet.relayer.jito.wtf:8100 \
--jito-receiver-addr 202.8.9.160:1002 \
--jito-tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \
--jito-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \
--jito-merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--jito-commission-bps 500
For a validator with 512GB or more, we recommend putting accounts on ramdisk.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account True \
--swap-file-size-gb 512 \
--ledger-path /mnt/solana_ledger/ledger \
--jito-enable True \
--jito-block-engine-url https://tokyo.mainnet.block-engine.jito.wtf \
--jito-relayer-url http://tokyo.mainnet.relayer.jito.wtf:8100 \
--jito-receiver-addr 202.8.9.160:1002 \
--jito-tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \
--jito-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \
--jito-merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--jito-commission-bps 500To see the complete list of args.
./scripts/init_validator.sh -hFor Jito Solana testnet
Bootstrap testnet validator with Dallas Block Engine
The init_validator.sh script is a wrapper to install some ansible dependencies and pass args to the playbook.
Go to the solana-bootstrap directory
cd solana-bootstartWe recommend not putting accounts on ramdisk for a validator with 256GB or less of ram.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account False \
--swap-file-size-gb 256 \
--ledger-path /mnt/solana_ledger/ledger \
--jito-enable True \
--jito-block-engine-url https://dallas.testnet.block-engine.jito.wtf \
--jito-relayer-url http://dallas.testnet.relayer.jito.wtf:8100 \
--jito-receiver-addr 147.28.154.132:1002 \
--jito-tip-payment-program-pubkey DCN82qDxJAQuSqHhv2BJuAgi41SPeKZB5ioBCTMNDrCC \
--jito-distribution-program-pubkey F2Zu7QZiTYUhPd7u9ukRVwxh7B71oA3NMJcHuCHc29P2 \
--jito-merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--jito-commission-bps 500 \
-c testnet
For a validator with 512GB or more, we recommend putting accounts on ramdisk.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account True \
--swap-file-size-gb 512 \
--ledger-path /mnt/solana_ledger/ledger \
--jito-enable True \
--jito-block-engine-url https://dallas.testnet.block-engine.jito.wtf \
--jito-relayer-url http://dallas.testnet.relayer.jito.wtf:8100 \
--jito-receiver-addr 147.28.154.132:1002 \
--jito-tip-payment-program-pubkey DCN82qDxJAQuSqHhv2BJuAgi41SPeKZB5ioBCTMNDrCC \
--jito-distribution-program-pubkey F2Zu7QZiTYUhPd7u9ukRVwxh7B71oA3NMJcHuCHc29P2 \
--jito-merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--jito-commission-bps 500 \
-c testnetTo see the complete list of args.
./scripts/init_validator.sh -hBootstrap testnet validator with New York Block Engine
The init_validator.sh script is a wrapper to install some ansible dependencies and pass args to the playbook.
Go to the solana-bootstrap directory
cd solana-bootstartWe recommend not putting accounts on ramdisk for a validator with 256GB or less of ram.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account False \
--swap-file-size-gb 256 \
--ledger-path /mnt/solana_ledger/ledger \
--jito-enable True \
--jito-block-engine-url https://nyc.testnet.block-engine.jito.wtf \
--jito-relayer-url http://nyc.testnet.relayer.jito.wtf:8100 \
--jito-receiver-addr 136.144.58.40:1002 \
--jito-tip-payment-program-pubkey DCN82qDxJAQuSqHhv2BJuAgi41SPeKZB5ioBCTMNDrCC \
--jito-distribution-program-pubkey F2Zu7QZiTYUhPd7u9ukRVwxh7B71oA3NMJcHuCHc29P2 \
--jito-merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--jito-commission-bps 500 \
-c testnet
For a validator with 512GB or more, we recommend putting accounts on ramdisk.
sudo ./scripts/init_validator.sh \
--use-ramdisk-for-account True \
--swap-file-size-gb 512 \
--ledger-path /mnt/solana_ledger/ledger \
--jito-enable True \
--jito-block-engine-url https://nyc.testnet.block-engine.jito.wtf \
--jito-relayer-url http://nyc.testnet.relayer.jito.wtf:8100 \
--jito-receiver-addr 136.144.58.40:1002 \
--jito-tip-payment-program-pubkey DCN82qDxJAQuSqHhv2BJuAgi41SPeKZB5ioBCTMNDrCC \
--jito-distribution-program-pubkey F2Zu7QZiTYUhPd7u9ukRVwxh7B71oA3NMJcHuCHc29P2 \
--jito-merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--jito-commission-bps 500 \
-c testnetTo see the complete list of args.
./scripts/init_validator.sh -hFinally
Last updated