Les 25 Meilleures Questions d'Entretien Développeur Solana (2026)

Les postes de developpeur Solana comptent parmi les mieux remuneres dans la blockchain, avec des salaires allant de 115 000 $ a 200 000 $+. Ce guide couvre les questions d'entretien les plus courantes que vous rencontrerez.
Fondamentaux de Solana
1. Qu'est-ce que Solana et en quoi differe-t-il d'Ethereum ?
Reponse : Solana est une blockchain Layer 1 haute performance concue pour la vitesse et l'evolutivite. Differences cles :
- Consensus : Solana utilise Proof of History (PoH) + Proof of Stake contre Proof of Stake pour Ethereum
- Vitesse : ~400ms de temps de bloc contre ~12 secondes
- Debit : 65 000+ TPS theorique contre ~30 TPS
- Frais : Fractions de centime contre variable (souvent plusieurs dollars)
- Contrats intelligents : Appeles "Programmes", ecrits en Rust contre Solidity
2. Expliquez le Proof of History (PoH)
Reponse : Le Proof of History est une horloge cryptographique qui cree un enregistrement historique prouvant que des evenements se sont produits a des moments specifiques. Il fonctionne en :
- Executant une fonction de hachage SHA-256 en continu
- Chaque hash inclut le hash precedent en entree
- La sortie sert d'horodatage verifiable
- Les validateurs peuvent verifier la sequence sans communication
Cela permet a Solana d'ordonner les transactions sans attendre un consensus a l'echelle du reseau sur le timing.
3. Quelle est la difference entre un Programme et un Compte ?
Reponse :
- Les Programmes sont du code executable deploye sur la blockchain (comme les contrats intelligents). Ils sont sans etat et ne peuvent pas stocker de donnees eux-memes.
- Les Comptes sont des conteneurs de donnees qui stockent l'etat et les SOL. Les programmes lisent et ecrivent dans les comptes sur lesquels ils ont autorite.
Cette separation permet le traitement parallele des transactions - differentes transactions peuvent s'executer simultanement si elles touchent des comptes differents.
4. Qu'est-ce qu'une PDA (Program Derived Address) ?
Reponse : Une PDA est une cle publique derivee de maniere deterministe a partir d'un ID de programme et de seeds. Caracteristiques cles :
const [pda, bump] = PublicKey.findProgramAddressSync(
[Buffer.from("seed"), userPubkey.toBuffer()],
programId
);
- Aucune cle privee correspondante n'existe
- Seul le programme peut signer pour elle
- Utilisee pour les comptes appartenant au programme
- Deterministe - les memes seeds produisent toujours la meme adresse
5. Comment fonctionnent les transactions dans Solana ?
Reponse : Une transaction Solana contient :
- Instructions : Operations a executer (peut en avoir plusieurs)
- Signatures : De tous les signataires requis
- Blockhash recent : Pour la deduplication (expire ~2 minutes)
- Payeur de frais : Compte payant les frais de transaction
const transaction = new Transaction()
.add(instruction1)
.add(instruction2);
transaction.recentBlockhash = blockhash;
transaction.feePayer = payer;
Questions sur @solana/web3.js
6. Qu'est-ce que @solana/web3.js ?
Reponse : Le SDK officiel JavaScript/TypeScript pour interagir avec Solana. La version 2.0 (sortie en novembre 2024) a introduit :
- Support du tree-shaking
- Zero dependances
- Operations cryptographiques 10x plus rapides
- Patterns JavaScript modernes (API fonctionnelle)
7. Comment se connecter a un cluster Solana ?
Reponse :
// Legacy v1
import { Connection } from "@solana/web3.js";
const connection = new Connection("https://api.mainnet-beta.solana.com");
// v2
import { createSolanaRpc } from "@solana/web3.js";
const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
8. Comment creer et signer une transaction ?
Reponse :
import { Transaction, SystemProgram, Keypair } from "@solana/web3.js";
const transaction = new Transaction().add(
SystemProgram.transfer({
fromPubkey: sender.publicKey,
toPubkey: recipient,
lamports: 1000000000, // 1 SOL
})
);
transaction.recentBlockhash = (await connection.getLatestBlockhash()).blockhash;
transaction.feePayer = sender.publicKey;
transaction.sign(sender);
const signature = await connection.sendRawTransaction(transaction.serialize());
9. Que sont les lamports ?
Reponse : Les lamports sont la plus petite unite de SOL (comme le wei pour l'ETH ou les satoshis pour le BTC). 1 SOL = 1 000 000 000 lamports (10^9).
10. Comment gerer la confirmation des transactions ?
Reponse :
const signature = await connection.sendTransaction(transaction);
// Attendre la confirmation
await connection.confirmTransaction({
signature,
blockhash,
lastValidBlockHeight,
}, "confirmed"); // ou "finalized" pour une certitude maximale
Niveaux de confirmation :
- processed : Vu par le noeud connecte
- confirmed : Vote par une supermajorité
- finalized : 31+ blocs de profondeur, irreversible
Developpement de Programmes
11. Quels langages pouvez-vous utiliser pour ecrire des Programmes Solana ?
Reponse :
- Rust (le plus courant, meilleures performances)
- C/C++ (supporte mais rare)
- Python via Seahorse (compile en Rust)
Le framework Anchor est le choix le plus populaire pour le developpement en Rust.
12. Qu'est-ce que le framework Anchor ?
Reponse : Anchor est un framework pour le developpement de Programmes Solana qui fournit :
- Des macros declaratives pour reduire le code boilerplate
- Validation automatique des comptes
- Generation d'IDL pour l'interaction client
- Utilitaires de test
#[program]
pub mod my_program {
use super::*;
pub fn initialize(ctx: Context<Initialize>) -> Result<()> {
// Logique du programme
Ok(())
}
}
13. Comment fonctionne la validation des comptes dans Anchor ?
Reponse : Anchor utilise des macros derive pour valider les comptes :
#[derive(Accounts)]
pub struct Initialize<'info> {
#[account(init, payer = user, space = 8 + 32)]
pub my_account: Account<'info, MyData>,
#[account(mut)]
pub user: Signer<'info>,
pub system_program: Program<'info, System>,
}
14. Qu'est-ce que la Solana Program Library (SPL) ?
Reponse : SPL est une collection de programmes on-chain pour des fonctionnalites courantes :
- Token Program : Tokens fongibles (comme ERC-20)
- Associated Token Account : Derivation standard des comptes de tokens
- Token-2022 : Fonctionnalites de tokens etendues
- Name Service : Nommage on-chain
- Memo : Attacher des donnees aux transactions
Architecture et Performance
15. Pourquoi Solana est-il si rapide ?
Reponse : Plusieurs optimisations :
- Proof of History : Pre-ordonne les transactions sans delai de consensus
- Tower BFT : Consensus optimise pour PoH
- Turbine : Protocole de propagation des blocs
- Gulf Stream : Transfert de transactions sans mempool
- Sealevel : Runtime parallele pour contrats intelligents
- Pipelining : Traitement des transactions accelere par GPU
16. Qu'est-ce que Sealevel ?
Reponse : Le runtime parallele de Solana qui execute les transactions simultanement. Les transactions sont triees par les comptes auxquels elles accedent - celles touchant des comptes differents s'executent en parallele.
17. Comment fonctionnent les validateurs dans Solana ?
Reponse : Les validateurs :
- Executent le logiciel Solana
- Valident et votent sur les transactions
- Produisent des blocs lorsqu'ils sont selectionnes comme leader
- Gagnent des recompenses de l'inflation et des frais
- Necessitent des SOL stakes (propres ou delegues)
Securite et Bonnes Pratiques
18. Quelles sont les vulnerabilites de securite courantes sur Solana ?
Reponse :
- Verifications de signataire manquantes : Ne pas verifier les signataires de transaction
- Verifications de proprietaire manquantes : Ne pas verifier la propriete des comptes
- Depassement d'entier : Arithmetique sans operations verifiees
- Collisions de seeds PDA : Seeds non uniques
- Attaques de reinitialisation : Permettre la reinitialisation des comptes
19. Comment prevenir la reentrance dans Solana ?
Reponse : L'architecture de Solana empeche largement la reentrance par conception - les programmes ne peuvent pas s'appeler recursivement. Cependant, l'invocation inter-programmes (CPI) necessite une gestion prudente de l'etat des comptes.
20. Qu'est-ce que l'Invocation Inter-Programmes (CPI) ?
Reponse : Le CPI permet aux programmes d'appeler d'autres programmes :
let cpi_accounts = Transfer {
from: ctx.accounts.from.to_account_info(),
to: ctx.accounts.to.to_account_info(),
authority: ctx.accounts.authority.to_account_info(),
};
let cpi_program = ctx.accounts.token_program.to_account_info();
let cpi_ctx = CpiContext::new(cpi_program, cpi_accounts);
token::transfer(cpi_ctx, amount)?;
Sujets Avances
21. Que sont les frais de priorite et comment fonctionnent-ils ?
Reponse : Les frais de priorite augmentent la priorite des transactions pendant la congestion :
const modifyComputeUnits = ComputeBudgetProgram.setComputeUnitLimit({
units: 200000
});
const addPriorityFee = ComputeBudgetProgram.setComputeUnitPrice({
microLamports: 1000
});
transaction.add(modifyComputeUnits, addPriorityFee);
22. Qu'est-ce que Jito et le MEV sur Solana ?
Reponse : Jito est un client Solana qui permet le MEV (Maximal Extractable Value) via :
- Bundles : Paquets de transactions atomiques
- Tips : Incitations pour les validateurs
- Block engine : Infrastructure d'extraction MEV
23. Comment gerer les limites de taux RPC ?
Reponse :
- Utiliser des fournisseurs RPC dedies (Helius, QuickNode)
- Implementer un backoff exponentiel
- Mettre en cache les reponses lorsque possible
- Utiliser les websockets pour les abonnements plutot que le polling
- Regrouper les appels RPC lorsque possible
24. Qu'est-ce que la compression de comptes ?
Reponse : La compression de comptes utilise des arbres de Merkle pour stocker les donnees hors chaine tout en maintenant la verification on-chain. Utilisee pour :
- NFTs compresses (cNFTs)
- Airdrops a grande echelle
- Actifs de jeux
25. Comment debugger les transactions Solana ?
Reponse :
- Solana Explorer : Voir les details des transactions
- solana logs : Streaming de logs CLI
- anchor test : Tests locaux
- Macro msg!() : Logging du programme
- Simulation avant envoi :
connection.simulateTransaction()
Ressources Connexes
Apprenez a developper avec Solana dans notre Guide de Developpement JavaScript Solana avec des exemples de code pratiques.
Pour les applications de trading, consultez notre Guide des Bots de Trading Solana couvrant les strategies DeFi.
Conclusion
Le developpement Solana necessite de comprendre son architecture unique - Proof of History, le modele de Comptes et l'execution parallele. Maitrisez ces concepts ainsi que @solana/web3.js, et vous serez bien prepare pour les entretiens techniques.