Challenge

Challenge #1: Hello Solana

George Donnelly
#bootcamp#challenge#solana#anchor#rust
Feature image

Febrero y Marzo fueron meses muy intensos para mi pero no me he olvidado de ti y del bootcamp. He convertido el bootcamp en 4 retos que puedes hacer a tu ritmo en tus momentos libres.

Aquí va reto número 1.

El Challenge

Deployar tu primer programa en Solana Devnet. Un programa que recibe una instrucción y registra un mensaje en el log de la transacción.

Eso es todo. Suena simple. Y lo es. Pero al final vas a tener una transacción real en una blockchain real que TÚ escribiste.

Antes de Iniciar

Necesitas instalar el ambiente de desarrollo de Solana. Un solo comando instala todo: Rust, Solana CLI, Anchor y Node.js.

curl --proto '=https' --tlsv1.2 -sSfL https://solana-install.solana.workers.dev | bash

Verifica que todo se instaló correctamente:

rustc --version && solana --version && anchor --version && node --version

Deberías ver las versiones de cada herramienta. Si algo falla, revisa la guía de instalación individual.

Ahora configura tu wallet para Devnet:

solana config set --url devnet
solana-keygen new
solana airdrop 2

Esto crea una wallet nueva y le carga 2 SOL de prueba. Si el airdrop falla (a veces pasa), intenta de nuevo en unos minutos o usa el faucet web.

Si algo falla durante la instalación, pregunta en el Telegram.

Crea Tu Proyecto

No hay repo que clonar. Vas a crear el proyecto tú mismo.

Inicializa un nuevo proyecto Anchor:

anchor init hello-solana
cd hello-solana

Esto genera la siguiente estructura:

hello-solana/
├── programs/
│   └── hello-solana/
│       └── src/
│           └── lib.rs          ← TU CÓDIGO VA AQUÍ
├── tests/
│   └── hello-solana.ts         ← TEST PARA VERIFICAR
├── Anchor.toml
├── Cargo.toml
└── package.json

Anchor ya generó un programa básico en lib.rs y un test en hello-solana.ts. Ábrelos y léelos antes de seguir. No necesitas entender todo. Solo familiarízate con la estructura.

Pistas (No Soluciones)

Estas son migajas de pan. No un tutorial paso a paso. Si te atascas, busca en la documentación o pregunta.

Pista 1: La estructura básica de un programa Anchor

Un programa Anchor tiene tres partes:

  • declare_id! → La dirección de tu programa
  • #[program] → Las instrucciones (funciones que los usuarios pueden llamar)
  • #[derive(Accounts)] → Las cuentas que cada instrucción necesita

Pista 2: Logging

Para escribir un mensaje en el log de una transacción:

msg!("Tu mensaje aquí");

Pista 3: Recibir un argumento

Las instrucciones de Anchor pueden recibir argumentos:

pub fn mi_instruccion(ctx: Context<MiContexto>, nombre: String) -> Result<()> {
    // ...
    Ok(())
}

Pista 4: Build y Deploy

anchor build
anchor deploy

Pista 5: Verificar

Después de deployar, copia el Transaction Signature y búscalo en Solscan Devnet. Deberías ver tu mensaje en los logs.

Tu Objetivo

  1. Modifica el programa generado en lib.rs para que tenga una instrucción que registre un mensaje en el log
  2. Haz build y deploy a Devnet
  3. Ejecuta el test para llamar a tu programa
  4. Verifica en Solscan que tu mensaje aparece en los logs de la transacción

Stretch Goals

¿Terminaste? Intenta esto:

Nivel 2: Hazlo dinámico

Modifica tu programa para que acepte un nombre como argumento y registre “Hola, [nombre]!” en el log.

Nivel 3: Llámalo desde @solana/kit

Escribe un script usando @solana/kit (el SDK oficial de Solana) que llame a tu programa directamente, sin usar el cliente de Anchor:

npm install @solana/kit

Documentación: solanakit.com/docs

Nivel 4: Pinocchio (Avanzado)

Si ya conoces Rust y quieres ver cómo se escribe un programa Solana SIN Anchor, investiga Pinocchio. Es un framework zero-dependency que prioriza rendimiento sobre comodidad. No es para principiantes, pero si te gusta ir al metal, vale la pena explorarlo.

Recursos

RecursoLink
Instalación Solanasolana.com/docs/intro/installation
Anchor Bookanchor-lang.com
Solana Cookbooksolanacookbook.com
Solana Docssolana.com/docs
@solana/kit Docssolanakit.com/docs
Pinocchio (avanzado)github.com/anza-xyz/pinocchio
Solscan (Devnet)solscan.io/?cluster=devnet
Telegramt.me/solana_colombia

Cómo Entregar

Cuando tu programa esté deployado:

  1. Copia el Transaction Signature de tu deploy
  2. Copia el Program ID
  3. Comparte ambos en el canal de Telegram con el formato:
Challenge #1 ✅
Program ID: [tu program id]
TX: [link a Solscan]

Si lograste el Stretch Goal de hacerlo dinámico, comparte también el TX donde se ve tu nombre en los logs.

Recuerda

  • No necesitas entender TODO antes de empezar
  • Si algo falla, lee el error. El 90% de los problemas se resuelven leyendo el error
  • Si llevas 15 minutos atascado en lo mismo, pregunta
  • Si ya terminaste, ayuda a alguien que esté atascado

Únete al Telegram