WEB3 : comment gérer des agneaux sous acide

Aug 30, 2026 min read

Il y a un service que j’ai construit et fait tourner pendant deux ans, et dont le nom résume assez bien le rapport que j’entretenais avec le sujet : lambsonacid.nl. Des agneaux sous acide.

La page d’accueil, fond d’écran d’agneaux dans un pré et titre en ombres portées vert, jaune, rouge et bleu, annonçait la couleur :

Welcome to your daily tezos snapshot and datadir dealer-sheep !

Votre dealer d’agneau quotidien. C’était gratuit, c’était public, et pendant deux ans ça a servi à des gens que je n’ai jamais rencontrés.

Je vous raconte, parce que ça dit quelque chose du Web3 qu’on ne lit nulle part.

D’abord, le problème

Une blockchain, du point de vue de celui qui l’exploite, c’est un journal qu’on ne peut pas résumer. Pour avoir un nœud qui fonctionne, il faut rejouer les blocs. Tous. Depuis le premier.

Tezos a démarré en 2018. Faites le calcul : quand quelqu’un veut monter un nœud en 2023, il doit revalider cinq ans d’histoire avant de pouvoir répondre à sa première question. Ça se compte en jours, ça sature un disque, et pendant tout ce temps le nœud ne sert à rien.

Il existe une échappatoire, et c’est l’instantané. Un nœud déjà synchronisé exporte son état à un instant donné. Un nouveau venu importe ce fichier et démarre à ce point-là, avec quelques heures à rattraper au lieu de cinq ans.

Sauf qu’un instantané, il faut bien que quelqu’un le produise. Et le publie. Et le refasse, parce qu’un instantané d’il y a trois semaines vous laisse trois semaines à rattraper.

C’est tout le métier du berger.

Ce que faisait le berger

Le principe tenait en une boucle. Des nœuds tournaient en permanence sur plusieurs réseaux Tezos, chacun synchronisé et à jour. Toutes les douze heures, un programme exportait l’état de chacun, empaquetait le fichier, le poussait dans un espace de stockage public et régénérait la page web qui listait ce qui était disponible.

Le programme fait 1 810 lignes de Go. C’est moi qui l’ai écrit, et il fait tout : lire la configuration, engendrer un docker-compose et une configuration Prometheus, importer les instantanés au démarrage, lancer les conteneurs, exporter à l’heure dite, téléverser, et refaire le HTML.

Deux formats étaient proposés, parce que tout le monde n’a pas les mêmes besoins. Le mode full, qui garde toute l’histoire des blocs. Le mode rolling, qui ne garde qu’une fenêtre glissante et pèse beaucoup moins lourd. Pas de mode archive : à ce niveau-là, la taille devient un problème d’hébergeur, pas un problème d’utilisateur.

Rien de tout ça n’est de la magie blockchain. C’est de l’exploitation classique : des conteneurs, du stockage objet, un ordonnanceur, de la supervision. Ce qui change, c’est les contraintes.

Trois contraintes qu’on n’a nulle part ailleurs

La première : la liste des réseaux ne m’appartenait pas. Elle vivait dans un fichier maintenu par le projet, que mon infrastructure allait lire. Un nouveau réseau de test apparaît pour valider une proposition de protocole, il faut un nœud. Le protocole est adopté, le réseau meurt, il faut tout retirer. Je ne décidais pas de la liste, je la suivais.

Et parmi ces réseaux, il y avait Weeklynet, qui est recréé de zéro toutes les semaines. Un réseau hebdomadaire, ça veut dire une infrastructure hebdomadaire : nouveau nœud, nouvelles données, ancien état bon à jeter, chaque semaine, indéfiniment. Vous avez déjà eu une application dont l’environnement complet devait être détruit et reconstruit tous les sept jours, sans intervention ?

La deuxième : on ne restaure pas depuis une sauvegarde. C’est le renversement qui m’a le plus marqué. En informatique ordinaire, vos données sont la vérité et vous les protégez. Ici, la vérité est sur le réseau, et ce que j’avais sur disque n’en était qu’une projection. Si je perdais tout, je ne perdais rien d’irremplaçable — je perdais du temps. Beaucoup de temps, mais rien d’unique.

Ça change complètement la façon de concevoir. On ne protège pas la donnée, on protège le délai pour la reconstituer. Et c’est précisément le produit que vendait Lambs on Acid : pas de la donnée, du temps.

