Solana ha demostrado que ha llegado para quedarse y por eso queremos empezar a aprender cómo trabajar en este blockchain que ha destacado por su rapidez de ejecución. En este video vamos a lanzar un "Hola mundo!" en el devnet cluster. El programa consistirá en aumentar un contador de uno en uno cada vez que se ejecute el programa. Para eso, vamos a crear un account que contiene la data, un programa que la opera y una cuenta que ejecuta instrucciones en el programa.
Dependencias
Tienen que tener instaladado NodeJS, les recomiendo instalarlo vía NVM si trabajan en Linux. Tambien Yarn que les recomiendo instalar via NPM. Y finalmente Rust y Solana CLI.
Estos son los comandos en Linux:
# NodeJS
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# ahora reinicia tus variables de entorno
nvm install 14
nvm alias default 14
# NodeJS
npm install --global yarn
# ahora reinicia tus variables de entorno
# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# ahora reinicia tus variables de entorno
# Solana CLI
sh -c "$(curl -sSfL https://release.solana.com/v1.8.0/install)"
# ahora reinicia tus variables de entorno
1. Descargamos el proyecto de ejemplo
Este es una versión reducida del Hola Mundo oficial de Solana.
git clone https://github.com/FilosofiaCodigo/SolanaHolaMundo
cd SolanaHolaMundo
2. Nos preparamos para lanzar
Nos conectamos al devnet y conseguimos fondos desde el faucet.
solana config set --url https://api.devnet.solana.com
solana-keygen new --force
solana airdrop 5
3. Lanzamos
cargo build-bpf --bpf-out-dir=dist/program
solana program deploy dist/program/helloworld.so
4. Interactuamos con el programa
cd client
yarn
yarn start
5. Ahora experimentemos un poco
Para ambientarnos al proceso de desarrollo vamos a probar modificar el código del programa, realanzarlo y modificar el frontend para acoplarse a los cambios.
src/lib.rs
Reemplazamos esto:
greeting_account.counter += 1;
Por esto:
let my_param = u32::from(_instruction_data[0]);
greeting_account.counter += my_param;
Ahora relanzamos el programa.
cd ..
cargo build-bpf --bpf-out-dir=dist/program
solana program deploy dist/program/helloworld.so
client/src/hello_world.ts
Reemplazamos esto:
const instruction = new TransactionInstruction({
keys: [{pubkey: greetedPubkey, isSigner: false, isWritable: true}],
programId,
data: Buffer.alloc(0), // All instructions are hellos
});
Por esto:
const instruction = new TransactionInstruction({
keys: [{pubkey: greetedPubkey, isSigner: false, isWritable: true}],
programId,
data: Buffer.from([10]),
});
Y volvemos a ejecutar el cliente.
cd client
yarn start
¡Gracias por ver este tutorial!
Sígueme en dev.to y en Youtube para todo lo relacionado al desarrollo en Blockchain en Español.
Top comments (2)
hola soy un nub aprendiendo, porfa alguien me podría ayudar? he instalado rust en mi windows por exe como otro en youtube me recomendó pero no aparece sin pongo rust --version en cmd ni en node. he probado mi vs code y si tiene rust. pero no me intala solana cli sale : C:\WINDOWS\system32>curl release.solana.com/v1.8.5/solana-i... --output C:\solana-install-tmp\solana-install-init.exe --create-dirs
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - La función de revocación no puede comprobar la revocación para el certificado.
Hola, estás usando el WSL?te paso un video de ejemplo sobre la instalación.
youtube.com/watch?v=gm-Kym2iqss