Mejores Prácticas de la CLI de Solana
Un resumen condensado de las 25 prácticas más importantes de la CLI de Solana extraídas de cada página de esta sección.
Busca en todas las páginas de la documentación
Un resumen condensado de las 25 prácticas más importantes de la CLI de Solana extraídas de cada página de esta sección.
Fija las versiones de Agave y la CLI: Instala Agave 4.1.1 para que solana --version reporte la CLI 3.0.10. Las cadenas de herramientas desajustadas causan sorpresas en el despliegue y RPC (Conceptos básicos de la CLI de Solana).
Verifica la configuración antes de cada sesión: Ejecuta solana config get y confirma que la URL RPC, la ruta de la clave y el compromiso coincidan con el clúster que pretendes tocar.
Separa los keypairs por clúster: Nunca reutilices una clave financiada en mainnet como tu valor predeterminado en scripts de devnet. Reduce los gastos accidentales en mainnet.
Nunca confirmes el JSON del keypair: Añade las rutas *-keypair.json y id.json a .gitignore. Carga las claves de producción solo desde gestores de secretos (Claves con solana-keygen).
Registra las frases semilla sin conexión: Haz una copia de seguridad de las frases BIP39 al crear claves. La pérdida de disco sin una frase es irrecuperable.
chmod 600 para los archivos de clave: Restringe los archivos de clave secreta solo a tu usuario en hosts Unix antes de financiar las billeteras.
Usa devnet para flujos de trabajo de faucet: Financia con solana airdrop solo en devnet/testnet. Mainnet requiere SOL real (Airdrops y saldos).
Deja margen para las tarifas: Mantén al menos 0.01 SOL en las billeteras de desarrollo activas. Las tarifas de alquiler y de prioridad consumen más que los 5.000 lamports base.
Verifica dos veces las claves públicas de los destinatarios: Prueba con una transferencia de polvo antes de realizar pagos grandes. Los errores tipográficos en base58 son irreversibles (Envío de SOL y transacciones).
Usa el compromiso finalizado para operaciones de tesorería: Establece --commitment finalized al confirmar transferencias de alto valor en mainnet.
Inspecciona antes de depurar código: Ejecuta solana account y solana program show para verificar propietarios, longitud de datos y autoridad de actualización (Inspección de cuentas y programas).
Alinea los IDs de programa en todas partes: declare_id!, Anchor.toml y la clave de despliegue deben compartir una clave pública antes del despliegue (Despliegue de programas).
Crea artefactos de lanzamiento para el despliegue: Usa la salida de lanzamiento de anchor build / cargo build-sbf. Los archivos .so de depuración desperdician alquiler y CU.
Financia los despliegues para el alquiler de datos del programa: Los programas grandes necesitan más lamports que un airdrop de 2 SOL en devnet. Verifica el saldo antes de program deploy.
Transfiere la autoridad de actualización deliberadamente: Mueve la autoridad a un multisig en mainnet. Usa --final solo cuando la inmutabilidad sea la intención.
Usa spl-token para los tokens: La transferencia nativa solana transfer nunca mueve saldos SPL. Usa spl-token transfer con --fund-recipient (CLI de spl-token).
Conoce qué capa escala la cantidad: la CLI spl-token toma cantidades de UI y aplica los decimales de la mint por ti. Pasa 2.5, no 2500000. Multiplica por 10^decimals solo cuando construyas los datos de instrucción tú mismo.
Transmite los registros en una segunda terminal: Empareja solana logs con un validador local o RPC de devnet mientras iteras en errores del programa (Registros y depuración).
Captura el JSON de transacciones fallidas: solana transaction <SIG> --output json-compact conserva logMessages para tickets y artefactos de CI.
Prefiere RPC del proveedor para fiabilidad: Los puntos de acceso públicos limitan las tasas. Usa URLs dedicadas de devnet/mainnet en solana config set --url.
Exporta la configuración para CI con cuidado: solana config get --json está bien para las URLs RPC. Nunca confirmes rutas a claves de producción en repositorios compartidos.
Confirma las firmas explícitamente en los scripts: Usa solana confirm -v y verifica los códigos de salida en lugar de asumir que las sumisiones --no-wait se completaron.
Vuelca los binarios del programa para verificar los despliegues: solana program dump más comparación de hash detecta despliegues en el clúster incorrecto o con artefactos incorrectos.
Revoca la autoridad de acuñación después del lanzamiento: spl-token authorize <MINT> mint --disable cuando el suministro fijo es un requisito.
Documenta el clúster en los runbooks: Cada documento de operaciones debe indicar la URL RPC, el compromiso y la versión de la CLI para que las acciones de guardia coincidan con las máquinas de los desarrolladores.
Ejecutar comandos de mainnet con una clave predeterminada financiada en mainnet creyendo que estás en devnet. Siempre ejecuta solana config get primero.
Prefiere una tesorería compartida en devnet más claves individuales para la auditabilidad. Nunca compartas claves de autoridad de actualización de mainnet.
Anchor envuelve los mismos archivos de despliegue y clave. La higiene de la CLI protege directamente los resultados de anchor deploy.
Herramientas fijadas, pagador financiado, ID de programa coincidente, compilación de lanzamiento, prueba en seco en devnet, plan de autoridad de actualización multisig.
Rota cuando los ingenieros se vayan o las claves toquen los registros compartidos de CI. Las claves de Devnet tienen bajo riesgo, pero son un buen hábito para la disciplina de mainnet.
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