Aller au contenu
Blockchain Association of Cameroon
BAC-L0-FOUND-1133 h

Nœuds, validateurs et rôles du réseau

Qui fait quoi dans un réseau : nœud complet, nœud d'archive, client léger, validateur, collateur. Les confondre rend toute discussion d'infrastructure impossible.

  • Distinguer les rôles par ce qu'ils stockent et ce qu'ils vérifient
  • Choisir le type de nœud adapté à un besoin donné
  • Estimer le coût de stockage d'un nœud d'archive

« J'ai lancé un nœud » ne veut rien dire tant qu'on ne précise pas lequel : un nœud complet, un nœud d'archive, un client léger, un validateur ? Ces rôles ne stockent pas les mêmes données, ne vérifient pas les mêmes choses et ne coûtent pas le même prix. Dans cet atelier vous apprenez à les distinguer par deux questions simples — qu'est-ce que ce rôle conserve, et qu'est-ce qu'il vérifie lui-même — puis à choisir le bon type de nœud pour un besoin donné et à estimer, chiffres à l'appui, le coût de stockage et de bande passante d'un nœud d'archive. Vous verrez enfin pourquoi un client léger délègue une partie de la confiance, et comment une application peut s'en rendre compte avant qu'un utilisateur perde de l'argent.

Leçons 1/4 · 20 min

Les rôles : ce qu'ils gardent et ce qu'ils vérifient

Une question de départ

