Mejores prácticas de @solana/kit
Un resumen condensado de 25 prácticas para clientes de @solana/kit 7.0.0 en producción.
-
Fija @solana/kit@7.0.0: Bloquea la versión principal en
package.jsony CI; las tipificaciones RPC cambian entre versiones menores (Conceptos básicos de @solana/kit). -
Importa de forma selectiva: Usa exportaciones de subrutas y paquetes de programas para mantener pequeños los paquetes.
-
Siempre
.send()las llamadas RPC: Los constructores son perezosos hasta que se envían. -
Usa
bigintpara lamports: Nunca uses números de punto flotante para SOL en la UI o servidores. -
Separa las URLs de HTTP y WSS: Las suscripciones necesitan puntos de conexión
wss://(RPC y suscripciones). -
Aborta las suscripciones de WebSocket: Limpia al desmontar React y al cambiar de ruta.
-
Obtén blockhashes frescos por envío: Las vidas útiles obsoletas son el principal fallo de confirmación.
-
Simula antes de solicitar la billetera: Evita que los usuarios paguen por errores predecibles (Firma y envío).
-
Establece explícitamente los firmantes del pagador de tarifas: Las direcciones solas no firman (Keypairs y firmantes).
-
Antepón las instrucciones del presupuesto de cómputo: Las tarifas de prioridad y los límites de CU pertenecen al principio del mensaje.
-
Prefiere mensajes de versión 0: Predeterminado para ALTs y validadores modernos.
-
Genera codecs a partir de IDL: Los layouts escritos a mano se desvían de los programas Anchor 0.32.1 (Codecs y serialización).
-
Regenera los clientes de Codama en CI: Falla las compilaciones cuando el IDL cambia las carpetas generadas.
-
Usa el RPC del proveedor para producción: Los puntos de conexión públicos limitan las tasas; usa URLs con clave.
-
Ajusta el compromiso al riesgo:
confirmedpara UX;finalizedpara lecturas de tesorería. -
Nunca incrustes secretos de mainnet en el frontend: El código del navegador es público; usa billeteras o patrocinio de servidor.
-
Registra firmas y enlaces de explorador: Los tickets de soporte necesitan IDs de transacción rastreables.
-
Maneja los rechazos de billetera con gracia: Los usuarios cancelan conexiones y firmas; muestra una UX de reintento clara.
-
Migra de web3.js por ruta: Las pilas duales duplican el tamaño del paquete y los errores (Migración desde web3.js v1).
-
Usa
sendAndConfirmTransactionFactorycon WSS: Los bucles de confirmación solo HTTP son frágiles bajo carga. -
Comprime con datos ALT frescos: Recarga las cuentas de la tabla de búsqueda antes de
compressTransactionMessageUsingAddressLookupTables. -
Tipifica las direcciones con
address(): Detecta base58 inválido en la construcción. -
Prueba contra Surfpool 0.12.0: Ejecuciones locales compatibles con Agave antes de gastar en devnet.
-
Documenta las capacidades de RPC: DAS, APIs de tarifas de prioridad y simulación difieren según el proveedor.
-
Mantén alineadas las versiones de billetera y kit: Las plantillas
create-solana-dapprastrean pares compatibles de adaptadores + kit.
Preguntas frecuentes
¿Deben las nuevas aplicaciones empezar con kit?
Sí; web3.js v1 es obsoleto para TypeScript nuevo.
¿Se requiere gill?
No; acelera el arranque, pero kit es la dependencia principal.
¿Un cliente RPC por aplicación?
Normalmente, una fábrica HTTP + una WSS reutilizadas a través del contexto.
¿Cuán grandes deben ser los paquetes?
Audita con tu empaquetador; el tree-shaking solo funciona con importaciones selectivas.
¿Configuración de Devnet vs. Mainnet?
Variables de entorno por despliegue; nunca codifiques URLs de mainnet en componentes compartidos.
Relacionado
- Conceptos básicos de @solana/kit - introducción práctica
- Mejores prácticas de integración de billeteras - firmantes del navegador
- Mejores prácticas de clientes tipados - clientes impulsados por IDL
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.