Comment apprendre à coder avec Solana ?

Article publié le lundi 15 novembre 2021 et mis à jour le mercredi 3 avril 2024.

Comment apprendre à coder avec Solana ?

Vous voulez apprendre à développer des programmes Solana ? Vous voulez vous mettre à la Web3 ? Savoir où et comment apprendre Solana ?

Alors vous êtes au bon endroit pour en apprendre plus et peut-être devenir développeur blockchain !

Solana est une des blockchains puissantes qui pourrait mettre Ethereum à mal, un des potentiels “Ethereum-killer”. Avec une croissance folle et de plus en plus de projets, c’est le moment d’apprendre en utilisant les différents projets, documentations et ressources Solana disponibles sur le net.

Après avoir lu cet article vous saurez :

  • Quelles sont les différences entre Ethereum et Solana ?
  • Comment installer les outils de développement Solana ?
  • Comment coder votre premier programme Solana ?
  • Où apprendre le développement web3 Solana ?

Partons sans plus tarder à la découverte de cette technologie web3 qu’est Solana !

Différences entre Solana et Ethereum

Les frais de transactions sont moins chers et les transaction plus rapides sur Solana tandis qu’Ethereum est mieux pour la sécurité et la décentralisation. Ethereum est a beaucoup plus de cas d’utilisation. Solana a été créé en 2020, il s’agit donc d’un projet assez récent.

Niveau code, le paradigme des smart contracts (et programmes) sont un peu différents et on code sur la blockchain Solidity avec Ethereum en alors qu’on programme en Rust pour Solana.

Les programmes Solana et les Smart contracts Ethereum

Les Smart Contract Ethereum sont immutables et read-only (ils ne peuvent pas être changés), là où les “Programmes” Solana peuvent l’être.

En Solana, les smart contracts sont appelés des “Programmes”

Avec Ethereum, la data est enregistrée dans le Smart Contrat, alors qu’avec Solana, elle est sauvée de manière externe dans un ou plusieurs “Accounts”.

C’est la raison pour laquelle on peut changer la logique des programmes Solana, tout en gardant la même donnée.

Il faudra quand même redéployer un nouveau smart contract Solana pour lui appliquer les changements, mais on converse la data sur laquelle il point.

Avec Solana, on peut donc “mettre à jour” nos Smart Contract.

Rust pour Solana, Solidity pour Ethereum

D’un point de vue plus technique, les programmes Solana sont codés avec le langage de programmation rust (plus sur ce langage de programmation plus bas) alors que les smart contracts Ethereum sont codés en Solidity.

Rust

Apprendre à Coder en Rust

Rust est un langage système très puissant qui sert principalement à créer des outils système. Il est similaire à C ou C++.

Sur Solana, on développe les programmes (smart contracts) en Rust.

L’avantage est qu’en apprenant Solana, vous apprenez un langage qui vous permettra de faire d’autres choses (contrairement à Solidity qui ne sert que pour Ethereum).

L’inconvénient est que Rust peut être difficile à apprendre pour les développeurs débutants. En effet, pour coder en rust il faudra comprendre beaucoup de concepts plus bas niveau comme la gestion de mémoire, l’immutabilité, les références, les types, …

rustup

La commande rustup est votre manager de version de rust. Avec, vous pouvez vérifier si une nouvelle version de rust est disponible et l’installer.

rustc

La commande rustc est le compilateur de rust. Pour rapidement compiler un fichier rust .rs, on utilise rusc main.rs. Ensuite, pour lancer le binaire que rustc a créé, on utilise ./main.

Cargo

Cargo est le package manager de rust. Vous pouvez le voir comme le npm de node js ou le pip de python mais pour rust.

Cargo vous permet de créer des projets, les compiler et les lancer en plus de gérer vos “dependencies”.

Voici les commandes les plus utiles :

  • cargo init => permet d’ajouter cargo au dossier courant
  • cargo new projectName => permet de créer un nouveau projet
  • cargo check => compile votre projet sans créer un binaire
  • cargo build => compile votre projet et crée un exécutable dans target/debug/...
  • cargo build --release => crée un build de production optimisé
  • cargo run => compile vos sources et lance le projet

Anchor

Anchor

Pour développer nos programmes Solana, on va utiliser un outil appelé “Anchor”.

