← 返回
开发者工具 Key 中文

Slv Rpc

Ansible playbooks and templates to deploy, manage, and update Solana RPC nodes on mainnet, testnet, and devnet with support for RPC, indexing, and gRPC.
使用 Ansible 剧本和模板在主网、测试网和开发网上部署、管理和更新 Solana RPC 节点,支持 RPC、索引和 gRPC。
poppin-fumi
开发者工具 clawhub v0.13.15 2 版本 100000 Key: 需要
★ 4
Stars
📥 1,095
下载
💾 11
安装
2
版本
#ansible#blockchain#infrastructure#latest#rpc#solana

概述

SLV RPC Skill

Ansible playbooks and Jinja2 templates for deploying and managing Solana RPC nodes (mainnet, testnet, devnet).

Supported RPC Types

TypeDescription
------
RPCStandard RPC node
Index RPCFull-index RPC node (with Old Faithful/yellowstone-faithful)
Geyser gRPCRPC with Geyser gRPC streaming
Index RPC + gRPCFull-index + gRPC streaming

Directory Structure

ansible/
  mainnet-rpc/   — Mainnet RPC playbooks
  testnet-rpc/   — Testnet RPC playbooks
  devnet-rpc/    — Devnet RPC playbooks
  cmn/           — Shared common playbooks
jinja/
  mainnet-rpc/   — Mainnet Jinja2 templates
  testnet-rpc/   — Testnet Jinja2 templates
  devnet-rpc/    — Devnet Jinja2 templates
  cmn/           — Shared templates

CLI Command ↔ Playbook Mapping

The slv r CLI commands map directly to these playbooks. {net} = mainnet-rpc, testnet-rpc, or devnet-rpc.

CLI CommandPlaybookDescription
---------
slv r deploy{net}/init.ymlFull RPC node initialization and deployment
slv r start{net}/start_node.ymlStart RPC node
slv r stop{net}/stop_node.ymlStop RPC node
slv r restart{net}/restart_node.ymlRestart RPC node
slv r build:solana{net}/install_solana.ymlBuild Solana from source
slv r install:solanacmn/install_solana.ymlInstall Solana binary (deprecated, prefer build)
slv r setup:firedancer{net}/setup_firedancer.ymlSetup Firedancer
slv r update:firedancercmn/update_firedancer.ymlUpdate Firedancer binary
slv r update:script{net}/update_startup_config.ymlUpdate start-validator.sh from template
slv r update:geyser{net}/update_geyser.ymlUpdate Geyser plugin
slv r get:snapshot{net}/wget_snapshot.ymlDownload snapshot via aria2c
slv r cleanupcmn/rm_ledger.ymlRemove ledger/snapshot files
slv r list(no playbook)List RPC nodes (CLI only)
slv r update:allowed-ips(no playbook)Update allowed IPs (CLI only)
slv r init(no playbook)Interactive wizard (CLI only)

All Playbooks

Mainnet RPC (mainnet-rpc/)

PlaybookDescription
------
init.ymlFull RPC node initialization
init_richat_geyser.ymlInitialize Richat Geyser configuration
restart_node.ymlRestart RPC node
start_node.ymlStart RPC node
stop_node.ymlStop RPC node
install_solana.ymlBuild Solana from source
install_agave.ymlBuild Agave from source
install_jito.ymlBuild Jito from source
install_rust.ymlInstall Rust toolchain
install_package.ymlInstall system packages
install_richat.ymlInstall Richat gRPC plugin
install_of1.ymlInstall Old Faithful (yellowstone-faithful)
install_of1_service.ymlSetup Old Faithful systemd service
geyser_build.ymlBuild Yellowstone gRPC from source
geyser_richat_build.ymlBuild Richat gRPC plugin from source
update_geyser.ymlUpdate Geyser plugin
update_startup_config.ymlUpdate start-validator.sh from template
update_ubuntu.ymlUpdate Ubuntu packages
setup_firedancer.ymlSetup Firedancer for RPC
setup-solv-service.ymlSetup systemd service
start-solv-service.ymlStart systemd service
setup_ufw.ymlConfigure UFW firewall
setup_logrotate.ymlSetup log rotation
setup_norestart.ymlDisable auto-restart
configure_hugetlbfs.ymlConfigure hugepages for Firedancer
fail2ban_solana_rate_limit.ymlSetup fail2ban rate limiting
fail2ban_sshd.ymlSetup fail2ban for SSH
allow_ufw.ymlAdd UFW allow rules
add_solv.ymlAdd solv user
copy_keys.ymlCopy node keys
create-start-validator-sh.ymlGenerate start script from template
create-symlink.ymlCreate version symlinks
mount_disks.ymlMount and format disks
optimize_system.ymlOptimize system settings
run_restarter.ymlRun restarter script
run_snapshot_finder.ymlFind and download best snapshot

