Plutus: Outils de Plutus

 

Le hard fork d'Alonzo apporte des capacités de base en matière de contrats intelligents au ledger Cardano en établissant l'infrastructure et en ajoutant des outils pour le développement de contrats intelligents fonctionnels à l'aide de Plutus. Cela signifie que les utilisateurs, les développeurs et les organisations peuvent désormais créer en toute sécurité des applications décentralisées (DApps) basées sur des solutions de contrats intelligents.

Il existe différents outils que les développeurs peuvent utiliser pour évaluer et déployer des contrats intelligents sur Cardano. Nous examinons ci-dessous ces outils, leurs principales caractéristiques et indiquons les sources exactes pour les utiliser.

 

Plutus Playground

Le Plutus Playground fournit un environnement pour écrire et tester des contrats intelligents avant qu'ils ne soient publiés sur la blockchain Cardano. Il s'agit d'un environnement léger, basé sur le Web, pour le développement exploratoire de Plutus. En plus de fournir un simulateur en ligne pour écrire et exécuter des contrats intelligents, le Plutus Playground permet aux développeurs d'accéder à des contrats intelligents populaires déjà écrits. Des Tutoriels sont disponibles dans le Plutus Playground pour vous aider à démarrer.

Le Plutus Playground est accessible via un navigateur web et il n'est pas nécessaire d'installer de logiciel. L'interface est divisée en trois sections:

  • éditeur
  • simulateur
  • transactions

Le simulateur montre comment un contrat se comportera sur la blockchain Cardano. Un aspect important est qu'il peut servir d'outil de formation pour les personnes qui n'ont pas de compétences avancées en matière de développement, car il démontre les principes de fonctionnement. Les utilisateurs peuvent définir et modifier les porte-monnaies qui interagissent avec un contrat, ainsi que les actions qui affectent le résultat. Les résultats peuvent ensuite être évalués pour voir ce qui se passe sur la blockchain et comment les transactions se déroulent. Pour plus d'informations, regardez le  tutoriel de compilation et de test de l'application Plutus ou visitez le dépôt GitHub de Plutus.

 

Plutus Application Backend

The Plutus Application Backend (PAB) fournit les composants et l'environnement permettant aux développeurs d'interagir avec les contrats intelligents afin qu'ils puissent créer et tester des DApps, avant de les déployer dans un environnement de production réel. Tout comme le Plutus Playground, il s'agit d'un environnement de type "bac à sable" dans lequel les développeurs peuvent tester les fonctionnalités des DApp avant leur déploiement complet sur Cardano.

