Despliegue de Programas
Desplegar un programa de Solana sube el bytecode BPF a una cuenta de datos de programa a través del cargador actualizable. Usa Solana CLI 3.0.10 o anchor deploy después de anchor build en clústeres Agave 4.1.1.
Busca en todas las páginas de la documentación
Desplegar un programa de Solana sube el bytecode BPF a una cuenta de datos de programa a través del cargador actualizable. Usa Solana CLI 3.0.10 o anchor deploy después de anchor build en clústeres Agave 4.1.1.
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
anchor build
solana program deploy target/deploy/my_program.so \
--program-id target/deploy/my_program-keypair.json \
--url devnetCuándo usar esto:
#!/usr/bin/env bash
set -euo pipefail
CLUSTER=devnet
PROGRAM_SO=target/deploy/my_program.so
PROGRAM_KEYPAIR=target/deploy/my_program-keypair.json
solana config set --url "$CLUSTER"
solana balance
# Construir artefacto reproducible
anchor build
# Estimar costo
solana program deploy "$PROGRAM_SO" --program-id "$PROGRAM_KEYPAIR" --dry-run
# Desplegar
DEPLOY_OUT=$(solana program deploy "$PROGRAM_SO" --program-id "$PROGRAM_KEYPAIR")
echo "$DEPLOY_OUT"
PROGRAM_ID=$(solana-keygen pubkey "$PROGRAM_KEYPAIR")
solana program show "$PROGRAM_ID"Lo que esto demuestra:
--dry-run previsualiza el alquiler y la CU sin aplicarlo.declare_id!.program show confirma la autoridad y la longitud de los datos después del despliegue.| Factor | Impacto |
|---|---|
Tamaño del archivo .so | Alquiler proporcional a los bytes |
| Clúster | devnet SOL más barato; mainnet costo real |
| Despliegue fallido | Alquiler del buffer hasta que se cierre |
| Tarifas de prioridad | Velocidad de aterrizaje durante la congestión |
# Cerrar buffer fallido para recuperar el alquiler
solana program close <BUFFER_ADDRESS>declare_id! != clave pública del par de claves. Solución: anchor keys sync después de keygen.solana program deploy --dry-run primero.solana config get antes de desplegar.solana-verify build.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
anchor deploy | Espacio de trabajo de Anchor | Solo programa nativo sin procesar |
| Reanudar buffer | SO grande / red inestable | Programas pequeños |
| Propuesta de despliegue de Squads | Gobernanza de producción | Iteración de solo devnet |
Principalmente el alquiler de los datos del programa (~tamaño del .so); usa --dry-run para una estimación en tu clúster.
No - el ID es la clave pública del par de claves; cambiar el ID es un nuevo despliegue y una migración de estado.
anchor build envuelve cargo build-sbf y genera el IDL - preferido para proyectos Anchor 0.32.1.
Cuenta temporal de retención para fragmentos ELF durante el despliegue de varios pasos.
Queda un buffer parcial - cierra el buffer o reanuda el despliegue desde la dirección del buffer.
Sí - despliega por separado por clúster con pares de claves de programa específicos del clúster si es necesario.
Construye en CI, despliega con clave segura del gestor de secretos, verifica el hash post-despliegue.
Posible revocando la autoridad inmediatamente - raro; usualmente se mantiene la autoridad durante el período de auditoría.
Cuenta separada del ID del programa - program show lista la dirección de ProgramData que contiene el ELF.
Construye con herramientas de plataforma coincidentes para que el ELF desplegado coincida con las expectativas del cargador BPF del validador.
Versiones de Stack: 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