Testnet RPC (testnet-rpc/)

PlaybookDescription
------
init.ymlFull testnet RPC initialization
restart_node.ymlRestart node
start_node.yml / stop_node.ymlStart/stop node
install_solana.ymlBuild Solana from source
install_agave.yml / install_jito.ymlBuild client from source
install_richat.ymlInstall Richat plugin
geyser_build.ymlBuild Yellowstone gRPC
geyser_richat_build.ymlBuild Richat plugin from source
update_geyser.ymlUpdate Geyser plugin
update_firedancer.ymlUpdate Firedancer
update_startup_config.ymlUpdate start script
setup_firedancer.ymlSetup Firedancer
setup_solv_service.ymlSetup systemd service
create-start-validator-sh.ymlGenerate start script
wget_snapshot.ymlDownload snapshot

Devnet RPC (devnet-rpc/)

PlaybookDescription
------
init.ymlFull devnet RPC initialization
restart_node.ymlRestart node
start_node.yml / stop_node.ymlStart/stop node
install_solana.ymlBuild Solana from source
install_agave.yml / install_jito.ymlBuild client from source
install_richat.ymlInstall Richat plugin
geyser_build.ymlBuild Yellowstone gRPC
geyser_richat_build.ymlBuild Richat plugin from source
update_geyser.ymlUpdate Geyser plugin
update_startup_config.ymlUpdate start script
setup_firedancer.ymlSetup Firedancer
setup_solv_service.ymlSetup systemd service
create-start-validator-sh.ymlGenerate start script

Shared Common (cmn/)

PlaybookDescription
------
build_solana.ymlBuild Solana from source (dispatches to build_agave/build_jito)
build_agave.ymlBuild Agave from GitHub source
build_jito.ymlBuild Jito from GitHub source
install_solana.ymlInstall Solana binary (deprecated)
install_package.ymlInstall system packages
install_rust.ymlInstall Rust toolchain
mount_disks.yml / mount-disks.ymlMount and format disks
optimize_system.ymlOptimize system settings
disable_swap.ymlDisable swap
setup_logrotate.ymlConfigure log rotation
setup_node_exporter.ymlSetup Prometheus node exporter
setup_norestart.ymlDisable auto-restart
setup_unstaked_identity.ymlSetup unstaked identity keypair
restart_solv.ymlRestart solv service
start_solv.yml / stop_solv.ymlStart/stop solv service
start_firedancer.yml / stop_firedancer.ymlStart/stop Firedancer
copy_restart_sh.ymlCopy restarter script
copy_rpc_keys.ymlCopy RPC keys
update_ubuntu.ymlUpdate Ubuntu packages
wget_snapshot.ymlDownload snapshot
add_solv.ymlAdd solv user
fix_permissions.ymlFix file permissions

Key Variables (extra_vars)