Si vous connaissez Hardhat, Truffle ou web3.js dans le monde d’Ethereum, c’est le même concept mais pour Solana.

En gros, il permet d’exécuter très facilement des programmes Solana localement et de les déployer sur la blockchain Solana réelle quand on est prêt à passer en production.

Installer les outils de développement Solana

Installons les outils de développement Solana, on va avoir besoin de 3 choses :

  • Rust qui est le langage utilisé pour développer les programmes Solana
  • Les outils développement officiels Solana
  • Anchor qui permet d’exécuter et deployer nos programmes Solana.

Si vous êtes sur Mac OSX avec un processeur Intel ou bien sur Linux, l’installation de ces outils sera facile.

Sinon, si vous êtes sur Windows ou Mac OSX avec la puce M1, l’installation de ces outils sera un peu plus complexe.

Mais pas de soucis, vous trouverez la marche à suivre pour faire fonctionner tout ça.

Et si ça ne fonctionne vraiment pas, je vous dis comment utiliser un container docker avec cet environnement de développement.

Voyons ensemble comment installer tout ça en fonction de votre OS et votre machine.

Installer Rust

Peu importe votre système d’exploitation, on va installer rust et vérifier que l’installation a fonctionné :

curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
rustup --version
rustc --version
cargo --version

Ces 3 dernières commandes sont utiles pour vérifier que vous avez bien rustup, rustc et cargo d’installées.

Installer Solana

sh -c "$(curl -sSfL https://release.solana.com/v1.8.3/install)"

Après avoir ajouté solana dans votre PATH, vérifié que ça a fonctionné avec

solana --version

Installer Anchor

Une fois Rust et Solana installé, on va pouvoir installer Anchor.

cargo install --git https://github.com/project-serum/anchor anchor-cli --locked

Installer Solana sur Mac OS (M1)

Avec les puces M1, il faut compiler et installer Solana avec les sources depuis GitHub :

git clone https://github.com/solana-labs/solana.git/
cd solana
git checkout v1.8.2
./scripts/cargo-install-all.sh .
solana --version

Installer Anchor sur Windows

Anchor n’est pas encore compatible avec Windows. Pour utiliser les outils de développement offerts par Anchor, il va donc falloir passer par Linux, sous Windows.

On va donc utiliser Windows Subsystem for Linux. Pour l’installer, rendez-vous dans un terminal ou lancer cmd.exe puis taper :

wsl --install

Vous devrez ensuite installer node, npm puis rust.

sudo apt-get install curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
command -v nvm
nvm install --lts

Si vous avez des erreurs “commande pas trouvée” sur une de ces commandes, pensez à relancer WSL.

Installer Anchor avec Docker (Ubuntu 16.04)

Si les méthodes ci-dessus n’ont pas fonctionner pour votre machine, vous pouvez toujours passer par Docker.

N’ayant moi-même pas réussi à installer Anchor sur ma machine, j’ai dû passer par Docker avec un container Ubuntu 16.04.

Pour installer les outils de développement de Smart Contract Solana avec Anchor sur Ubuntu il faudra installer quelques packages et bibliothèques.

Avant de créer votre container, vous pouvez partager un dossier depuis votre machine (hôte) et votre container docker (Ubuntu) avec la commande :

 docker run -ti -v "$PWD/<VOTRE_DOSSIER_SUR_VOTRE_MACHINE>":/<LE_DOSSIER_SOUS_UBUNTU> ubuntu /bin/bash

Ensuite, une fois votre container lancé, voici les commandes que j’ai dû écrire pour faire fonctionner Anchor :

apt-get update
apt-get install curl
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
rustup --version
rustc --version
cargo --version
sh -c "$(curl -sSfL https://release.solana.com/v1.8.2/install)"
solana config set --url localhost
export PATH="/root/.local/share/solana/install/active_release/bin:$PATH"
solana config set --url localhost
solana config get
solana-test-validator
apt-get install nodejs npm
npm install -g mocha
apt-get install libssl-dev pkg-config libudev-dev
cargo install --git https://github.com/project-serum/anchor anchor-cli --locked
anchor --version
npm install -g yarn
npm install @project-serum/anchor @solana/web3.js
anchor init myepicproject --javascript
cd myepicproject/
curl -fsSL https://deb.nodesource.com/setup_current.x |  bash -
apt-get install nodejs
solana-keygen new
solana address
apt-get install -y linux-headers-5.10
rm -rf ~/.cache/solana/v1.12
anchor test

