docs(solana-rpc): expand agave and geyser runbook
This commit is contained in:
79
doc/step-002b-agave-validator-systemd.txt
Normal file
79
doc/step-002b-agave-validator-systemd.txt
Normal file
@@ -0,0 +1,79 @@
|
||||
Step 002B: agave-validator pod systemd (RPC-only, non-voting) + fix na problemy z ExecStart
|
||||
|
||||
Ten krok naprawia 2 typowe bledy po wklejeniu unit-a:
|
||||
1) "error: The subcommand '\\' wasn't recognized"
|
||||
2) RPC nie startuje, bo ExecStart zostal "polamany" (brakuje --rpc-port albo --log ma sciezke do katalogu)
|
||||
|
||||
Przyczyna:
|
||||
- W unit file kontynuacja linii w ExecStart to JEDEN backslash na koncu linii: `\`
|
||||
- NIE uzywaj `\\` (dwa backslashe) bo wtedy do programu trafia literalny argument `\` i validator pada.
|
||||
- Dodatkowo: unikaj bardzo dlugich linii, bo clipboard/paste potrafi je rozciac (i systemd wtedy ignoruje reszte).
|
||||
|
||||
0) Stop/wycisz restart loop
|
||||
sudo systemctl disable --now agave-validator
|
||||
sudo systemctl reset-failed agave-validator
|
||||
|
||||
1) Wrzuc poprawny unit (wielolinijkowy ExecStart z poprawna kontynuacja `\`)
|
||||
sudo tee /etc/systemd/system/agave-validator.service >/dev/null <<'EOF'
|
||||
[Unit]
|
||||
Description=Agave validator (mainnet, RPC-only, non-voting)
|
||||
After=network-online.target wg-quick@wg0.service
|
||||
Wants=network-online.target wg-quick@wg0.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=solana
|
||||
Group=solana
|
||||
WorkingDirectory=/var/lib/solana
|
||||
Environment=RUST_LOG=info
|
||||
LimitNOFILE=1048576
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
TimeoutStopSec=120
|
||||
ExecStart=/opt/solana/bin/agave-validator \
|
||||
--identity /var/lib/solana/identity.json \
|
||||
--no-voting \
|
||||
--private-rpc \
|
||||
--ledger /var/lib/solana/ledger \
|
||||
--accounts /var/lib/solana/accounts \
|
||||
--log /var/log/solana/validator.log \
|
||||
--bind-address 0.0.0.0 \
|
||||
--rpc-bind-address 10.66.66.1 \
|
||||
--rpc-port 8899 \
|
||||
--dynamic-port-range 8000-8025 \
|
||||
--entrypoint entrypoint.mainnet-beta.solana.com:8001 \
|
||||
--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \
|
||||
--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \
|
||||
--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \
|
||||
--full-rpc-api \
|
||||
--limit-ledger-size 50000000 \
|
||||
--geyser-plugin-config /etc/solana/yellowstone-geyser.json
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectSystem=full
|
||||
ReadWritePaths=/var/lib/solana/ledger /var/lib/solana/accounts /var/log/solana /var/lib/solana
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
2) Reload + start
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now agave-validator
|
||||
|
||||
3) Weryfikacja (na hoście)
|
||||
# Sprawdz, czy systemd widzi kompletne argv[] (ma byc --rpc-port 8899 i poprawna sciezka --log):
|
||||
systemctl show agave-validator -p ExecStart --no-pager
|
||||
|
||||
sudo systemctl status agave-validator --no-pager -l
|
||||
|
||||
# Czy porty sluchaja (RPC/WS na wg0):
|
||||
sudo ss -lntp | egrep ':8899\\b|:8900\\b' || true
|
||||
|
||||
# getHealth moze zwracac blad dopoki node nie dogoni klastra, wiec sprawdz getVersion:
|
||||
curl -sS -H 'content-type: application/json' \
|
||||
--data '{"jsonrpc":"2.0","id":1,"method":"getVersion"}' \
|
||||
http://10.66.66.1:8899 | jq .
|
||||
|
||||
# Logi:
|
||||
sudo journalctl -u agave-validator -n 120 --no-pager
|
||||
Reference in New Issue
Block a user