Le PAB évite aux développeurs de devoir créer leur propre infrastructure à partir de rien (y compris l'index de la chaîne, etc.), ce qui réduit le temps de développement et les ressources nécessaires. Il permet aux développeurs de simuler le comportement d'une application sur la chaîne pour effectuer des tests préalables et éliminer les erreurs, afin de garantir une transition sans faille pour le lancement.

Il s'agit d'un service backend hors chaîne pour gérer et traiter les exigences de l'instance d'application tout au long de son cycle de vie. Cela inclut l'interaction avec les clients externes (tels que les frontends de porte-monnaies) et agit comme un intermédiaire entre les applications Plutus, le node, le backend de porte-monnaie et les utilisateurs finaux. Une telle interaction est rendue possible par les commandes PAB et les composants simulés qui permettent des simulations pratiques et l'intégration des DApps.

Le PAB est une bibliothèque Haskell unique qui facilite l'écriture de cette infrastructure hors chaîne et des scripts sur chaîne. Elle aide à construire les transactions UTXO pour les chemins de lecture et d'écriture en obtenant des informations de la chaîne, en réagissant aux événements qui se produisent et en construisant les transactions qui exécutent les scripts Plutus réels.

L'objectif du PAB est de:

  • fournir un environnement normalisé dans lequel les applications Plutus s'exécutent
  • assurer une gestion disciplinée de l'état
  • présenter des interfaces découvrables aux clients externes
  • suivre les informations sur la chaîne pour l'utilisation des contrats intelligents
  • permettre aux développeurs de travailler dans un environnement émulé ou non émulé
  • traiter des demandes telles que l'exécution d'instances de contrat, la transmission des entrées de l'utilisateur à ces instances et la notification à ces instances des événements de changement d'état du grand livre

Le PAB peut passer d'un environnement émulé à un environnement non émulé (réseau réel) de manière transparente. Cela facilite l'écriture de toutes sortes de tests différents - tests unitaires, tests d'intégration, tests basés sur les propriétés, etc. Le PAB permet aux DApps de communiquer facilement avec lui car le backend peut recevoir et délivrer des messages. Ainsi, la DApp peut envoyer des requêtes habituelles aux points de terminaison que le PAB a exposés, et qui correspondent aux actions et aux opérations qu'un contrat intelligent particulier est capable de gérer.

Les applications déployées à l'aide des bibliothèques du cadre peuvent s'exécuter sur le PAB, qui fournit un support d'exécution pour l'accès à la blockchain afin de poursuivre les opérations de contrats intelligents déclenchant des transactions basées sur le modèle EUTXO. En outre, le PAB offre des fonctionnalités de persistance, de journalisation et de surveillance.

Le diagramme suivant donne un aperçu de l'architecture du PAB:

Deux modèles de déploiement sont envisagés pour le PAB une fois qu'il sera disponible:

  • hébergé - cette option sera prise en charge lors de la version initiale du PAB. Dans ce scénario, le fournisseur / développeur de DApp héberge une instance du PAB avec l'index de la chaîne et un node Alonzo. Le code hors chaîne de l'application Plutus est exécuté sur l'infrastructure du fournisseur de DApp.
  • dans le navigateur - cette option sera disponible plus tard, après la version initiale.

En plus du PAB lui-même, les composants suivants sont nécessaires:

  • Index de chaîne - l'index de chaîne est une base de données rassemblant les données des transactions Cardano. Il utilise le protocole de synchronisation de la chaîne du node Cardano et doit être co-localisé avec un node Cardano. L'index de chaîne est un composant en lecture seule pour le PAB. Plusieurs instances du PAB peuvent donc partager une seule instance de l'index de chaîne. Toutes les requêtes de l'index de chaîne sont servies par une API HTTP.
  • Node Alonzo — le PAB s'abonne aux mises à jour de l'état du ledger depuis le node, en utilisant un protocole de socket.

Le PAB est un autre outil puissant de Cardano qui rend les DApps plus simples, plus sûres et plus rentables à développer. En fournissant des informations provenant de sources canoniques sous une forme utilisable, il soulage les développeurs de nombreuses tâches de routine.

Nous partagerons les liens en temps voulu lorsqu'ils seront disponibles.

 

Estimateur de frais de Plutus

L'estimateur de frais Plutus a été développé par les experts en performance d'IOG comme un outil interne pour l'étalonnage et la comparaison des prix. Il utilise des informations provenant de transactions Plutus réelles pour prédire les frais qui seront facturés pour une transaction. L'estimateur peut être utilisé pour calculer les frais des transactions réelles (par exemple, pour déterminer les frais qui seront facturés si les paramètres du réseau changent), et aussi pour estimer les frais des transactions de script individuelles ou des DApps complètes avant ou pendant le développement. Il peut être utile pour déterminer l'effet des modifications ou des optimisations de script sur les frais.

Le calcul de frais nécessite trois éléments d'information:

  • La taille totale de la transaction sur la chaîne en octets : une transaction simple, par exemple, est d'environ 300 octets, celle avec les métadonnées est d'environ 650 octets, et les scripts Plutus sont généralement de 4 000 à 8 000 octets (les optimisations futures réduiront ce chiffre).
  • Le nombre d'étapes de calcul (CPU) que le script utilise : chaque étape représente 1 picoseconde de temps d'exécution sur une machine de référence. Les scripts typiques devraient consommer moins de 1 000 000 000 (1 milliseconde).
  • Le nombre d'unités de mémoire que le script utilise : cela représente le nombre d'octets que le script alloue. Les scripts typiques devraient consommer moins de 1 000 000 d'unités de mémoire (1 Mo d'allocation de mémoire).

Pour utiliser un estimateur, un utilisateur doit simplement remplir les informations relatives, qui peuvent être obtenues du compilateur Plutus après avoir construit un script dans celui-ci. Il n'est pas non plus nécessaire d'exécuter un node pour cela, ce qui simplifie considérablement le processus pour les utilisateurs généraux.

 

Vous trouverez une copie officielle de ce document ici :

https://docs.cardano.org/plutus/Plutus-tools

Plus de traductions de Cardano à: https://cardanofortheworld.com/fr-fr