Page cover

desktopDía 1: Preparación del entorno de desarrollo

Antes de comenzar a programar en Solana, es importante conocer las diferentes formas en las que podemos desarrollar e interactuar con la red. Existen múltiples enfoques dependiendo del nivel de experiencia y del tipo de proyecto que quieras construir.


CLI e instalación local

Una forma tradicional de desarrollar en Solana es instalar la Solana CLI y las herramientas necesarias (Rust, Anchor, Node.js, etc.) en tu máquina. Este enfoque ofrece mayor control y es el más utilizado en entornos profesionales, pero requiere configuración inicial y mantenimiento del entorno.

Es ideal para proyectos avanzados, despliegues complejos o trabajo en equipos técnicos.


Docker

Otra alternativa es utilizar Docker para ejecutar el entorno de desarrollo dentro de contenedores. Esto permite estandarizar configuraciones y evitar conflictos entre versiones de dependencias.

Es una opción muy utilizada en equipos de desarrollo y en producción, ya que facilita la portabilidad del entorno entre distintas máquinas.


Solana Playground

Para este bootcamp utilizaremos principalmente Solana Playground, un entorno en línea que permite escribir, compilar y desplegar programas directamente desde el navegador.

El objetivo es reducir la fricción inicial y evitar que tengas que instalar herramientas complejas desde el primer día. Esto nos permite enfocarnos en entender cómo funciona Solana antes de preocuparnos por configuraciones locales.

Con Playground podrás:

  • Conectar tu wallet.

  • Escribir programas.

  • Compilar y desplegar.

  • Ejecutar pruebas.

  • Interactuar con la red (Devnet).

Airdrops y SOL de prueba

Para poder interactuar con la red en Devnet necesitas SOL de prueba. Estos tokens no tienen valor real y se utilizan únicamente para pagar comisiones y probar programas.

Un airdrop es el proceso mediante el cual la red te envía SOL de prueba a tu wallet en Devnet.

En el bootcamp utilizaremos airdrops para:

  • Pagar transacciones.

  • Desplegar programas.

  • Ejecutar pruebas.

Es importante recordar que los airdrops solo funcionan en redes de prueba como Devnet.

GitHub

GitHub es una plataforma para alojar y colaborar en proyectos de software utilizando Git, un sistema de control de versiones.

En términos simples, GitHub permite:

  • Guardar el historial completo de cambios de un proyecto.

  • Colaborar con otras personas.

  • Revisar código.

  • Publicar proyectos de forma abierta.

En el ecosistema blockchain, GitHub es especialmente importante porque la mayoría de los proyectos son open source (código abierto). Esto significa que cualquier persona puede:

  • Leer el código.

  • Auditarlo.

  • Proponer mejoras.

  • Construir encima de él.

El software abierto es fundamental en blockchain porque:

  • Aumenta la transparencia.

  • Permite auditoría pública.

  • Reduce la dependencia de una sola entidad.

  • Fomenta la innovación colaborativa.

En Solana, tanto la red como muchos protocolos, wallets y herramientas están disponibles públicamente en GitHub.

Interacción con contratos inteligentes en Solana

Para entender cómo interactuamos con programas en Solana, primero debemos comprender algunos conceptos fundamentales.


¿Qué es una transacción?

Una transacción es una instrucción enviada a la blockchain que solicita ejecutar una acción.

Ejemplos:

  • Transferir SOL.

  • Crear un token.

  • Ejecutar una función de un programa.

  • Desplegar un contrato inteligente.

Cada transacción:

  • Es firmada por una wallet.

  • Tiene una firma única (signature).

  • Queda registrada permanentemente en la red.

Puedes ver cualquier transacción en el Explorer utilizando su signature.

¿Qué significa “firmar” una transacción?

Firmar una transacción significa utilizar tu clave privada para autorizar una acción.

La firma prueba que eres el propietario de la cuenta, apruebas la ejecución de la instrucción, y que aceptas pagar la comisión correspondiente.

