Plugins de Geyser
Los plugins de Geyser permiten a los validadores de Agave transmitir actualizaciones de cuentas y transacciones a destinos externos para indexación sin necesidad de consultar JSON-RPC.
Busca en todas las páginas de la documentación
Los plugins de Geyser permiten a los validadores de Agave transmitir actualizaciones de cuentas y transacciones a destinos externos para indexación sin necesidad de consultar JSON-RPC.
Tarjeta de referencia rápida - lista para copiar y pegar.
{
"libpath": "/ruta/a/libgeyser_plugin.so",
"accounts_selector": { "owners": ["TU_PROGRAM_ID"] },
"transaction_selector": { "mentions": ["TU_PROGRAM_ID"] }
}agave-validator --geyser-plugin-config geyser.json ...Cuándo usar esto:
# geyser.json (ilustrativo - coincide con el esquema de tu plugin)
cat > geyser.json <<'EOF'
{
"libpath": "/opt/geyser/libmy_sink.so",
"kafka": { "bootstrap.servers": "localhost:9092", "topic": "solana-events" },
"accounts_selector": {
"owners": ["TU_PROGRAM_ID"]
}
}
EOF
agave-validator \
--ledger /data/ledger \
--geyser-plugin-config geyser.json \
--rpc-port 8899Lo que esto demuestra:
.so se carga en el espacio de proceso del validador.| Preocupación | Plugin | Tu indexador |
|---|---|---|
| Filtrado | selectores de propietario/mención | lógica de negocio |
| Durabilidad | enviar a cola | confirmaciones de DB |
| Repetición | puntos de control de slot | inserciones idempotentes |
| Actualizaciones | .so versionado | migraciones de esquema |
# Verifica que el plugin se carga al inicio del validador - revisa los logs en busca de líneas de inicialización de geyser
tail -f /data/validator.log | grep -i geyser| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Yellowstone gRPC | Streaming gestionado | Ya operas un validador |
| Webhooks | Simplicidad de push HTTP | Necesidades de latencia ultra baja |
| Relleno RPC | Historial pequeño | Programas de alto volumen en vivo |
| API DAS | Solo lecturas de activos | Indexación de instrucciones arbitrarias |
Para plugins personalizados, sí; Yellowstone gestionado proporciona gRPC sin operar participación.
Bibliotecas dinámicas Rust/C++ .so según la interfaz del plugin geyser de Agave.
Sí - transaction_selector con menciones de IDs de programa.
Repite desde el último slot confirmado almacenado en tu DB usando el relleno de huecos de RPC.
El plugin recibe datos completos de la cuenta en escrituras relevantes para el selector; planifica el ancho de banda.
Ejecuta un validador de prueba con el plugin contra un clon del ledger de devnet para una carga más ligera.
Yellowstone expone flujos estilo Geyser sobre gRPC a clientes remotos.
El plugin se ejecuta dentro del validador; la cadena de suministro es crítica; audita las fuentes de .so.
Patrón común: el plugin produce; los consumidores escalan horizontalmente.
Las operaciones del plugin autoalojado son intensivas; los webhooks/Yellowstone del proveedor son más baratos para equipos pequeños.
Versiones de la pila: Esta página fue escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026