La troisième : le produit périme. Un instantané est frais douze heures. Passé ce délai il fonctionne encore, il coûte juste plus cher à l’utilisateur. C’est une contrainte rare : la valeur de ce que je publiais décroissait à vue d’œil, ce qui interdisait toute panne longue et rendait le service indéfendable sans automatisation complète.

L’architecture, telle qu’elle était vraiment

Version 1, écrite entre avril et juin 2022. Une image de machine construite avec Packer, une infrastructure décrite en Terraform, des instances chez un hébergeur américain, des conteneurs orchestrés par un docker-compose que le programme Go engendrait lui-même à partir de la configuration, une supervision Prometheus et Grafana, un serveur web devant, et un espace de stockage objet pour publier.

En janvier 2023, un commit dit simplement run on dedicated : on est passé sur une machine dédiée. C’est ce qui arrive quand on découvre le prix réel du stockage et du transfert sortant quand des inconnus téléchargent des fichiers volumineux toute la journée.

Le paradoxe, puisqu’il faut en parler

Un nom de domaine néerlandais. Des nœuds chez un hébergeur américain. Un espace de stockage dans l’Ohio. Le tout pour distribuer l’état d’un réseau décentralisé.

Je ne vais pas faire semblant de découvrir l’ironie. Mais je ne vais pas non plus jouer le procureur, parce que la conclusion facile est fausse.

La décentralisation est une propriété du protocole. N’importe qui pouvait ignorer mon service, monter son nœud et rejouer cinq ans de blocs tout seul : c’est exactement ce qui rend le réseau décentralisé, et personne ne pouvait m’empêcher de le faire ni empêcher les autres de s’en passer. Ce que je fournissais, c’était un raccourci — et un raccourci, par nature, part de quelque part et appartient à quelqu’un.

Le vrai enseignement est celui-là, et je l’ai réutilisé depuis dans l’article sur la souveraineté : on confond en permanence la propriété du protocole et la propriété de l’infrastructure. Un protocole peut être parfaitement décentralisé pendant que tous les raccourcis pratiques, ceux que les gens utilisent réellement, tiennent sur trois hébergeurs et quelques bénévoles.

La version 2, celle qui n’a pas eu le temps

En juin 2024, j’ai tout repris. Kubernetes cette fois, un cluster managé chez un autre fournisseur, un pod par réseau, des disques de cent gigaoctets, et surtout un mécanisme dont je suis encore assez content : un gabarit Terraform engendré une fois par réseau à partir de la liste officielle.

Autrement dit, la contrainte numéro un — je ne décide pas de la liste des réseaux — était devenue une entrée du système au lieu d’être une corvée manuelle. Le réseau apparaît dans la liste, le fichier Terraform s’écrit, le pod existe. Le réseau disparaît, tout se retire.

C’est la bonne réponse. Elle est arrivée en juin 2024.

Le dernier commit est daté du 8 juillet 2024. Le site de la version 2 n’a jamais eu de contenu : dans le dépôt, il reste le thème d’exemple, avec le faux latin d’origine et le titre My New Hugo Site.

En conclusion

Je viens d’aller voir. lambsonacid.nl renvoie une erreur 403. L’espace de stockage aussi.

Et la dernière version de la page que j’ai retrouvée dans le dépôt, celle qui a dû rester en ligne un moment, dit ceci :

Lambsonacid is under maintenance at this time ! We’re coming back soon !

Il n’est jamais revenu.

Ce n’est ni un drame ni une injustice. C’est le sort ordinaire d’un service gratuit qui tenait sur une seule personne, et cette personne est partie. J’ai écrit ailleurs qu’une équipe plateforme qui devient indispensable a raté son travail, et ailleurs encore que la personne indispensable est en réalité une personne coincée.

Sur ce coup-là, l’indispensable, c’était moi. Cinq cent trente-cinq commits sur cinq cent trente-six. Je n’ai pas transmis, je n’ai pas rendu le truc reprenable, et j’ai laissé un site qui promet de revenir bientôt.

C’est facile à voir chez les autres et beaucoup plus difficile à voir chez soi. Écrire ce billet en fouillant mes propres dépôts m’a coûté un peu, je l’avoue.

Alors si vous faites tourner quelque chose d’utile tout seul, en marge, parce que ça rend service et que ça vous amuse : très bien, continuez, c’est souvent le meilleur du métier. Mais posez-vous la question maintenant, pas dans deux ans. Qui d’autre peut le relancer ? Et qu’est-ce qui reste écrit quand vous fermez la porte ?

Le berger est parti. Les agneaux aussi.

-|