NOUVEAU : Helius acquiert Light Protocol
découvrez comment utiliser Surfpool
Blog/Développement

Présentation de Surfpool : une alternative au Devnet de Solana

Cofondateur, txtxLudo Galabru sur XLudo Galabru sur LinkedIn
Cofondateur, txtxMicaiah Reid sur XMicaiah Reid sur LinkedIn
10 min de lecture

Dans cet article, nous mettons en lumière Surfpool, un projet du Helius Startup Launchpad qui a remporté le premier prix du Radar Hackathon de Colosseum et fait déjà parler de lui dans l’écosystème des développeurs Solana. 

Nous commencerons par examiner Localnet, Devnet et Mainnet — leurs rôles, leurs points forts et leurs limites — avant de nous intéresser à Surfnet et à l’Infrastructure as Code, puis de découvrir comment ils offrent aux développeurs travaillant sur Solana un niveau inédit de rapidité, de sécurité et de confiance.

Qu’est-ce que Surfpool ?

Surfpool remplace directement les environnements de test Localnet et a été spécialement conçu pour offrir la meilleure expérience possible aux développeurs qui créent des applications sur Solana. Il leur permet de simuler localement des programmes Solana à l’aide de comptes Mainnet récupérés juste à temps.

Surfpool intègre également de manière fluide l’Infrastructure as Code (IaC) aux projets basés sur Anchor ou Pinocchio, afin de permettre des déploiements reproductibles, auditables et sécurisés sur n’importe quel réseau Solana, privé ou public.

Avant de comprendre comment Surfpool améliore l’expérience de développement sur Solana, il est essentiel d’examiner l’écosystème réseau avec lequel les développeurs travaillent aujourd’hui. 

Solana possède plusieurs clusters — Localnet, Devnet et Mainnet — qui remplissent chacun une fonction différente dans le cycle de développement. Bien qu’essentiels, ces environnements imposent aussi des compromis qui affectent la vitesse, la fiabilité et le niveau de confiance lors de la mise en production du code.

Localnet

Localnet désigne une instance locale de la blockchain Solana, généralement lancée avec la commande solana-test-validator. Il s’agit essentiellement d’une blockchain privée exécutée sur votre machine, sans latence réseau et avec un contrôle total sur l’environnement.

Popularisé par son intégration étroite avec le framework Anchor, Localnet reproduit avec une grande fidélité l’exécution du runtime de Solana, ce qui le rend idéal pour les itérations rapides et le débogage. Les développeurs l’utilisent pour simuler des transactions, valider la logique des programmes, corriger les bugs, réinitialiser l’état et itérer.

Les Localnets sont aussi couramment intégrés aux pipelines d’intégration continue (CI). Ils permettent aux équipes d’exécuter des suites de tests automatisés à chaque commit afin de vérifier que les modifications ne perturbent pas le comportement existant. Cela aide à préserver la qualité du code et à détecter rapidement les régressions.

Cependant, cet isolement constitue aussi sa principale limite. 

Localnet fonctionne en vase clos : il ne dispose ni de comptes réels, ni d’un accès aux données de Mainnet, ni d’interactions avec les protocoles actifs de l’écosystème.

Il est donc parfait pour les simulations isolées, mais insuffisant pour tester la composabilité ou effectuer une validation de bout en bout dans des conditions réalistes.

Solana Devnet

Devnet est un réseau Solana public exploité par la Solana Foundation et quelques validateurs gérés par la communauté. Il reproduit l’architecture et le comportement d’exécution de Mainnet, mais sans risques économiques.

Les jetons sur Devnet n’ont aucune valeur réelle. Pour en obtenir, les développeurs utilisent des faucets, des endpoints publics qui distribuent de petites quantités de jetons de test à des fins de développement. 

Ces faucets sont généralement soumis à des limites de débit, et chaque jeton possède souvent son propre faucet avec des règles différentes (par exemple, le faucet Solana de Helius, le faucet USDC exploité par Circle, etc.), ce qui rend la création d’un panier de jetons fastidieuse et chronophage.

