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.
-
Fija las versiones de Agave y la CLI: Instala Agave 4.1.1 para que
solana --versionreporte 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 gety confirma que la URL RPC, la ruta de la clave y el compromiso coincidan con el clúster que pretendes tocar. -
Separa las claves 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 incluyas la clave JSON en el control de versiones: Añade las rutas
*-keypair.jsonyid.jsona.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 no se puede recuperar.
-
chmod 600para 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 airdropsolo 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 finalizedal confirmar transferencias de alto valor en mainnet. -
Inspecciona antes de depurar código: Ejecuta
solana accountysolana program showpara 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.tomly 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.sode 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
--finalsolo cuando la inmutabilidad sea la intención. -
Usa
spl-tokenpara los tokens: La transferencia nativasolana transfernunca mueve saldos SPL. Usaspl-token transfercon--fund-recipient(CLI de spl-token). -
Piensa en unidades de token brutas: Multiplica las cantidades humanas por 10^decimales al acuñar o transferir tokens SPL.
-
Transmite los registros en una segunda terminal: Empareja
solana logscon 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-compactconservalogMessagespara 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 --jsonestá bien para las URLs RPC. Nunca incluyas rutas a claves de producción en repositorios compartidos. -
Confirma las firmas explícitamente en los scripts: Usa
solana confirm -vy verifica los códigos de salida en lugar de asumir que las sumisiones--no-waitse completaron. -
Vuelca los binarios del programa para verificar los despliegues:
solana program dumpmá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 --disablecuando 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.
Preguntas frecuentes
¿Cuál es el error de CLI de mayor riesgo?
Ejecutar comandos de mainnet con una clave predeterminada financiada en mainnet creyendo que estás en devnet. Siempre ejecuta solana config get primero.
¿Deben los equipos compartir una clave de desarrollo?
Prefiere una tesorería compartida en devnet más claves individuales para la auditabilidad. Nunca compartas claves de autoridad de actualización de mainnet.
¿Cómo se relacionan las prácticas de la CLI con Anchor?
Anchor envuelve los mismos archivos de despliegue y clave. La higiene de la CLI protege directamente los resultados de anchor deploy.
¿Lista de verificación mínima antes del despliegue en mainnet?
Herramientas fijadas, pagador financiado, ID de programa coincidente, compilación de lanzamiento, prueba en seco en devnet, plan de autoridad de actualización multisig.
¿Con qué frecuencia debo rotar las claves de desarrollo?
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.
Relacionados
- Conceptos básicos de la CLI de Solana - punto de entrada de la sección
- Claves con solana-keygen - detalle de generación de claves
- Despliegue de programas - flujo de trabajo de despliegue
- Mejores prácticas de la cadena de herramientas - fijación de versiones más allá de la CLI
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.