La clave privada nunca se comparte; la wallet realiza la firma internamente y solo envía la transacción firmada a la red.

circle-info

Este modelo permite seguridad sin necesidad de intermediarios.

Program ID

En Solana, los contratos inteligentes se llaman programas.

Cuando despliegas un programa en la red, se le asigna una dirección única llamada Program ID.

El Program ID funciona como:

  • La dirección pública del contrato.

  • El identificador que permite a la red saber qué programa debe ejecutarse.

  • La referencia que otras aplicaciones usan para interactuar con él.

Cada vez que una transacción ejecuta una función de un programa, incluye su Program ID.

Interacción con programas en Solana

En Solana, un “contrato inteligente” se llama programa. Piensa en un programa como un servicio backend desplegado en una red pública: tiene un identificador (su Program ID) y expone “acciones” que cualquiera puede llamar, siempre y cuando envíe los datos correctos y tenga permisos para hacerlo.

La interacción con un programa ocurre enviando una transacción, que puedes imaginar como un sobre que contiene uno o varios “formularios” llamados instrucciones. Cada instrucción indica qué programa ejecutar (Program ID) y qué debe hacer (por ejemplo: “inicializa”, “transfiere”, “actualiza estado”), además de incluir las cuentas que se van a leer o escribir. Luego la red procesa el “sobre” y registra el resultado.

La idea clave: Solana es “account-based”

A diferencia de otras plataformas donde “el contrato guarda todo dentro de sí”, en Solana los programas suelen ser sin estado (stateless) y el estado vive en cuentas separadas. Por eso, cuando llamas a un programa normalmente debes pasarle:

  • Program ID: qué programa ejecutar.

  • Accounts (cuentas): dónde leer/escribir datos (tu wallet, una cuenta de estado, una cuenta de token, etc.).

  • Instruction data: los parámetros de la acción (por ejemplo, cantidad, nombre, configuración).


Interacción desde una wallet/dapp

La forma más común para usuarios es interactuar desde una aplicación (web o mobile) que construye una transacción y luego le pide a la wallet que la firme. La wallet (Phantom, Solflare, Backpack) actúa como tu “identidad”: confirma que tú autorizas la acción y pagas la comisión.

circle-info

Esto es lo que verás cuando un sitio te muestra “Approve / Sign / Confirm”.

Interacción desde TypeScript

En el bootcamp vamos a interactuar principalmente con programas usando TypeScript, porque es una forma muy directa de:

  • construir transacciones,

  • invocar instrucciones,

  • firmar con una wallet,

  • y verificar resultados en Explorer.

En Solana existen dos caminos comunes desde TypeScript:

a) Solana web3.js / SDKs oficiales (bajo nivel) Aquí tú armas todo manualmente: creas una Transaction, agregas TransactionInstruction con programId, keys (cuentas) y data, y la envías a la red. Es como usar “HTTP crudo”: más control, más detalle.

b) Anchor client (alto nivel, recomendado para aprender rápido) Anchor genera una IDL (una especie de “contrato de interfaz”) que describe qué instrucciones existen, qué cuentas requieren y qué tipos de datos aceptan. Con esa IDL, el cliente TypeScript te deja llamar cosas tipo:

  • program.methods.miInstruccion(param1, param2).accounts({...}).rpc()


¿Qué significa “interactuar” en la práctica?

Cuando alguien dice “interactuar con un programa”, normalmente se refiere a una (o varias) de estas acciones:

  1. Enviar una instrucción (invoke) Ej: inicializar un estado, actualizar un contador, registrar un usuario.

  2. Leer estado desde cuentas (fetch) Ej: consultar el contador, ver configuración, revisar balances.

  3. Suscribirte a cambios (real time) Ej: escuchar cambios en una cuenta (útil para frontends).

  4. Hacer composabilidad / llamadas entre programas (CPI) Ej: tu programa llama al Token Program para mintear o transferir tokens (más adelante en el curso).

Last updated