Last active
July 30, 2025 03:05
-
-
Save AlekseiOvchinnikov13/c0f553bb4d5af7280140a76d9ee00496 to your computer and use it in GitHub Desktop.
Solana JITO
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # check and choose | |
| https://jito-foundation.gitbook.io/mev/jito-solana/command-line-arguments#mainnet-arguments | |
| https://jito-labs.gitbook.io/mev/searcher-resources/block-engine/mainnet-addresses | |
| https://docs.jito.wtf/lowlatencytxnsend/ | |
| # source service | |
| https://gist.githubusercontent.com/Bambarello/76f6a38bd375dac478a97ba6c2648ef1/raw/service-solana-jito-mainnet | |
| nano /etc/systemd/system/solana.service | |
| Environment="BLOCK_ENGINE_URL="https://amsterdam.mainnet.block-engine.jito.wtf"" | |
| Environment="RELAYER_URL="http://amsterdam.mainnet.relayer.jito.wtf:8100"" | |
| Environment="SHRED_RECEIVER_ADDR="74.118.140.240:1002"" | |
| # local relayer | |
| --relayer-url http://127.0.0.1:11226 \ | |
| --account-index program-id \ | |
| --account-index-include-key AddressLookupTab1e1111111111111111111111111 \ | |
| ExecStart=/root/.local/share/solana/install/releases/jito/bin/solana-validator \ | |
| --tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \ | |
| --tip-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \ | |
| --merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \ | |
| --commission-bps 10000 \ | |
| --relayer-url $RELAYER_URL \ | |
| --block-engine-url $BLOCK_ENGINE_URL \ | |
| --shred-receiver-address $SHRED_RECEIVER_ADDR \ | |
| # NEW BLOCK ENGINE | |
| https://telegra.ph/Ustanovka-Deez-relayer-03-29 | |
| declare -A locations=( | |
| ["Global"]="global.mainnet.block-engine.deez.wtf" | |
| ["LA"]="la.mainnet.block-engine.deez.wtf" | |
| ["NY"]="ny.mainnet.block-engine.deez.wtf" | |
| ["Oslo"]="oslo.mainnet.block-engine.deez.wtf" | |
| ["Vienna"]="vienna.mainnet.block-engine.deez.wtf" | |
| ["Warsaw"]="warsaw.mainnet.block-engine.deez.wtf" | |
| ["Frankfurt"]="frankfurt.mainnet.block-engine.deez.wtf" | |
| ["London"]="london.mainnet.block-engine.deez.wtf" | |
| ["Kyiv"]="kyiv.mainnet.block-engine.deez.wtf" | |
| ["Tokyo"]="tokyo.mainnet.block-engine.deez.wtf" | |
| ) | |
| for city in "${!locations[@]}"; do | |
| hostname="${locations[$city]}" | |
| echo -n "Ping $hostname ($city) - " | |
| ping -c 4 "$hostname" | grep 'avg' | awk -F'/' '{print $5 " ms"}' | |
| done | |
| nano /etc/systemd/system/solana.service | |
| export engine="https://frankfurt.mainnet.block-engine.deez.wtf" | |
| /root/.local/share/solana/install/releases/v2.0.19-jito/bin/agave-validator --ledger /root/solana/validator-ledger set-block-engine-config --block-engine-url ${engine} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| curl https://sh.rustup.rs -sSf | sh | |
| source $HOME/.cargo/env | |
| rustup component add rustfmt; \ | |
| rustup update; \ | |
| sudo apt-get update; \ | |
| sudo apt-get install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang cmake make libprotobuf-dev protobuf-compiler | |
| # https://github.com/jito-foundation/jito-solana/releases | |
| export TAG=v2.3.6-jito | |
| # install | |
| git clone https://github.com/jito-foundation/jito-solana.git --recurse-submodules; \ | |
| cd jito-solana; \ | |
| git checkout tags/$TAG; \ | |
| git submodule update --init --recursive; \ | |
| CI_COMMIT=$(git rev-parse HEAD) scripts/cargo-install-all.sh --validator-only ~/.local/share/solana/install/releases/"$TAG" | |
| # update | |
| cd jito-solana; \ | |
| git pull; \ | |
| git checkout tags/$TAG; \ | |
| git submodule update --init --recursive; \ | |
| CI_COMMIT=$(git rev-parse HEAD) scripts/cargo-install-all.sh --validator-only ~/.local/share/solana/install/releases/"$TAG" | |
| ln -sfn ~/.local/share/solana/install/releases/"$TAG" ~/.local/share/solana/install/releases/jito; \ | |
| ls -l ~/.local/share/solana/install/releases/jito; \ | |
| ~/.local/share/solana/install/releases/jito/bin/solana --version | |
| echo 'if $programname == "agave-validator" then stop' > /etc/rsyslog.d/01-solana-remove.conf && sudo systemctl restart rsyslog | |
| export BIN_VALIDATOR=$(which solana-validator); \ | |
| wget --limit-rate=400M --trust-server-names https://api.mainnet-beta.solana.com/snapshot.tar.bz2 -P /root/solana/validator-ledger && sleep 30 && | |
| wget --limit-rate=400M --trust-server-names https://api.mainnet-beta.solana.com/incremental-snapshot.tar.bz2 -P /root/solana/validator-ledger && | |
| ${BIN_VALIDATOR} --ledger /root/solana/validator-ledger exit --skip-new-snapshot-check --min-idle-time 30 --max-delinquent-stake 15 && | |
| systemctl daemon-reload && systemctl restart solana; | |
| export BIN_VALIDATOR=$(which solana-validator); \ | |
| wget --limit-rate=400M --trust-server-names https://api.mainnet-beta.solana.com/incremental-snapshot.tar.bz2 -P /root/solana/validator-ledger && | |
| ${BIN_VALIDATOR} --ledger /root/solana/validator-ledger exit --skip-new-snapshot-check --min-idle-time 60 --max-delinquent-stake 15 && | |
| systemctl daemon-reload && systemctl restart solana; | |
| export BIN_VALIDATOR=$(which solana-validator); \ | |
| ${BIN_VALIDATOR} --ledger /root/solana/validator-ledger exit --min-idle-time 60 --max-delinquent-stake 15 && | |
| systemctl daemon-reload && systemctl restart solana; | |
| wget --limit-rate=400M --trust-server-names https://api.mainnet-beta.solana.com/snapshot.tar.bz2 -P /root/solana/validator-ledger && sleep 30 && | |
| wget --limit-rate=400M --trust-server-names https://api.mainnet-beta.solana.com/incremental-snapshot.tar.bz2 -P /root/solana/validator-ledger | |
| export BIN_VALIDATOR=$(which solana-validator); \ | |
| ${BIN_VALIDATOR} --ledger /root/solana/validator-ledger exit --skip-new-snapshot-check --min-idle-time 60 --max-delinquent-stake 15 && systemctl daemon-reload && systemctl restart solana; | |
| export BIN_VALIDATOR=$(which solana-validator); \ | |
| curl -s https://raw.githubusercontent.com/c29r3/solana-snapshot-finder/main/snapshot-finder.py --output /root/snapshot-finder.py \ | |
| && python3 /root/snapshot-finder.py --snapshot_path /root/solana/validator-ledger/remote/ \ | |
| --with_private_rpc \ | |
| --measurement_time 10 \ | |
| --min_download_speed 100 \ | |
| --max_latency 100 \ | |
| --max_snapshot_age 800 \ | |
| -r https://api.mainnet-beta.solana.com && \ | |
| ${BIN_VALIDATOR} --ledger /root/solana/validator-ledger exit --skip-new-snapshot-check --min-idle-time 60 --max-delinquent-stake 15 && \ | |
| systemctl daemon-reload && systemctl restart solana; | |
| # # ${BIN_VALIDATOR} --ledger ${HOME}/solana/validator-ledger wait-for-restart-window --min-idle-time 60 --max-delinquent-stake 15 && systemctl daemon-reload && systemctl restart solana | |
| # # ${BIN_VALIDATOR} --ledger /mnt/validator-ledger wait-for-restart-window --min-idle-time 60 --max-delinquent-stake 15 && systemctl daemon-reload && systemctl restart solana | |
| solana catchup /root/solana/validator-keypair.json http://127.0.0.1:8899 | |
| solana validators -r -n | grep "$(solana-keygen pubkey /root/solana/validator-keypair.json)" | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ####################################################################################################################### | |
| export TAG=v2.1.11 | |
| export TAG1=v2.1.11-jito | |
| sh -c "$(curl -sSfL https://release.anza.xyz/$TAG/install)" | |
| sh -c "$(curl -sSfL https://release.jito.wtf/$TAG1/install)" | |
| #install | |
| git clone https://github.com/jito-foundation/jito-solana.git --recurse-submodules; \ | |
| cd jito-solana; | |
| git reset --hard | |
| git pull || true | |
| git checkout tags/$TAG | |
| git submodule update --init --recursive | |
| RUSTFLAGS="-C target-cpu=native" CI_COMMIT=$(git rev-parse HEAD) scripts/cargo-install-all.sh --validator-only ~/.local/share/solana/install/releases/"$TAG" | |
| ln -sfn ~/.local/share/solana/install/releases/"$TAG"/* ~/.local/share/solana/install/releases/jito | |
| ls -l ~/.local/share/solana/install/releases/jito | |
| /root/.local/share/solana/install/releases/jito/bin/agave-validator --version | |
| echo 'if $programname == "agave-validator" then stop' > /etc/rsyslog.d/01-solana-remove.conf && sudo systemctl restart rsyslog | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| https://telegra.ph/Deez-relayer-03-24 | |
| Поставить Jito на валидатора | |
| # Сгенерировать ключи для релеера и добавить их в wl в дискорде | |
| export NEWUSER=relayer | |
| adduser $NEWUSER; \ | |
| usermod -aG sudo $NEWUSER; \ | |
| echo "$NEWUSER ALL=(ALL) NOPASSWD: ALL" | sudo EDITOR='tee -a' visudo; \ | |
| sudo service ssh restart; \ | |
| su - $NEWUSER | |
| mkdir $HOME/.keys | |
| openssl genrsa --out $HOME/.keys/private.pem | |
| openssl rsa --in $HOME/.keys/private.pem --pubout --out $HOME/.keys/public.pem | |
| sudo su - root | |
| solana-keygen new --no-bip39-passphrase --outfile /home/relayer/.keys/relayer-keypair.json | |
| solana-keygen pubkey /home/relayer/.keys/relayer-keypair.json | |
| chown -R relayer:relayer /home/relayer/.keys/ | |
| # Find closest engine JITO https://jito-labs.gitbook.io/mev/searcher-resources/block-engine/mainnet-addresses | |
| for entry in "amsterdam.mainnet.block-engine.jito.wtf Amsterdam" "frankfurt.mainnet.block-engine.jito.wtf Frankfurt" "ny.mainnet.block-engine.jito.wtf NY" "tokyo.mainnet.block-engine.jito.wtf Tokyo" "slc.mainnet.block-engine.jito.wtf"; do | |
| hostname="${entry%% *}" | |
| city="${entry##* }" | |
| echo -n "Ping $hostname ($city) - " | |
| ping -c 4 "$hostname" | grep 'avg' | awk -F'/' '{print $5 " ms"}' | |
| done | |
| # Building relayer | |
| su relayer | |
| cd $HOME | |
| curl https://sh.rustup.rs -sSf | sh | |
| source "$HOME/.cargo/env" | |
| sudo apt-get install protobuf-compiler clang llvm | |
| curl -s https://gist.githubusercontent.com/AlekseiOvchinnikov13/c0f553bb4d5af7280140a76d9ee00496/raw/env.sh --output env.sh; \ | |
| sudo nano env.sh | |
| curl -s https://gist.githubusercontent.com/AlekseiOvchinnikov13/c0f553bb4d5af7280140a76d9ee00496/raw/relayer_build_deez.sh --output relayer_build_deez.sh && bash relayer_build_deez.sh | |
| curl -s https://gist.githubusercontent.com/AlekseiOvchinnikov13/c0f553bb4d5af7280140a76d9ee00496/raw/relayer_service_deez.sh --output relayer_service_deez.sh && bash relayer_service_deez.sh | |
| sudo nano /etc/systemd/system/relayer.service | |
| # --allowed-validators | |
| solana-keygen pubkey /root/solana/validator-keypair.json | |
| jito-transaction-relayer -V | |
| netstat -tn | grep 8374 | |
| ESTABLISHED | |
| sudo systemctl status relayer.service | |
| sudo systemctl daemon-reload; sudo systemctl restart relayer.service; sudo journalctl -u relayer.service -f --no-hostname | |
| sudo systemctl daemon-reload; sudo systemctl stop relayer.service; sudo journalctl -u relayer.service -f --no-hostname | |
| solana-keygen pubkey /home/relayer/.keys/relayer-keypair.json | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| cd /home/relayer/deez-relayer | |
| git fetch --all \ | |
| git reset --hard origin/master \ | |
| git pull \ | |
| git submodule update -i -r \ | |
| cargo b --release -j 4 | |
| sudo systemctl daemon-reload; sudo systemctl restart relayer.service; sudo journalctl -u relayer.service -f --no-hostname | |
| sudo systemctl daemon-reload; sudo systemctl restart relayer.service; sudo journalctl -u relayer.service -f --no-hostname | grep 'Current epoch connectivity:' | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| BIN_PATH=$(which solana) | |
| BLOCK_ENGINE_URL="https://ny.mainnet.block-engine.jito.wtf" | |
| #RELAYER_TAG=v0.1.15 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| . ./env.sh | |
| #TAG=${RELAYER_TAG} | |
| # build | |
| cd ~/ | |
| rm -rf ~/deez-relayer | |
| #rm -rf ~/jito-relayer | |
| git clone https://github.com/deez-labs/deez-relayer.git | |
| #git clone https://github.com/jito-foundation/jito-relayer.git | |
| #cd ~/jito-relayer/jito-protos/protos/ && git clone https://github.com/jito-labs/mev-protos.git | |
| #mv mev-protos/* ./ | |
| cd ~/deez-relayer | |
| #cd ~/jito-relayer | |
| git pull | |
| git submodule update -i -r | |
| cargo b --release -j 4 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| . ./env.sh | |
| SERVICE_NAME='relayer' | |
| ##### create service file ##### | |
| cat > ${HOME}/${SERVICE_NAME}.service <<EOF | |
| [Unit] | |
| Description=Jito relayer | |
| After=network.target | |
| StartLimitIntervalSec=0 | |
| [Service] | |
| Type=simple | |
| Restart=always | |
| RestartSec=1 | |
| User=${USER} | |
| LimitNOFILE=2048000 | |
| Environment=SOLANA_METRICS_CONFIG="host=http://metrics.jito.wtf:8086,db=relayer,u=relayer-operators,p=jito-relayer-write" | |
| Environment="BLOCK_ENGINE_URL=${BLOCK_ENGINE_URL}" | |
| Environment="GRPC_BIND_IP=127.0.0.1" | |
| # Environment=DISABLE_MEMPOOL=true | |
| ExecStart=${HOME}/deez-relayer/target/release/jito-transaction-relayer \ | |
| --rpc-servers "http://127.0.0.1:8899 https://api.mainnet-beta.solana.com" \ | |
| --websocket-servers "ws://127.0.0.1:8900 ws://api.mainnet-beta.solana.com" \ | |
| --block-engine-url ${BLOCK_ENGINE_URL} \ | |
| --keypair-path ${HOME}/.keys/relayer-keypair.json \ | |
| --signing-key-pem-path ${HOME}/.keys/private.pem \ | |
| --verifying-key-pem-path ${HOME}/.keys/public.pem \ | |
| --allowed-validators <identity key> \ | |
| --public-ip $(curl -s checkip.amazonaws.com) \ | |
| --grpc-bind-ip=127.0.0.1 \ | |
| --packet-delay-ms=200 | |
| [Install] | |
| WantedBy=multi-user.target | |
| EOF | |
| # --allowed-validators ${allowed_validators} \ | |
| sudo mv $HOME/${SERVICE_NAME}.service /etc/systemd/system/${SERVICE_NAME}.service | |
| sudo systemctl daemon-reload | |
| sudo systemctl enable ${SERVICE_NAME}.service | |
| # create aliases | |
| ALIAS=$(cat ~/.bashrc | grep ${SERVICE_NAME}) | |
| if [ -z "${ALIAS}" ] | |
| then | |
| echo "" >> ~/.bashrc | |
| echo "# ${SERVICE_NAME} alias" >> ~/.bashrc | |
| echo "alias ${SERVICE_NAME}start='sudo systemctl start ${SERVICE_NAME}.service'" >> ~/.bashrc | |
| echo "alias ${SERVICE_NAME}stop='sudo systemctl stop ${SERVICE_NAME}.service'" >> ~/.bashrc | |
| echo "alias ${SERVICE_NAME}restart='sudo systemctl restart ${SERVICE_NAME}.service'" >> ~/.bashrc | |
| echo "alias ${SERVICE_NAME}status='sudo systemctl status ${SERVICE_NAME}.service'" >> ~/.bashrc | |
| echo "alias ${SERVICE_NAME}logs='sudo journalctl -u ${SERVICE_NAME} -f --no-hostname | grep -v solana_metrics'" >> ~/.bashrc | |
| else | |
| echo "alias already added" | |
| fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment