docs(solana-rpc): expand agave and geyser runbook
This commit is contained in:
70
doc/step-002f-agave-build-from-source-latest.txt
Normal file
70
doc/step-002f-agave-build-from-source-latest.txt
Normal file
@@ -0,0 +1,70 @@
|
||||
Step 002F: Build Agave (agave-validator) z najnowszych zrodel (pin do releasu) i instalacja do /opt/solana/bin
|
||||
|
||||
Cel:
|
||||
- Zbudowac `agave-validator` ze zrodel z pinu do konkretnego releasu (stable dla mainnet).
|
||||
- Nie robic "floating HEAD" (zeby nie wjechal update bez kontroli).
|
||||
|
||||
Konwencja:
|
||||
- "najnowsza wersja" = najnowszy stabilny release dla mainnet z GitHub Releases repo `anza-xyz/agave`.
|
||||
(Zweryfikuj przed startem: tag typu v3.0.x.)
|
||||
|
||||
0) Packages (build deps)
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y \
|
||||
build-essential pkg-config libssl-dev \
|
||||
clang llvm-dev libclang-dev \
|
||||
cmake protobuf-compiler libudev-dev zlib1g-dev \
|
||||
curl jq git ca-certificates
|
||||
|
||||
1) Uzytkownik + katalogi
|
||||
sudo getent group solana >/dev/null || sudo groupadd --system solana
|
||||
sudo id -u solana >/dev/null 2>&1 || sudo useradd --system --gid solana \
|
||||
--home-dir /var/lib/solana --create-home --shell /bin/bash solana
|
||||
|
||||
sudo install -d -o root -g root -m 0755 /opt/solana/bin
|
||||
sudo install -d -o solana -g solana -m 0750 /var/lib/solana/src
|
||||
|
||||
2) Wybierz tag releasu (stable dla mainnet)
|
||||
# Opcja A (manual): sprawdz Releases i wpisz tag, np.:
|
||||
AGAVE_VERSION_TAG="v3.0.13"
|
||||
|
||||
# Opcja B (CLI): pobierz liste tagow i wybierz najwyzszy semver (bez rc/beta)
|
||||
# (Uwaga: to korzysta z network; jesli nie masz neta - uzyj opcji A.)
|
||||
AGAVE_VERSION_TAG="$(
|
||||
git ls-remote --refs --tags https://github.com/anza-xyz/agave.git 'v*' \
|
||||
| awk -F/ '{print $NF}' \
|
||||
| rg -v '(rc|beta|alpha)' \
|
||||
| sort -V \
|
||||
| tail -n1
|
||||
)"
|
||||
echo "AGAVE_VERSION_TAG=$AGAVE_VERSION_TAG"
|
||||
|
||||
3) Rust toolchain
|
||||
# Rekomendacja: uzyj rustup (Agave ma pinned toolchain w repo).
|
||||
sudo -u solana -H bash -lc 'command -v rustup >/dev/null 2>&1 || (curl -sSfL https://sh.rustup.rs | sh -s -- -y)'
|
||||
|
||||
4) Clone + build (pin do tagu)
|
||||
AGAVE_SRC_DIR="/var/lib/solana/src/agave-${AGAVE_VERSION_TAG}"
|
||||
|
||||
sudo -u solana -H bash -lc "
|
||||
set -euo pipefail
|
||||
export PATH=/var/lib/solana/.cargo/bin:\$PATH
|
||||
rm -rf \"${AGAVE_SRC_DIR}\"
|
||||
git clone --depth 1 --branch \"${AGAVE_VERSION_TAG}\" https://github.com/anza-xyz/agave.git \"${AGAVE_SRC_DIR}\"
|
||||
cd \"${AGAVE_SRC_DIR}\"
|
||||
|
||||
# Agave ma wrapper `./cargo`, ktory bierze pinned toolchain z repo.
|
||||
./cargo build --release -p agave-validator
|
||||
"
|
||||
|
||||
5) Install do /opt/solana/bin
|
||||
sudo install -o root -g root -m 0755 \
|
||||
"${AGAVE_SRC_DIR}/target/release/agave-validator" \
|
||||
/opt/solana/bin/agave-validator
|
||||
|
||||
/opt/solana/bin/agave-validator --version
|
||||
|
||||
6) Uwagi (operacyjne)
|
||||
- Jesli budujesz pluginy (Geyser), trzymaj je na tym samym pinned releasie i najlepiej w tej samej "epoce" API.
|
||||
- Po update do nowego releasu: buduj validator + pluginy ponownie i restartuj systemd.
|
||||
|
||||
Reference in New Issue
Block a user