Devnet sert d’environnement de préproduction public et partagé. Les développeurs l’utilisent pour simuler des interactions entre programmes, tester le comportement côté client dans un environnement actif et préparer les lancements sur Mainnet. Il est pratique pour travailler avec des intégrations tierces telles que des oracles, des DEX ou des programmes de jetons indisponibles sur Localnet.

Comme les endpoints RPC de Devnet sont accessibles au public, Devnet est également couramment utilisé pour développer et déboguer les interfaces d’applications. 

De nombreuses équipes s’appuient aussi sur Devnet pour leurs environnements de test internes. Les protocoles de plus grande envergure (par exemple Pyth) créent parfois des déploiements « sandbox » de leurs applications sur Devnet afin de faciliter les tests d’intégration d’autres équipes.

Il est important de garder à l’esprit que chaque équipe définit sa propre stratégie de déploiement sur Devnet. Contrairement à Mainnet, où les protocoles sont généralement audités, stables et à jour, les déploiements sur Devnet peuvent être obsolètes, incomplets ou mal configurés.

La composabilité est donc limitée.

Il existe bien sûr des variantes. Certaines équipes gèrent leurs propres environnements Devnet internes pour la préproduction et les tests d’intégration, tandis que d’autres exploitent des Devnets publics pour accompagner les développeurs tiers et leurs partenaires. Ces environnements personnalisés offrent souvent davantage de contrôle, de stabilité ou d’options d’accès adaptées que le Devnet Solana partagé.

Solana Mainnet-beta

Mainnet est le réseau réel : il traite chaque seconde des milliers de transactions potentiellement hostiles, les jetons y ont une valeur réelle et chaque erreur peut coûter cher. Contrairement à Devnet ou Localnet, un déploiement sur Mainnet exige une préparation rigoureuse, des pratiques de sécurité strictes et une grande confiance dans votre code.

Sur le plan opérationnel, Mainnet change tout. 

Les paires de clés de déploiement, souvent conservées dans des multisigs ou des portefeuilles matériels, doivent être rigoureusement sécurisées. Le moindre problème dans votre processus de déploiement peut avoir de graves conséquences. Vous êtes désormais confronté aux conditions réelles du réseau, notamment à un trafic imprévisible, à une latence réelle et aux interactions avec des utilisateurs et des actifs réels.

Mais Mainnet offre aussi tous les avantages d’une composabilité totale et d’une intégration avec chaque protocole important. C’est sur Mainnet que votre programme fait ses preuves, sous une pression réelle et à pleine échelle.

Dans les faits, la plupart des développeurs que nous avons rencontrés se heurtent rapidement aux limites de composabilité de Devnet. Pour avancer plus vite ou accéder à des données exactes, ils commencent souvent à itérer directement sur Mainnet, ce qui implique davantage de risques, des cycles d’itération plus longs et une charge opérationnelle accrue. Devnet ne parvient pas à établir une véritable passerelle entre les deux.

Présentation des Surfnets

Surfnet vous offre les avantages d’une approche locale propres aux Localnets, tout en garantissant que les transactions puissent accéder à l’état de Mainnet sans synchroniser de nœud.

C’est la réponse de Surfpool aux limites des réseaux Solana traditionnels : un environnement spécialement conçu pour les développeurs qui comble l’écart entre Localnet et Mainnet.

Surfpool récupère à la demande les données de comptes en temps réel depuis n’importe quel RPC de votre choix, tout en isolant et en suivant localement l’état de votre programme. Vous bénéficiez ainsi d’un contrôle total, d’itérations plus rapides et d’un environnement de simulation fidèle.

Grâce à cette architecture, Surfnet se comporte comme un réseau forké à la demande : il copie l’état lors de la lecture et enregistre les modifications localement. Comme Localnet, il démarre instantanément et s’exécute nettement plus vite. Les instances Surfnet sont légères et peuvent fonctionner sur un appareil aussi abordable qu’un Raspberry Pi.

