Conceptos básicos de desarrollo local
9 ejemplos para empezar con el desarrollo local de Solana: 6 básicos y 3 intermedios.
Prerrequisitos
- Agave 4.1.1 / Solana CLI 3.0.10 instalado
- Anchor 0.32.1 para flujos de trabajo de programas (
avm use 0.32.1) - Un par de claves financiado en
~/.config/solana/id.json
solana --version
anchor --versionEjemplos básicos
1. Iniciar un validador local
Ejecuta un clúster aislado en tu portátil.
solana-test-validator- RPC predeterminado:
http://127.0.0.1:8899 - Ctrl+C detiene el clúster; el estado es efímero a menos que uses indicadores de ledger
- Sin límites de tasa ni estrangulamiento del grifo a diferencia de devnet
Relacionado: solana-test-validator - indicadores y ciclo de vida
2. Apuntar la CLI a Localnet
Dirige los comandos de la terminal al validador local.
solana config set --url http://127.0.0.1:8899
solana slotslotdebería avanzar cada segundo mientras el validador se ejecuta- Restablece a devnet al terminar:
solana config set --url devnet - Coincide con esta URL en
Anchor.tomlparaanchor test
3. Financiar tu billetera local
Usa el grifo local para obtener SOL de prueba ilimitado.
solana airdrop 10
solana balance- Los airdrops locales son generosos para experimentos de alquiler de cuentas
- El mismo par de claves funciona en sesiones de localnet si reinicias el validador con la misma ruta de ledger
- Las tarifas todavía se deducen; el saldo cambia en las transferencias
Relacionado: Airdrops y saldos - conceptos de saldo
4. Compilar y desplegar localmente
Compila y luego despliega en el validador en ejecución.
anchor build
anchor deployanchor deployutiliza la URL del proveedor deAnchor.toml- Los IDs de programa provienen de
target/deploy/*-keypair.json - Vuelve a desplegar actualizaciones cuando se retiene la autoridad de actualización
Relacionado: Despliegue de programas - detalles de despliegue
5. Ejecutar pruebas de Anchor
Prueba de integración contra un validador incrustado.
anchor test- Inicia el validador, despliega, ejecuta pruebas de TypeScript/Rust, desmonta
- Los registros aparecen en la terminal; emparejar con Registros locales y depuración
- Iteración más rápida que el despliegue manual + envío de cliente
6. Transmitir registros localmente
Observa la salida del programa durante las pruebas.
solana logs- Ejecuta en una segunda terminal mientras invocas transacciones
- Muestra la salida
msg!ysol_logde tu programa - Sin límites de WebSocket del proveedor en localhost
Relacionado: Registros y depuración - herramientas de registro de la CLI
Ejemplos intermedios
7. Clonar una cuenta de Mainnet
Obtén el estado real en la cadena en localnet para pruebas realistas.
solana-test-validator --clone <ACCOUNT_PUBKEY> --url mainnet-beta- El validador recupera los datos de la cuenta al inicio desde el RPC de mainnet
- Esencial para probar con diseños de AMM/oráculo en vivo
- Clona solo las cuentas que necesitas; el tiempo de inicio aumenta con el número
Relacionado: Clonación de cuentas de Mainnet - estrategias de clonación
8. Cargar programas desde archivo
Despliega un .so compilado sin el despliegue completo del espacio de trabajo de Anchor.
solana program deploy target/deploy/my_program.so \
--url http://127.0.0.1:8899- Útil para probar binarios de programas de terceros
- Combina con clones para simular gráficos de CPI de mainnet
- El par de claves del programa debe coincidir con el ID esperado si los clientes lo codifican
Relacionado: Carga de programas y fixtures - inicialización de estado
9. Elegir Localnet vs Devnet
Elige el clúster adecuado para la tarea en cuestión.
# Local: rápido, determinista
solana config set --url http://127.0.0.1:8899
# Compartido: red realista, límites del grifo
solana config set --url devnet- Localnet para velocidad de unidad/integración y CI
- Devnet para despliegues compartidos entre equipos y demostraciones de billeteras
- Consulta la página del flujo de trabajo de decisiones para obtener la guía completa de ramificación
Relacionado: Flujo de trabajo de Localnet vs Devnet - cuándo usar cada uno
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.