Mejores prácticas de RPC
Un resumen condensado de las 25 prácticas de RPC más importantes extraídas de todas las páginas de esta sección.
Busca en todas las páginas de la documentación
Un resumen condensado de las 25 prácticas de RPC más importantes extraídas de todas las páginas de esta sección.
Nunca publiques en producción sobre RPC público: Utiliza un proveedor de pago o un nodo autoalojado con SLA (Proveedores de RPC).
Almacena las claves en variables de entorno: Nunca incluyas claves de API en el código; proxy tus lecturas sensibles a través de tu backend.
Empareja las URL HTTP y WSS: Las suscripciones necesitan wss:// del mismo panel de proveedor (Suscripciones WebSocket).
Establece el compromiso explícitamente: Por defecto usa confirmed para la UX; finalized para la tesorería (Conceptos básicos de RPC).
Verifica si getAccountInfo devuelve null: value: null significa que la cuenta no existe; no decodifiques ciegamente (Métodos RPC principales).
Prefiere getMultipleAccounts: Agrupa las claves públicas conocidas en lugar de N llamadas seriales a getAccountInfo.
Nunca ejecutes getProgramAccounts sin filtrar en mainnet: Siempre usa filtros memcmp/dataSize o utiliza un indexador (getProgramAccounts y filtros).
Divide los lotes grandes: 50-100 cuentas por solicitud de getMultipleAccounts (Paginación y eficiencia).
Paginación de firmas en el lado del servidor: El cursoring de getSignaturesForAddress pertenece a tu API, no a los clientes móviles para ballenas.
Aborta las suscripciones WebSocket: Limpia al desmontar para evitar fugas de conexión.
Usa signatureNotifications para confirmaciones: Prefiere suscripciones sobre bucles de sondeo de 200 ms.
Simula antes de enviar a mainnet: Lee unitsConsumed y los logs (APIs de tarifa de prioridad y simulación).
Actualiza las tarifas de prioridad por lote: Las muestras obsoletas de getRecentPrioritizationFees subestiman el precio durante la congestión.
Añade margen de CU: Establece el límite de unidades de cómputo al 110% del consumo simulado.
Usa DAS para NFTs de billetera: getAssetsByOwner supera a getProgramAccounts manual de metadatos (La API DAS).
Mantén documentadas las URL de DAS y RPC: Pueden diferir en los paneles de los proveedores.
Implementa failover de RPC: URL secundaria en caso de 429/503 con backoff exponencial.
Limita la tasa de tus propios clientes: Protege la cuota del proveedor de tormentas de reintentos.
Alinea la RPC de la CLI y la aplicación: solana config get debe coincidir con RPC_URL al depurar.
Caché solo de datos inmutables: TTL corto para metadatos de acuñación; nunca caches saldos post-swap sin invalidación.
Monitoriza el lag de slots: La detección de RTT y bloqueo de getSlot alerta sobre endpoints no saludables.
Evita getTransaction intensivo en navegadores: Proxy a través de un indexador para vistas de historial.
Usa jsonParsed selectivamente: Vuelve a base64 + decodificación IDL cuando el analizador no sea compatible.
Planifica la migración del indexador con anticipación: Si los escaneos de GPA o historial superan miles de filas, inicia el pipeline de Geyser (Conceptos básicos de indexación).
Fija @solana/kit 7.0.0: La RPC tipada reduce los errores de parámetros en comparación con fetch crudo.
getProgramAccounts sin filtrar en mainnet en producción: tiempos de espera, costos y prohibiciones.
Solo para prototipos locales y uso ocasional de la CLI: no para tráfico de mainnet orientado al usuario.
Las RPC de simulación y tarifa de prioridad alimentan las decisiones del presupuesto de cómputo: consulta la sección de optimización de transacciones.
Versiones de la pila: Esta página se escribió 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