Votre ami dit : « Mon application interroge un nœud, donc elle ne fait confiance à personne. » Est-ce vrai ? Cela dépend entièrement du nœud. Pour répondre, il faut deux questions pour chaque rôle du réseau :

  1. Que stocke-t-il ? (tout l'historique, seulement l'état récent, seulement les en-têtes de blocs)
  2. Que vérifie-t-il lui-même ? (chaque transaction et chaque transition d'état, ou seulement des preuves et des signatures)

Rappel de l'atelier 110 : un bloc a un en-tête (hauteur, empreinte du bloc précédent, racines de Merkle) et un corps (les transactions). L'état est le tableau des soldes et des données après chaque bloc ; l'en-tête en contient une empreinte, la racine d'état.

Les rôles, un par un

  • Nœud complet (full node) : télécharge les blocs, rejoue chaque transaction et vérifie les règles du protocole. Il refuse un bloc invalide même si tout le monde le signe. Il conserve l'état récent et, selon sa configuration, peut élaguer (supprimer) les états anciens.
  • Nœud d'archive : un nœud complet qui ne supprime rien : il peut répondre à « quel était le solde de ce compte au bloc 1 200 000 ? ». Il est donc beaucoup plus gros.
  • Client léger (light client) : ne garde que les en-têtes (ou même seulement un en-tête récent de confiance). Pour une donnée précise, il demande une preuve de Merkle à un nœud complet et la compare à la racine de l'en-tête. Il ne rejoue pas les transactions.
  • Validateur (preuve d'enjeu) ou mineur (preuve de travail) : participe à la production et au vote des blocs. Il doit, pour sa propre sécurité et celle du réseau, être un nœud complet : il ne devrait pas voter sur ce qu'il n'a pas vérifié (le protocole ne l'impose pas toujours : certains mineurs de pool travaillent sur un modèle de bloc fourni par l'opérateur). Il détient en plus une clé de signature qui engage ses fonds.
  • Collateur (collator) : terme propre à Polkadot et à ses parachaînes. Il rassemble les transactions d'une parachaîne et prépare les blocs candidats que les validateurs de la chaîne relais vérifient. Il ne sécurise pas la chaîne relais lui-même. Ailleurs, le mot n'existe pas ou désigne autre chose : vérifiez le vocabulaire de chaque réseau.
  • Nœud RPC : un nœud complet (ou d'archive) dont l'interface JSON-RPC est ouverte à des applications. C'est un usage du nœud, pas un type de données.

Tableau de synthèse

RôleGardeVérifie lui-mêmePeut répondre à l'historique ancien ?
Client légerEn-têtesSignatures/travail des en-têtes, preuves de MerkleNon, sans aide
Nœud complet (élagué)Blocs + état récentToutes les transactionsSeulement la période conservée
Nœud d'archiveTout, y compris les états passésToutes les transactionsOui
ValidateurComme un complet + clé de signatureToutes les transactions, puis voteDépend de sa configuration

Exemple détaillé : qui peut répondre ?

Un réseau fictif a 2 000 000 de blocs. Trois questions : (a) « Ce paiement figure-t-il dans le bloc 1 999 990 ? » (b) « Quel était le solde du compte X au bloc 500 000 ? » (c) « Cette transaction respecte-t-elle les règles ? »

  • (a) Un client léger peut y répondre avec une preuve de Merkle contre l'en-tête.
  • (b) Seule une archive a immédiatement l'état du bloc 500 000 ; un nœud complet élagué l'a supprimé (s'il a gardé les blocs, il pourrait le recalculer en les rejouant, lentement). Un client léger ne peut que demander, et devra croire la réponse sauf si elle vient avec une preuve contre la racine d'état de cet en-tête.
  • (c) Seul un nœud qui rejoue la transaction (complet, archive, validateur) la vérifie vraiment.

Ce que cela ne garantit PAS

  • Lancer un nœud complet ne vous rend pas validateur : il n'y a ni vote ni récompense sans clé de validation et, en preuve d'enjeu, sans enjeu déposé.
  • Un nœud complet ne vous protège pas d'une chaîne valide selon les règles mais fausse : s'il est connecté seulement à des pairs malveillants (attaque d'éclipse), il peut suivre une branche que le reste du réseau ne suit pas. Il vérifie les règles, pas la vérité du monde.
  • Les noms ne sont pas normalisés : deux projets peuvent appeler « léger » deux choses différentes.

À retenir

Un rôle se définit par ce qu'il garde et ce qu'il vérifie. Moins il vérifie, plus il délègue de confiance ; moins il garde, moins il coûte.

Leçons 2/4 · 20 min

Choisir le bon type de nœud pour un besoin

Le problème

Quatre équipes de Douala et de Yaoundé ont chacune besoin d'un « nœud ». Elles ne devraient pas toutes lancer la même chose. Pour choisir, on part du besoin, pas de la technologie.

Grille de décision

Posez ces quatre questions dans l'ordre :

  1. Dois-je vérifier moi-même les règles ? Si une erreur de la source coûte de l'argent (encaisser un dépôt, signer un virement), oui.
  2. Ai-je besoin de l'historique ancien ? Soldes passés et traces d'exécution anciennes → archive. Les journaux d'événements anciens sont souvent disponibles sur un nœud complet qui garde les blocs (vérifiez la documentation de la chaîne). Sinon, un nœud complet élagué suffit.
  3. Combien de requêtes par seconde ? Une application publique a besoin de plusieurs nœuds derrière un répartiteur de charge, pas d'un seul gros.
  4. Quelle machine et quel réseau ai-je ? Un téléphone avec une connexion facturée au volume ne peut pas suivre une chaîne en continu.

Quatre cas

BesoinType conseilléPourquoi
Portefeuille mobile pour des particuliersClient léger, ou service RPC de confianceLe téléphone ne peut ni stocker ni rejouer la chaîne ; on accepte une hypothèse de confiance, qu'il faut annoncer
Plateforme de dépôts (crédit après paiement)Nœud complet à soi + règle de confirmationsL'argent est en jeu : on ne délègue pas la vérification
Explorateur ou analyse historiqueNœud d'archive (et un indexeur)Il faut l'état passé et les traces d'exécution de n'importe quel bloc
Validation du réseauNœud complet dédié + clé de signature protégéeDisponibilité 24 h/24 ; une double signature peut être sanctionnée

Exemple détaillé : la bande passante d'un nœud

Les chiffres suivants sont fictifs (aucun réseau réel n'est décrit) : un réseau produit un bloc toutes les 6 secondes, chaque bloc pèse 80 Ko.

  • Blocs par jour : 86 400 s ÷ 6 s = 14 400 blocs.
  • Données de blocs par jour : 14 400 × 80 Ko = 1 152 000 Ko ≈ 1,15 Go.
  • Un nœud reçoit aussi les transactions en attente et les messages des pairs. Supposons, pour l'exemple, un surcoût de ×5 : ≈ 5,76 Go par jour, soit environ 173 Go par mois.

Sur une connexion mobile facturée au volume, 173 Go par mois est hors de portée de nombreux budgets. Conclusion pratique : on héberge le nœud chez un fournisseur au volume non facturé ou dans un centre de données, et l'on s'y connecte depuis son téléphone. Le facteur ×5 est une hypothèse de l'exemple : mesurez le vôtre avec les compteurs de l'interface réseau pendant 24 heures.

Temps de synchronisation : deux limites distinctes

Mettre un nœud à niveau demande de télécharger puis de vérifier. Le téléchargement suit le modèle de l'atelier 101 : durée ≈ allers-retours × latence + taille × 8 ÷ débit. Mais la vérification — rejouer les transactions, calculer les empreintes — dépend du processeur et du disque, pas du débit. Une fibre rapide ne rend pas un nœud synchronisé plus vite si son disque est lent.

Ce que cela ne garantit PAS

  • Un service RPC public gratuit n'est ni un nœud complet à vous ni un engagement de disponibilité : il peut limiter le débit, filtrer des méthodes ou renvoyer des données en retard.
  • « Plus gros » ne veut pas dire « plus sûr ». Un nœud d'archive vérifie exactement les mêmes règles qu'un nœud complet ; il se contente de garder plus.
  • Les chiffres de bande passante ci-dessus sont une méthode de calcul, pas une mesure d'un réseau réel.

À retenir

On choisit un nœud en partant du besoin : qui supporte l'erreur ? faut-il le passé ? quel volume de requêtes ? quelle machine ? Et l'on écrit noir sur blanc l'hypothèse de confiance qu'on accepte.

Leçons 3/4 · 25 min

Estimer le coût de stockage d'un nœud d'archive

Le problème

Votre équipe veut un nœud d'archive pour un service régional. Le directeur demande : « Combien de disque, et combien d'argent, pour trois ans ? » Une réponse sérieuse est un calcul avec hypothèses écrites, pas un chiffre trouvé sur un forum.

Méthode en quatre étapes

  1. Blocs par an = (secondes par an) ÷ (temps entre blocs).
  2. Octets par bloc conservés = corps du bloc + variations d'état + index. L'archive conserve l'état passé : le point délicat est de savoir combien d'état change à chaque bloc. On le mesure sur un nœud réel de la chaîne visée.
  3. Taille par an = blocs par an × octets par bloc.
  4. Marges : espace libre pour que le disque ne soit jamais plein (au moins 20 à 30 %), croissance du trafic, sauvegarde.

Exemple détaillé (réseau FICTIF)

Hypothèses : un bloc toutes les 6 s ; en moyenne 50 Ko de corps de bloc et 30 Ko de variations d'état et d'index par bloc, soit 80 Ko.

  1. Blocs par an : 14 400 par jour × 365 = 5 256 000.
  2. Taille par an : 5 256 000 × 80 Ko = 420 480 000 Ko ≈ 420 Go par an (Go décimaux).
  3. Sur 3 ans, sans croissance du trafic : 3 × 420 = 1 260 Go ≈ 1,26 To.
  4. Marge de 30 % d'espace libre : il faut un disque d'au moins 1 260 ÷ 0,7 = 1 800 Go utilisables, donc on achète 2 To.

Si le trafic double après un an, l'hypothèse « sans croissance » est fausse : refaites le calcul par tranche. Une estimation qui ne dit pas comment elle serait fausse n'est pas une estimation.

Coût : le disque n'est pas qu'une capacité

Un nœud lit et écrit en désordre. Le débit d'entrées/sorties (opérations par seconde) compte autant que les téraoctets : un disque mécanique peut être trop lent pour suivre la chaîne. Les clients de nœud recommandent en général des disques SSD, souvent NVMe ; la documentation de votre client donne le minimum.

Dans cet atelier, « estimer le coût de stockage » veut dire estimer la taille de disque à prévoir ; le coût en argent s'obtient en multipliant par un tarif. Pour le budget, additionnez : disque × prix du Go du fournisseur (vous lisez le tarif au moment de l'achat : il change), bande passante, sauvegarde, et le temps d'une personne pour la maintenance. Dans cet atelier, nous n'utilisons aucun prix réel : l'important est la structure du calcul.

Pourquoi tout le monde ne lance pas une archive

Comparons avec un nœud complet élagué. Supposons qu'il ne garde que 100 000 blocs d'état récents : 100 000 × 30 Ko = 3 Go d'état, plus les blocs 5 256 000 × 50 Ko ≈ 263 Go si on les garde tous. L'élagage de l'état ancien fait donc passer l'ordre de grandeur de 420 à environ 266 Go par an dans cet exemple, et surtout il plafonne la partie état. Le nœud complet vérifie les mêmes règles ; il a seulement oublié le passé de l'état. Attention : ce jouet ne compte que les variations d'état par bloc ; l'état courant complet (tous les comptes) vient s'ajouter, et sa taille est une donnée à mesurer, non à déduire de ces variations.

Ce que cela ne garantit PAS

  • Le calcul ne dit pas combien de temps prend la synchronisation initiale : elle dépend du processeur, du disque et du réseau.
  • La taille ne croît pas toujours de façon linéaire : un changement de protocole, un pic d'usage ou une attaque de spam peut la faire bondir.
  • Un nœud d'archive plus gros n'est pas plus « décentralisé » : si peu de gens peuvent se payer le matériel, il y a peu d'archives indépendantes, et l'on retombe sur la confiance envers quelques fournisseurs (voir l'atelier 114).

À retenir

Taille = blocs × octets conservés par bloc, avec une marge d'espace libre. Écrivez vos hypothèses, mesurez-les sur un vrai nœud, et refaites le calcul quand elles changent.

Leçons 4/4 · 25 min

Validateurs, quorums et confiance du client léger

Le problème

Un portefeuille mobile affiche « Solde : 25 000 ». D'où vient ce chiffre ? Si l'application a demandé à un serveur et fait confiance à la réponse, c'est ce serveur qui décide de ce que vous voyez. Un client léger essaie de réduire cette confiance, mais pas de la supprimer.

Le validateur : un nœud complet qui signe

Dans un réseau à tolérance aux fautes byzantines (atelier 108), n validateurs décident à la supermajorité (strictement plus des deux tiers des voix). Avec n = 3f + 1, le réseau tolère f validateurs byzantins et exige un quorum de 2f + 1 votes. Exemple : n = 10, donc f = 3, quorum = 7. Si 3 validateurs sont hors ligne ou malveillants, 7 restent : le quorum est atteignable. Avec 4 validateurs fautifs, il ne l'est plus. Si ce sont 4 pannes franches, la vivacité (liveness) est perdue mais la sûreté (safety) tient ; si ce sont 4 byzantins, la sûreté elle-même n'est plus garantie (elle ne tient que jusqu'à f = 3 byzantins).

Essayez le simulateur de quorum : fixez n, désignez des validateurs fautifs et regardez à partir de quand le quorum n'est plus atteignable.

Un validateur doit tenir deux contraintes opposées :

  • Disponibilité : hors ligne, il manque des votes et peut être pénalisé.
  • Prudence de clé : sa clé de signature est utilisée en continu, donc stockée sur un serveur connecté. Lancer la même clé sur deux machines « pour la redondance » peut produire deux signatures contradictoires ; dans beaucoup de réseaux à preuve d'enjeu, ce comportement (équivocation, ou double signature) est sanctionné, parfois par la destruction d'une partie de l'enjeu. Les règles exactes dépendent du réseau.

Pratique courante : placer le validateur derrière des nœuds « sentinelles » qui seuls parlent au reste du réseau, et ne jamais exposer sa propre interface RPC.

Ce que délègue un client léger

Le client léger suit les en-têtes. Pour savoir « mon solde vaut 25 000 », il demande à un nœud complet la valeur et une preuve de Merkle qui relie cette valeur à la racine d'état de l'en-tête (atelier 106).

Ce qu'il vérifie :

  • que la valeur reçue est bien celle que contient l'état dont la racine figure dans l'en-tête (la preuve se recalcule) ;
  • selon le protocole, que l'en-tête est signé par assez de validateurs (preuve d'enjeu) ou porte assez de travail (preuve de travail).

Ce qu'il délègue, donc suppose :

  1. L'en-tête de départ est le bon. Il faut un point de départ de confiance : un en-tête embarqué dans l'application, ou la liste des validateurs à un instant donné. Si cet en-tête est faux, tout ce qui suit l'est.
  2. Les validateurs qui ont signé ont vérifié. Le client léger n'a pas rejoué le bloc ; il croit qu'un quorum honnête l'a fait. Une majorité malveillante de validateurs pourrait signer un bloc invalide, que seul un nœud complet repérerait.
  3. On lui montre la dernière chaîne. Un nœud complet malhonnête peut cacher des blocs récents (valeur à jour manquante) ou, s'il est le seul pair, vous éclipser.
  4. L'en-tête de départ est assez récent. Les ensembles de validateurs changent : un en-tête trop ancien peut être signé par des clés qui n'engagent plus d'enjeu.

Si l'application n'obtient aucune preuve et se contente de la réponse du serveur, elle ne délègue pas « un peu » : elle délègue tout à ce serveur.

Exemple : lire une preuve

Dans l'explorateur de Merkle, construisez un arbre de huit feuilles « comptes », cliquez sur une feuille et vérifiez la preuve. Modifiez ensuite la valeur d'une feuille : la racine change, et la preuve ne mène plus à l'ancienne racine. Voilà pourquoi une preuve valide contre l'en-tête fiable protège d'un serveur menteur sur cette donnée. Elle ne protège pas d'un en-tête faux.

Ce que cela ne garantit PAS

  • Une preuve de Merkle valide ne prouve pas que l'en-tête est final : sur une chaîne à finalité probabiliste, il peut encore être réorganisé (atelier 109).
  • Faire tourner un validateur ne garantit pas l'honnêteté de ses pairs ; seul le seuil 2f + 1 sur n = 3f + 1 borne le nombre de fautifs tolérés.
  • Un client léger n'est pas « sans confiance » : il remplace la confiance dans un serveur unique par la confiance dans l'en-tête de départ et dans le quorum de validateurs.

À retenir

Le validateur signe et devrait donc vérifier ; le client léger vérifie des preuves et délègue le reste. Toute délégation est une hypothèse de confiance qu'il faut nommer.

Outil interactif

Simulateur de quorum BFT

Cliquez sur un validateur pour changer son état : honnête, hors ligne, puis byzantin (malveillant ou défaillant de façon arbitraire).

Nombre de validateurs n

n = 7 · f = ⌊(n−1)/3⌋ = 2 · quorum = 2f+1 = 5

7 honnêtes, 0 hors ligne, 0 byzantin.

✓ Décision possible : 7 validateurs honnêtes et en ligne ≥ quorum 5. Le réseau peut réunir un quorum et finaliser des blocs.

✓ Sûreté garantie par le modèle : 0 byzantin ≤ f = 2. Deux quorums se recoupent toujours en au moins un validateur honnête, donc aucune décision contradictoire.

Modèle classique des protocoles BFT : n ≥ 3f + 1 validateurs tolèrent jusqu'à f fautifs (hors ligne ou byzantins). Un quorum est de 2f + 1 votes. Perdre la vivacité = le réseau ne progresse plus, mais rien de faux n'est décidé. Perdre la sûreté = des décisions contradictoires deviennent possibles, ce qui est plus grave. La vivacité suppose en plus un réseau qui finit par délivrer les messages. Ce n'est qu'un modèle : les protocoles réels ont d'autres hypothèses et d'autres seuils.

Outil interactif

Explorateur d'arbre de Merkle (jouet)

Une feuille par ligne (2 à 8). Choisissez une feuille pour voir sa preuve d'inclusion ; modifiez un texte pour voir quels nœuds changent.

5 feuilles

Les nœuds modifiés depuis la dernière saisie valide sont soulignés et marqués « modifié ». Les nœuds sur le chemin de la feuille choisie sont entourés. Dernier nœud d'un niveau impair : il est dupliqué comme son propre frère.

Convention : feuille = SHA-256(texte UTF-8) ; parent = SHA-256(gauche ‖ droite, octets bruts) ; nœud impair dupliqué. Arbre jouet : Bitcoin double le hachage et sérialise autrement.

Laboratoire guidé

Soyons honnêtes : votre navigateur ne peut pas lancer un vrai nœud ni un conteneur Docker. Ce laboratoire entraîne donc le raisonnement (choisir un rôle, calculer un temps de téléchargement, un quorum et une taille de disque) à partir de données générées pour vous. Le vrai travail pratique — lancer un nœud en mode complet puis en mode allégé et comparer ressources et temps de synchronisation — se fait dans le laboratoire autonome, sur votre machine.

Le navigateur ne remplace pas un vrai terminal : ce laboratoire entraîne la lecture et le raisonnement ; la pratique réelle est dans le laboratoire autonome.

Un compte certifié est nécessaire

Les activités notées enregistrent des résultats à votre nom et servent de base à un titre. Elles exigent donc un dossier certifiant complet et un consentement en vigueur. Remplir le dossier ne vérifie pas votre identité ; le Secrétariat peut ensuite la vérifier (badge « Vérifié »).

  1. 1.Choisir le rôle adapté à un besoin

    Relisez le tableau de synthèse de la première leçon, puis répondez à la question d'application affichée sous cette étape : elle décrit un service avec un besoin précis (vérification, historique, volume). Justifiez votre choix par ce que le nœud garde et vérifie, pas par son nom.

  2. 2.Calculer la durée de téléchargement d'un instantané

    Un nœud récupère un fichier. Les tailles réelles d'un instantané de chaîne sont de l'ordre de dizaines à centaines de Go ; l'exercice généré utilise de petites tailles, mais le modèle est le même. Ce modèle est celui de l'atelier 101 : durée totale = allers-retours × latence + taille × 8 ÷ débit (1 Mo = 8 mégabits). Lisez les données de l'épreuve générée pour vous, calculez d'abord la durée de transmission seule, puis la durée totale, et saisissez deux entiers en millisecondes. Rappelez-vous que la vérification qui suit n'est PAS incluse dans ce modèle.

  3. 3.Quorum d'un ensemble de validateurs

    Un ensemble de n validateurs est affiché, avec n = 3f + 1. Utilisez le simulateur de quorum pour vérifier votre intuition : combien de validateurs fautifs le réseau tolère-t-il, quelle est la taille d'un quorum, et quel est le plus petit réseau qui tolérerait une faute byzantine de plus ? Saisissez les trois entiers demandés.

    Outil interactif

    Simulateur de quorum BFT

    Cliquez sur un validateur pour changer son état : honnête, hors ligne, puis byzantin (malveillant ou défaillant de façon arbitraire).

    Nombre de validateurs n

    n = 7 · f = ⌊(n−1)/3⌋ = 2 · quorum = 2f+1 = 5

    7 honnêtes, 0 hors ligne, 0 byzantin.

    ✓ Décision possible : 7 validateurs honnêtes et en ligne ≥ quorum 5. Le réseau peut réunir un quorum et finaliser des blocs.

    ✓ Sûreté garantie par le modèle : 0 byzantin ≤ f = 2. Deux quorums se recoupent toujours en au moins un validateur honnête, donc aucune décision contradictoire.

    Modèle classique des protocoles BFT : n ≥ 3f + 1 validateurs tolèrent jusqu'à f fautifs (hors ligne ou byzantins). Un quorum est de 2f + 1 votes. Perdre la vivacité = le réseau ne progresse plus, mais rien de faux n'est décidé. Perdre la sûreté = des décisions contradictoires deviennent possibles, ce qui est plus grave. La vivacité suppose en plus un réseau qui finit par délivrer les messages. Ce n'est qu'un modèle : les protocoles réels ont d'autres hypothèses et d'autres seuils.

  4. 4.Estimer le disque d'un nœud d'archive

    Appliquez la méthode en quatre étapes de la troisième leçon aux hypothèses fictives de la question affichée sous cette étape (temps entre blocs, octets par bloc, durée, marge d'espace libre). Écrivez les produits intermédiaires sur un brouillon avant de choisir la réponse : blocs par jour, blocs par an, taille par an, puis marge.

Exercice de sécurité — Ce que délègue un client léger

Une start-up de Bafoussam publie un portefeuille mobile « léger ». Son code récupère le solde ainsi, vu depuis la console de test :

GET /balance?address=ADRESSE_FICTIVE        (fournisseur unique, adresse en dur)
-> 200 OK   {"balance": 25000}

L'application affiche ce chiffre en gros, avec la mention « Vérifié par la blockchain ». Aucun en-tête de bloc n'est téléchargé, aucune preuve n'est demandée : le fournisseur est le seul interlocuteur, et son adresse est écrite en dur dans l'application. Un jour, le fournisseur est piraté et renvoie 900000 pour toute adresse. Des utilisateurs croient avoir reçu un paiement et livrent des marchandises.

Votre tâche : identifier ce qui a réellement été délégué, ce que l'application affirmait à tort, et la correction minimale qui rend l'affirmation vraie. Répondez à la question d'application affichée sous cet exercice. La bonne réponse distingue ce qu'une preuve de Merkle valide contre un en-tête protège et ce qu'elle ne protège pas.

Questionnaire de l'atelier

Huit questions tirées d'une réserve plus large, seuil de réussite 70 %. Il s'ouvre quand tous les points de contrôle du laboratoire sont réussis. Vous pouvez le repasser : le tirage change.

Un compte certifié est nécessaire

Les activités notées enregistrent des résultats à votre nom et servent de base à un titre. Elles exigent donc un dossier certifiant complet et un consentement en vigueur. Remplir le dossier ne vérifie pas votre identité ; le Secrétariat peut ensuite la vérifier (badge « Vérifié »).

Laboratoire autonome (hors du site)

Non noté en ligne : à réaliser sur votre machine et à publier sur votre dépôt Git.

Dimensionner un nœud RPC public pour une application régionale

À faire sur votre machine, hors du site, sans publier de rapport sur un réseau réel dont vous ne maîtrisez pas les chiffres.

  1. Choisissez un réseau de test public dont la documentation officielle décrit comment lancer un nœud complet (voir le registre documentaire de l'Académie). Lancez-le avec Docker en mode complet, puis, si le client le permet, en mode allégé ou à l'état élagué. Notez pour chacun : place disque après une heure, mémoire utilisée, et durée pour atteindre la hauteur courante.
  2. Mesurez pendant 24 heures le volume réseau entrant et sortant avec les compteurs de l'interface (par exemple ip -s link sous Linux). Comparez avec le calcul de la deuxième leçon.
  3. Écrivez une note de dimensionnement d'une page pour une application imaginaire de 5 000 utilisateurs : nombre de nœuds derrière un répartiteur de charge, type (complet ou archive) et pourquoi, disque, mémoire, bande passante mensuelle, et une section « hypothèses de confiance » (qui d'autre peut vous faire croire quelque chose de faux).
  4. Chaque chiffre doit porter sa source : mesuré par vous, ou tiré de la documentation officielle (avec la page). Ne reprenez aucun chiffre d'un tweet ou d'un tableau de bord.

Critère de réussite : un pair refait votre calcul avec vos hypothèses et retrouve vos totaux à 10 % près.

À retenir

  • Un rôle se définit par ce qu'il garde et ce qu'il vérifie lui-même : nœud complet, archive, client léger et validateur diffèrent sur ces deux axes.
  • On choisit un nœud à partir du besoin (qui supporte l'erreur ? faut-il l'historique ? quel volume ?), puis on écrit l'hypothèse de confiance acceptée.
  • Taille d'archive = blocs par an × octets conservés par bloc, plus une marge d'espace libre ; les hypothèses se mesurent, elles ne se copient pas.
  • Un client léger vérifie des preuves contre un en-tête, mais délègue l'en-tête de départ et l'honnêteté du quorum ; sans preuve, il délègue tout.
  • Un validateur devrait vérifier avant de signer ; la même clé sur deux machines peut produire une double signature sanctionnable.

Idées fausses courantes

  • Idée reçue : Si mon application interroge un nœud, elle ne fait confiance à personne.

    En réalité : Elle fait confiance à ce nœud, sauf si elle vérifie une preuve contre un en-tête fiable, ou si le nœud est le sien et vérifie lui-même les règles.

  • Idée reçue : Un nœud d'archive est plus sûr ou plus « vrai » qu'un nœud complet.

    En réalité : Les deux vérifient les mêmes règles ; l'archive garde simplement l'état passé, ce qui coûte plus de disque.

  • Idée reçue : Lancer un nœud complet fait de moi un validateur et me rapporte des récompenses.

    En réalité : Un validateur vote avec une clé de validation et, en preuve d'enjeu, un enjeu déposé ; un nœud complet seul ne vote pas.

Glossaire

Nœud complet
Nœud qui télécharge les blocs, rejoue les transactions et vérifie lui-même toutes les règles du protocole.
Nœud d'archive
Nœud complet qui conserve aussi les états passés, et peut donc répondre sur n'importe quel bloc ancien.
Client léger
Programme qui ne garde que des en-têtes de blocs et vérifie des preuves de Merkle fournies par un nœud complet.
Validateur
Participant qui propose et vote des blocs avec une clé de signature ; il devrait d'abord vérifier ce qu'il signe.
Élagage (pruning)
Suppression volontaire des états anciens pour économiser du disque, sans changer les règles vérifiées.
Nœud sentinelle (sentry)
Nœud public placé devant un validateur, qui parle au réseau à sa place pour cacher et protéger ce dernier.