En respectant le contrat RPC canonique, Surfpool est de fait compatible avec les portefeuilles, les explorateurs et les outils CLI qui utilisent ces endpoints.

Méthodes RPC de Surfnet

Pour améliorer encore l’expérience des développeurs Solana, Surfnet propose un ensemble de méthodes RPC appelées cheatcodes. Elles vous permettent de contourner les règles du réseau pour itérer plus rapidement et mieux contrôler les simulations. Elles comprennent :

  • surfnet_setAccount : Injectez des données de compte arbitraires dans l’état du réseau.
  • surfnet_setTokenAccount : Créez instantanément des comptes de jetons avec des soldes et des métadonnées personnalisés.
  • surfnet_setMintAccount : Définissez ou remplacez les configurations de mint, notamment l’offre, le nombre de décimales et les autorités.

Ces cheatcodes agissent comme des super-pouvoirs pour le développement local. Ils permettent de créer des scénarios qui exigeraient autrement des recherches fastidieuses, une configuration manuelle et des scripts complexes.

Associés aux données de Mainnet, les cheatcodes offrent aux développeurs une puissance sans précédent. Leur réseau local accède à tout le contexte réel, tout en leur permettant de modifier les règles à volonté pour créer des simulations riches, contrôlées et extrêmement réalistes.

Reproduire sur un Localnet cette configuration en apparence simple et directe prendrait généralement plusieurs jours.

Étude de cas d’un cheatcode : The Heist

Pour montrer ce dont les cheatcodes de Surfpool sont capables, nous avons créé un faucet portant le nom de code The Heist.

Pourquoi ce nom ? Parce que l’expérience donne l’impression de braquer une banque, sans friction, sans risque et avec un contrôle total. Approvisionnez instantanément n’importe quel compte avec n’importe quel jeton : SOL, USDC ou des SPL personnalisés. Aucune limite de débit, aucune attente, aucun service tiers. Une seule commande suffit pour disposer de liquidités.

Les faucets ont toujours été une source de frustration pour les développeurs : ils sont lents, peu fiables et dispersés dans tout l’écosystème. Avec The Heist, nous avons complètement changé la donne. Il est rapide, local et intégré à votre environnement Surfnet.

Cela n’est possible que grâce à la conception de Solana. Le programme de jetons précompilé et partagé garantit une structure de stockage cohérente pour tous les jetons, ce qui rend viable ce type de faucet universel. Ce serait impossible sur les plateformes où les implémentations de jetons varient considérablement.

The Heist n’est pas qu’un outil de développement : il montre tout ce que des simulations rapides et épurées peuvent rendre possible.

Infrastructure crypto as Code (IaC)

L’exécution de simulations puissantes n’est qu’une partie de l’équation. Surfpool introduit également l’Infrastructure as Code dans Solana, pour apporter reproductibilité, automatisation et sécurité à chaque déploiement, avec une faible charge supplémentaire pour les développeurs.

L’Infrastructure crypto as Code (IaC) est un sujet qui mériterait facilement un article à part entière. Au fil des années, nous avons développé une expertise approfondie dans ce domaine en travaillant directement avec des protocoles sophistiqués tels que Pyth, Wormhole Core, Circle CCTP, Bitcoin Ordinals et bien d’autres.

À un niveau général, l’infrastructure crypto se compose généralement de trois grandes catégories de composants :

  1. Infrastructure onchain
  2. Infrastructure de signature
  3. Infrastructure offchain

Infrastructure onchain

Elle comprend les déploiements et les mises à niveau de programmes, ainsi que les migrations d’état. Dans un système IaC bien conçu, les smart contracts sont déployés au moyen de processus reproductibles et auditables, qui garantissent l’intégrité, le contrôle des versions et la traçabilité.

Infrastructure de signature

La plupart des failles de sécurité sont liées à la gestion des clés. Plutôt que de s’appuyer sur des paires de clés locales non sécurisées, les systèmes conçus pour la production utilisent des portefeuilles matériels, la cryptographie à seuil ou des configurations multisig afin de signer les transactions de manière sûre et responsable. 

