← 返回
沟通协作 中文

Slv Grpc Geyser

Ansible playbooks and templates for deploying and managing Solana gRPC Geyser streaming nodes with Yellowstone or Richat plugins.
使用 Ansible playbook 和模板部署和管理 Solana gRPC Geyser 流节点,支持 Yellowstone 或 Richat 插件。
poppin-fumi
沟通协作 clawhub v0.13.15 2 版本 100000 Key: 无需
★ 4
Stars
📥 1,173
下载
💾 24
安装
2
版本
#ansible#blockchain#geyser#grpc#infrastructure#latest#solana#streaming

概述

SLV gRPC Geyser Skill

Ansible playbooks and Jinja2 templates for deploying and managing Solana gRPC Geyser streaming nodes.

Supported Configurations

ConfigDescription
------
Yellowstone gRPCStandard Geyser gRPC plugin (Triton/rpcpool)
Richat gRPCRichat Geyser plugin (lamports-dev)

Directory Structure

ansible/
  mainnet-rpc/   — Playbooks (gRPC Geyser uses mainnet-rpc playbooks)
  cmn/           — Shared common playbooks
jinja/
  mainnet-rpc/   — Jinja2 templates
  cmn/           — Shared templates

CLI Command ↔ Playbook Mapping

gRPC Geyser nodes are managed via slv r (RPC) commands with rpc_type set to Geyser gRPC or Index RPC + gRPC.

CLI CommandPlaybookDescription
---------
slv r deploymainnet-rpc/init.ymlFull gRPC Geyser node initialization
slv r startmainnet-rpc/start_node.ymlStart node
slv r stopmainnet-rpc/stop_node.ymlStop node
slv r restartmainnet-rpc/restart_node.ymlRestart node
slv r build:solanamainnet-rpc/install_solana.ymlBuild Solana from source
slv r update:geysermainnet-rpc/update_geyser.ymlUpdate Geyser plugin
slv r update:scriptmainnet-rpc/update_startup_config.ymlUpdate start-validator.sh
slv r setup:firedancermainnet-rpc/setup_firedancer.ymlSetup Firedancer

Key Playbooks

PlaybookDescription
------
init.ymlFull gRPC Geyser node initialization
init_richat_geyser.ymlRichat Geyser initialization
geyser_build.ymlBuild Yellowstone gRPC from GitHub source
geyser_richat_build.ymlBuild Richat plugin from GitHub source
install_richat.ymlInstall Richat plugin
update_geyser.ymlUpdate Geyser plugin
restart_node.ymlRestart node
start_node.yml / stop_node.ymlStart/stop node
update_startup_config.ymlUpdate start-validator.sh from template
setup_firedancer.ymlSetup Firedancer
run_snapshot_finder.ymlFind and download best snapshot
run_restarter.ymlRun restarter script

Geyser Build Details

Yellowstone gRPC (geyser_build.yml)

  • Clones from https://github.com/rpcpool/yellowstone-grpc
  • Builds with cargo build --release
  • Produces libyellowstone_grpc_geyser.so
  • Config template: jinja/mainnet-rpc/geyser.json.j2

Richat (geyser_richat_build.yml)

  • Clones from https://github.com/lamports-dev/richat
  • Builds with cargo build --release
  • Produces librichat_plugin_agave.so
  • Config template: jinja/mainnet-rpc/geyser-richat.json.j2
  • Service template: jinja/mainnet-rpc/richat.service.j2
  • Settings template: jinja/mainnet-rpc/richat-setting.yml.j2

Key Variables (extra_vars)

VariableDescriptionDefault
---------
rpc_typeMust be Geyser gRPC or Index RPC + gRPC
validator_typeClient type (agave, jito, firedancer-agave, etc.)
solana_versionSolana/Agave version
yellowstone_grpc_versionYellowstone gRPC version tag
richat_versionRichat plugin version (e.g. richat-v8.1.0)
snapshot_urlSnapshot download URL
port_grpcgRPC listen port10000
limit_ledger_sizeLedger size limit100000000

Jinja Templates

TemplateDescription
------
start-validator.sh.j2Main start script (branches by rpc_type)
start-mainnet-rpc-grpc.sh.j2gRPC-specific start script
geyser.json.j2Yellowstone gRPC config
geyser-richat.json.j2Richat gRPC config
richat-setting.yml.j2Richat settings
richat.service.j2Richat systemd service
firedancer-config.toml.j2Firedancer config
firedancer.service.j2Firedancer systemd service
solv.service.j2Solv systemd service
generate_configs.sh.j2Config generation script

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

# Deploy a new gRPC Geyser node
ansible-playbook -i inventory mainnet-rpc/init.yml \
  -e '{"rpc_type":"Geyser gRPC","solana_version":"3.1.8","yellowstone_grpc_version":"v6.0.0","snapshot_url":"https://..."}'

# Build/update Richat plugin
ansible-playbook -i inventory mainnet-rpc/geyser_richat_build.yml \
  -e '{"richat_version":"richat-v8.1.0"}'

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
region"Server region?"String
rpc_type"Geyser gRPC or Index RPC + gRPC?"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)

Plugin Selection (choose ONE)

PluginVersion VariableSourceOutput
------------
Yellowstone gRPCyellowstone_grpc_versiongithub.com/rpcpool/yellowstone-grpclibyellowstone_grpc_geyser.so
Richatrichat_versiongithub.com/lamports-dev/richatlibrichat_plugin_agave.so

Both are built from source (no pre-built binaries). Build time: ~15-30 min.

Only collect the version variable for the selected plugin.

Conditionally Required Variables

VariableWhen Required
------
jito_versionjito/jito-bam types
firedancer_versionfiredancer types
shred_receiver_addressjito/jito-bam (auto by region)
block_engine_urljito/jito-bam (auto by region)

Optional Variables

VariableDefaultWhen Required
---------
ssh_usersolvAlways
port_grpc10000Always
port_rpc8899 (ERPC: 7211)Always
limit_ledger_size100000000Always
dynamic_port_range8000-8025Always
allowed_ssh_ipsStrongly recommended (UFW)
allowed_ipsOptional (UFW)

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-grpc-geyser/ansible/
ansible-playbook -i inventory.yml mainnet-rpc/init.yml \
  -e '{"rpc_type":"Geyser gRPC","solana_version":"<version>","richat_version":"<version>"}'

版本历史

共 2 个版本

  • v0.13.15 当前
    2026-05-03 03:11 安全 安全
  • v0.10.2
    2026-03-29 16:10 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

communication-collaboration

imap-smtp-email

gzlicanyi
使用IMAP/SMTP读取和发送邮件;检查新/未读邮件、获取内容、搜索邮箱、标记已读/未读、发送带附件的邮件。支持...
★ 113 📥 52,385
communication-collaboration

Slack

steipete
当需要通过 slack 工具从 Clawdbot 控制 Slack 时使用,包括在频道或私信中回复消息或置顶/取消置顶项目。
★ 157 📥 47,670
developer-tools

Slv Validator

poppin-fumi
使用 Ansible playbook 和 Jinja2 模板在主网和测试网上部署和管理 Solana 验证者,支持包括 Jito、Agave 等多种验证者类型...
★ 4 📥 1,137