VariableDescriptionDefault
---------
rpc_typeRPC node type (RPC, Index RPC, Geyser gRPC, Index RPC + gRPC)RPC
validator_typeClient type (agave, jito, firedancer-agave, firedancer-jito)
solana_versionSolana/Agave version
jito_versionJito version
firedancer_versionFiredancer version
yellowstone_grpc_versionYellowstone gRPC version
richat_versionRichat plugin version (e.g. richat-v8.1.0)
snapshot_urlSnapshot download URL
tpu_peer_addressTPU peer address (for Index RPC transaction forwarding)
limit_ledger_sizeLedger size limit200000000 (Index), 100000000 (others)
dynamic_port_rangePort range8000-8025
port_rpcRPC port8899
port_grpcgRPC port10000

Geyser Plugin Sources

Both plugins are built from source (no binary downloads):

  • Yellowstone gRPC: https://github.com/rpcpool/yellowstone-grpc
  • Richat: https://github.com/lamports-dev/richat

Usage

ansible-playbook -i inventory mainnet-rpc/init.yml \
  -e '{"rpc_type":"Index RPC","solana_version":"3.1.8","snapshot_url":"https://..."}'

No versions.yml required — all variables can be passed via extra_vars.

Interactive Deployment Flow

See AGENT.md for the full step-by-step flow and examples/inventory.yml for output format.

Required Variables

VariablePromptValidation
---------
server_ip"Target server IP?"Valid IPv4
network"mainnet, testnet, or devnet?"mainnet, testnet, devnet
region"Server region?"String
rpc_type"RPC type?"RPC, Index RPC, Geyser gRPC, Index RPC + gRPC
validator_type"Underlying client?"agave, jito, jito-bam, firedancer-agave
solana_version"Solana version? (default: 3.1.8)"Semver
identity_account"Node identity pubkey?"Base58 pubkey
snapshot_url"Snapshot URL? (auto for ERPC)"URL (cannot be empty for init)

Conditionally Required Variables

VariableDefaultWhen Required
---------
jito_versionMatches solana_versionjito/jito-bam types
firedancer_versionfiredancer types
yellowstone_grpc_versionYellowstone gRPC plugin
richat_versionRichat plugin
of1_versionIndex RPC (Old Faithful)
epochIndex RPC (faithful service)
faithful_proxy_target_urlIndex RPC

Optional Variables

VariableDefaultWhen Required
---------
ssh_usersolvAlways
port_rpc8899 (ERPC: 7211)Always
limit_ledger_size100000000Always
dynamic_port_range8000-8025Always
port_grpc10000gRPC types only
tpu_peer_addressIndex RPC (tx forwarding)
allowed_ssh_ipsStrongly recommended (UFW)
allowed_ipsOptional (UFW)
expected_shred_versionEpoch-dependentTestnet only

Optional: Reference RPC

VariableDescriptionDefault
---------
reference_rpc_urlReference RPC endpoint for slot sync comparison (e.g., ERPC)

ERPC API keys are free at https://erpc.global — enables full slot sync monitoring during deployment and updates.

Pre-flight: Fresh Server Setup

ansible-playbook -i inventory.yml cmn/add_solv.yml \
  -e '{"ansible_user":"ubuntu"}' --become

Deployment Command

All paths relative to skill's ansible/ directory:

cd /path/to/slv-rpc/ansible/
ansible-playbook -i inventory.yml {network}-rpc/init.yml \
  -e '{"rpc_type":"<type>","solana_version":"<version>"}'

版本历史

共 2 个版本

  • v0.13.15 当前
    2026-05-03 03:14 安全 安全
  • v0.10.2
    2026-03-29 15:58 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

communication-collaboration

Slv Grpc Geyser

poppin-fumi
使用 Ansible playbook 和模板部署和管理 Solana gRPC Geyser 流节点,支持 Yellowstone 或 Richat 插件。
★ 4 📥 1,184
developer-tools

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 667 📥 323,812
developer-tools

CodeConductor.ai

larsonreever
AI驱动平台,提供快速全栈开发、智能体、工作流自动化及低代码AI集成的可扩展产品创建。
★ 66 📥 179,853