Solana Validator configuration
This documentation guide you on how to bootstrap a Solana Validator with our ansible playbook.
Last updated
This documentation guide you on how to bootstrap a Solana Validator with our ansible playbook.
Last updated
ansible
git
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.
For simplicity, we execute our ansible directly on the validator node.
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-boot
We 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
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
To see the complete list of args.
./scripts/init_validator.sh -h
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-boot
We 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 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 \
-c testnet
To see the complete list of args.
./scripts/init_validator.sh -h
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-boot
We 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 500
To see the complete list of args.
./scripts/init_validator.sh -h
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-boot
We 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 500
To see the complete list of args.
./scripts/init_validator.sh -h
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-boot
We 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 500
To see the complete list of args.
./scripts/init_validator.sh -h
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-boot
We 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 500
To see the complete list of args.
./scripts/init_validator.sh -h
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-boot
We 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 testnet
To see the complete list of args.
./scripts/init_validator.sh -h
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-boot
We 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 testnet
To see the complete list of args.
./scripts/init_validator.sh -h
After the playbook succeeds, you will see some instructions on how manually finish your setup.
Where to copy your validator-keypair.json
Create a symlink to your validator-keypair.json for node-transition (zero-downtime).
Where to copy your vote-account-keypair.json
Build Jito Software with build-jito.sh
or with official Jito documentation