Clonar Cuentas de Mainnet
Inicializa solana-test-validator con datos reales de cuentas de mainnet para que las pruebas locales ejerciten los layouts de programas de producción y el estado de los oráculos.
Busca en todas las páginas de la documentación
Inicializa solana-test-validator con datos reales de cuentas de mainnet para que las pruebas locales ejerciten los layouts de programas de producción y el estado de los oráculos.
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
solana-test-validator --reset \
--url mainnet-beta \
--clone <PUBKEY_DE_CUENTA> \
--clone <ID_DE_PROGRAMA>Cuándo usar esto:
# Ejemplo: clonar el programa SPL Token y un mint de USDC (verificar pubkeys actuales en la documentación)
TOKEN_PROGRAM=TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
USDC_MINT=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
solana-test-validator --reset \
--url mainnet-beta \
--clone "$TOKEN_PROGRAM" \
--clone "$USDC_MINT"
solana config set --url http://127.0.0.1:8899
solana account "$USDC_MINT"Lo que esto demuestra:
--url.--clone.| Tipo de cuenta | ¿Clonar? | Notas |
|---|---|---|
| IDs de Programa | A menudo sí | Requerido para CPI |
| Estado de pool/oráculo | Sí | Captura reservas realistas |
| Carteras de usuario | Raro | Usa keypairs locales en su lugar |
| Sysvars | Automático | Clock, rent incluidos por defecto |
# Clonar muchas cuentas desde un archivo (una pubkey por línea)
solana-test-validator --reset --url mainnet-beta \
$(awk '{print "--clone "$1}' accounts.txt)--url.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Surfpool 0.12.0 | Fork continuo de mainnet | Pruebas simples solo de programas |
| Fixtures construidos a mano | Pruebas unitarias aisladas pequeñas | Integraciones complejas de DeFi |
| Espejos de devnet | Staging compartido del equipo | Versiones de programas específicas de Mainnet |
| Inyección de cuentas LiteSVM | Pruebas unitarias rápidas de Rust | Rutas completas del cliente RPC |
Sí, para cuentas ejecutables - el ELF se almacena como un despliegue.
Sí, si la cuenta PDA existe en mainnet en el momento de la obtención - deriva la dirección y verifica con solana account.
Inspecciona transacciones de mainnet en un explorador - copia todas las cuentas que tu instrucción toca.
Solo si el programa es un nativo incorporado o si lo clonas/despliegas localmente.
No - obtención de RPC de solo lectura; pagas alquiler local solo si las transacciones redimensionan las cuentas.
Sí - --url devnet para programas publicados en devnet.
Las cuentas muy grandes ralentizan el inicio - prefiere Surfpool para escenarios de fork pesados.
Sí - los lamports de la cuenta de token y los datos se copian exactamente en la instantánea de obtención.
Lee los logs de inicio del validador para errores de RPC; verifica que la pubkey exista en el clúster de origen.
Caché de directorios de ledger o usa conjuntos mínimos de fixtures para mantener CI rápido y confiable.
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