Dans un système IaC bien conçu, l’infrastructure de signature doit être modulaire et configurable. Vous pouvez ainsi remplacer une clé privée codée en dur par un processus multisig sophistiqué en modifiant simplement quelques lignes de configuration.

Infrastructure offchain

Elle comprend tout ce qui entoure et prend en charge vos smart contracts : indexeurs, outils de surveillance de l’état, sentinelles de portefeuilles, scripts d’automatisation et bien plus encore. 

Ces composants sont souvent étroitement liés aux événements onchain et doivent être traités comme du code : testables localement, portables et entièrement déployables.

Avantages de l’Infrastructure crypto as Code

Un système IaC bien conçu doit pouvoir être analysé statiquement. Vous ne devriez pas avoir à exécuter le moindre code pour comprendre ce qu’il fera.

Vous devriez pouvoir générer à l’avance un plan d’exécution complet, précisant les programmes et les signataires impliqués, les ressources concernées et le coût total.

Aucun DSL basé sur JavaScript ni script shell opaque : uniquement du code déclaratif et clair. Le système doit être composable, facile à maintenir et rapide à prendre en main.

Avec un tel système, passer de Localnet à Mainnet devrait être aussi simple que de remplacer l’infrastructure de signature, en passant d’une paire de clés locale stockée sur disque à un signataire Squad.

Il nous a fallu plusieurs mois pour concevoir et développer la stack que nous appelons Web3 Runbooks : affiner le langage, simplifier son utilisation et rendre le runtime sécurisé et composable. 

Avec Surfpool, nous voulons rendre cette technologie Runbook encore plus accessible et conviviale, tout en repoussant davantage les limites pour garantir que les développeurs Solana bénéficient des meilleures bases possibles.

En combinant les Surfnets et l’Infrastructure crypto as Code dans Surfpool, nous créons ce qui est, selon nous, le meilleur outil de développement du Web3. Les développeurs accèdent à une stack privilégiant une approche locale et peuvent évoluer progressivement vers Mainnet à mesure que leur protocole gagne en maturité, simplement en ajustant leur configuration IaC.

Pour boucler la boucle et revenir aux réseaux, il convient de noter que les Surfnets peuvent être définis et gérés via l’Infrastructure as Code. Les développeurs peuvent ainsi lancer facilement des réseaux éphémères, préconfigurés avec des centaines de comptes déjà approvisionnés avec les paniers de jetons appropriés (SOL, USDC, etc.) nécessaires pour interagir avec leurs protocoles.

Ressources et documentation

Nous vous recommandons de regarder cet épisode du Solana Changelog, présenté par Jacob Creech, responsable des relations avec les développeurs à la Solana Foundation, pour découvrir Surfpool en profondeur pendant 45 minutes.

Nous lançons également une série de courtes captures vidéo afin d’aider les développeurs à prendre en main Surfpool grâce à des sessions pratiques et faciles à suivre.

Notre documentation complète est disponible sur docs.surfpool.run.

Conclusion

Le chemin est encore long, mais l’avenir est prometteur. Les développeurs manifestent déjà un vif intérêt pour Surfpool, et leurs retours renforcent notre conviction que nous créons quelque chose d’essentiel.

Cela dit, nous ne faisons qu’effleurer les possibilités. 

Notre mission consiste à rendre les simulations de Mainnet impossibles à distinguer de la réalité. 

Aujourd’hui, Surfpool ne prend pas encore en compte certains aspects critiques, tels que la contention et la priorisation des transactions, ou les comportements hostiles comme le MEV et les attaques sandwich. 

La suite nous enthousiasme. Surfpool transforme déjà la manière de développer sur Solana, et nous sommes déterminés à aller encore plus loin.

Abonnez-vous à Helius

Suivez les dernières actualités du développement sur Solana et recevez une notification à chaque publication

Image agrandie