Plutus: Scripts de Plutus
Cardano utilise des scripts pour valider les actions. Ces scripts, qui sont des morceaux de code, mettent en Ćuvre des fonctions pures avec des sorties Vrai ou Faux. La validation des scripts consiste Ă invoquer lâinterprĂ©teur de script pour exĂ©cuter un script donnĂ© avec les arguments appropriĂ©s.
Que sont les scripts?
Un script est un programme qui décide si la transaction qui dépense la sortie est autorisée ou non à le faire. Un tel script est appelé script validateur, car il valide si la dépense est autorisée.
Un simple script de validation vĂ©rifierait si la transaction de dĂ©pense a Ă©tĂ© signĂ©e par une clĂ© particuliĂšre - cela reproduirait exactement le comportement des sorties simples de pay-to-pubkey. Cependant, avec un peu dâextension prudente, nous pouvons utiliser des scripts pour exprimer une logique utile sur la chaĂźne.
Le modÚle EUTXO fonctionne de la maniÚre suivante : les scripts de validation reçoivent trois arguments:
- Datum: câest un morceau de donnĂ©es attachĂ© Ă la sortie que le script verrouille (strictement, encore une fois, seul le hash est prĂ©sent). Il est gĂ©nĂ©ralement utilisĂ© pour transporter lâĂ©tat.
- Redeemer: Il sâagit dâun Ă©lĂ©ment de donnĂ©es attachĂ© Ă lâentrĂ©e des dĂ©penses. Elle est gĂ©nĂ©ralement utilisĂ©e pour fournir une entrĂ©e au script de la part du dĂ©pensier.
- Context: il sâagit dâun Ă©lĂ©ment de donnĂ©es qui reprĂ©sente des informations sur la transaction de dĂ©pense. Il est utilisĂ© pour faire des affirmations sur la façon dont la sortie est envoyĂ©e (comme âBob lâa signĂ©â).
Exemple intuitif
Par exemple, un enfant veut monter sur une grande roue, mais avant de monter, il doit ĂȘtre plus haut que le panneau de sĂ©curitĂ©.
Nous pourrions exprimer cette idée en pseudo-code, par exemple:
Dans cet exemple, les Ă©lĂ©ments suivants sâappliquent:
- Le datum est lâinformation sur cette transaction: michael.height.
- Le context est lâĂ©tat du monde, Ă ce point, soit: ferrisWheel.minimumHeight.
- Le reedemer, est lâaction Ă effectuer: getOnFerrisWheel()
Le script validateur est la fonction qui utilise toutes ces informations : isTallEnough
Exemple Defi
Examinons maintenant un exemple du domaine DeFi.
Nous pourrions mettre en Ćuvre un Ă©change atomique, comme suit:
- Le datum contient les clĂ©s des deux parties de lâĂ©change et une description de ce quâelles Ă©changent
- Le redeemer nâest pas utilisĂ©.
- Le context contient une représentation de la transaction.
La logique du script validateur est la suivante : la transaction effectue-t-elle un paiement de la seconde partie Ă la premiĂšre partie, contenant la valeur quâils sont censĂ©s envoyer ? Si câest le cas, alors ils peuvent dĂ©penser cette sortie et lâenvoyer oĂč ils veulent (ou nous pourrions insister pour quâils lâenvoient Ă leur clĂ©, mais nous pourrions tout aussi bien les laisser en faire ce quâils veulent).
Exemples de code
Vous pouvez trouver des exemples réels de code de scripts validateurs sur chaque contrat intelligent, par exemple:
- Plutus transaction tutorial: Sur ce validateur, il réussit toujours.
- Plutus Hello World: Sur ce validateur, si la donnĂ©e est Ă©gale Ă âHelloâ, elle est convertie en un nombre entier.
- Plutus Pioneers English Auction: Sur cette ligne, le validateur sâassure que la nouvelle offre (donnĂ©e) est supĂ©rieure Ă la prĂ©cĂ©dente, jusquâĂ ce que le temps soit Ă©coulĂ©.
ParamÚtres du modÚle de coûts
Le modÚle de coût des scripts Plutus Core comporte un certain nombre de paramÚtres, qui font partie des paramÚtres du protocole Cardano. Les développeurs peuvent régler ces paramÚtres individuellement.
Pour plus de détails, voir ce qui suit:
- Une liste des paramÚtres du modÚle de coût et leur brÚve description
- Sources pour en savoir plus sur la signification des paramĂštres
Vous trouverez une copie officielle de ce document ici :
https://docs.cardano.org/plutus/Plutus-validator-scripts
Plus de traductions de Cardano Ă : Home