C’est le dump de mon history, certaines commandes sont certainement inutiles. Si vous réussi à installer Anchor sur un container plus facilement, ou que vous voulez partagé votre image Docker, n’hésitez pas à poster ça sur Twitter.

Vous êtes prêts à développer des programmes Solana !

Félicitations ! Si vous êtes arrivés ici, c’est que vous avez réussi à installer vos outils de développement pour coder des programmes Solana.

Si ce n’est pas le cas, n’hésitez pas à poser vos questions sur Twitter.

Vous pouvez aussi rejoindre le discord anchor ou le discord solana.

Où apprendre Solana ?

Solana et son environnement de développement sont assez récents. Il n’existe que très peu de contenus pour apprendre cette technologie (et tout est en anglais).

Vous trouverez ci-dessous les ressources que j’ai utilisé pour apprendre Rust et Solana !

Apprendre rust

En devenant familier avec Rust, il vous sera beaucoup plus facile d’apprendre le développement web3 Solana. Si vous connaissez déjà le langage de Mozilla, il vous sera facile d’apprendre la bibliothèque Rust Solana, sinon, commencer par apprendre le langage peut être une bonne idée.

Apprendre rust avec un livre

Si vous voulez un bon support papier pour apprendre Rust, alors je vous conseille la version française de cet ouvrage de référence : Programmer avec Rust : pour une programmation système rapide et sûre.

Vous y apprendrez tous les concepts important de Rust et vous aurez une compréhension solide du langage grâce à ce bouquin.

Apprendre rust sur Udemy

Si vous préférez le format vidéo des cours d’Udemy, alors ce cours en français : Débutez en Rust : Apprenez les bases du langage de programmation Rust sera parfait pour vous.

C’est le cours le plus populaire en rust en français avec plus de 100 avis positifs !

La documentation rust

La documentation Rust et son rust book sont d’excellentes sources pour apprendre le langage. Le book rust vous accompagne dans l’apprentissage de tous les concepts importants de ce langage système. Les 4 premiers chapitres sont essentiels si vous voulez comprendre Rust.

Rustlings

Rustlings est un programme interactif développé par l’équipe de développeurs Rust. En clonant le repo, vous aurez une série de programmes rust et leur batterie de tests associée. Vous avancez dans votre apprentissage du rust en passant ces tests.

La documentation officielle Solana

La documentation solana est excellente et gratuite. Ce manuel complet vous apprendra tout sur l’écosystème Solana. Malheureusement en anglais et plein d’autres langues, cette ressource n’est pas (encore) disponible en français.

buildspace

Buildspace propose un cours d’introduction gratuit pour Solana. Tous leurs cours sont excellents et vous permettront de prendre en main le développement web3 avec leur 3 cours sur Ethereum et leur cours sur Solana.

En plus, vous pourrez recevoir un NFT quand vous finissez le cours Solana sur Buildspace

Apprendre Solana sur Github

Une fois les bases de Solana comprises et comme les ressources d’apprentissage sont encore limitées, je vous conseille de parcourir github pour trouver des projets solana, les lire et les modifier.

Apprendre à lire le code des autres est une compétence importante dans votre carrière de développeurs et GitHub fournit d’excellents projets à comprendre et modifier.

Rejoignez des groupes sur discord

La communauté web3 a besoin de développeurs et on sera ravi de vous aider. En rejoignant des groupes de discussion sur Discord, vous pourrez poser vos questions et apprendre des questions des autres.

Allez plus loin dans votre apprentissage Solana

Et voilà ! Vous avez maintenant tout ce qu’il faut sur votre machine pour commencer à développer vos programmes Solana. Et vous connaissez également quelles sont les meilleures ressources pour apprendre Solana.

Et vous, comment avez vous appris Solana ? Vous avez utilisé d’autres ressources ? Quel est votre parcours ? Vous avez contribué à des projets Solana ?

Alors dites nous tout sur Twitter !

Comment Coder

Je m'appelle Thomas. J'ai commencé à coder dans mon enfance. Depuis ma sortie de la première promo de l'École 42, j'ai développé des centaines d'applications et sites web. Sur ce blog, je vous donne les meilleurs conseils et astuces pour apprendre comment apprendre à coder efficacement.