Solana Boot
  • Welcome to Solana Boot
  • Deploy a server
  • Initial Server Setup
  • Solana Validator configuration
  • Node Transition (Hot Swap)
Powered by GitBook
On this page
  • Our Ansible playbooks
  • Quick start
  • Install solana-boot
  • For Stock Solana mainnet-beta
  • For Stock Solana testnet
  • For Jito Solana mainnet-beta
  • For Jito Solana testnet
  • Finally

Solana Validator configuration

This documentation guide you on how to bootstrap a Solana Validator with our ansible playbook.

PreviousInitial Server SetupNextNode Transition (Hot Swap)

Last updated 2 years ago

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

Log in to your server
ssh ubuntu@<your ip>
Clone the clone repo
git clone https://github.com/manystake/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-bootstart

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

For 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-bootstart

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

For 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-bootstart

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
Bootstrap 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-bootstart

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
Bootstrap 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-bootstart

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
Bootstrap 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-bootstart

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

For 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-bootstart

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
Bootstrap 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-bootstart

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

Finally

Finish your setup

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

GitHub - manystake/solana-bootGitHub
Logo