Qu’est-ce que Liquidity ?

 

Présentation de Liquidity

 

Après avoir découvert Ethereum et son fonctionnement, nous avons étudié Solidity, son langage de programmation. Nous avons par la suite développé des smart-contracts ainsi que des tokens sur Ethereum. Mais ce n’est pas le seul système qui permet le développement d’applications décentralisées. Si vous naviguez sur Cryptoast, vous devez connaître Tezos ou Neo par exemple. Aujourd’hui je vous présente Liquidity, un langage permettant de développer des smart-contracts sur le réseau Tezos.

 

Liquidity, le Solidity de Tezos

Liquidity n’est pas le langage de programmation officiel pour développer des smart-contracts sur le système Tezos. C’est en effet le langage Michelson qui a été crée par l’équipe de Tezos dans ce but. Mais Michelson est un langage particulier, stack-based, c’est-à-dire qu’un programme va utiliser une pile de données et exécuter les instructions au fur et à mesure pour interagir avec cette pile. C’est un choix voulu par Tezos, qui le différencie d’Ethereum. Cette particularité rend le langage lisible par les développeurs, même après compilation, notamment pour leur permettre de développer leurs propres outils d’analyse ou même leurs propres compilateurs.

Mais alors, comment développer des smart-contracts Tezos lorsqu’on n’a pas du tout l’habitude de ce type de langage, ou qu’on est débutant en programmation ? Une des solutions pourrait être d’utiliser Liquidity comme langage de développement. En effet Liquidity est un langage dit « de haut niveau », parfaitement compatible avec les restrictions de sécurité informatique qu’impose Michelson. Tout ce que vous voulez mettre en place avec Michelson pourra possiblement être développé avec Liquidity. Vous pourrez déployer les smart-contracts développés par Liquidity sur les blockchains Tezos, sur le réseau principal mais également sur Alphanet ou Zeronet.

La comparaison entre Solidity et Liquidity s’arrête à la comparaison simple entre Tezos et Ethereum. Les deux langages n’ont en commun que la volonté de leurs équipes à simplifier au maximum le développement de smart-contracts. Même s’ils sont tous deux de haut niveau, les syntaxes sont vraiment différentes. Liquidity reste proche de Michelson, possède une syntaxe de type Ocaml, et sera très accessible aux développeurs qui ont déjà travaillé avec ce genre de langage de programmation. Pour les autres, la volonté originale est de rendre le développement de smart-contracts Tezos plus haut niveau qu’en utilisant Michelson. Mais il reste un fossé entre Liquidity et un langage comme Javascript par exemple. Je vous présenterai un autre langage qui pourrait mieux convenir à ces développeurs par la suite.

 

Mais qu’est-ce que Tezos ?

En effet,  avant de s’intéresser de façon plus technique à Liquidity, ou du mode de fonctionnement de la blockchain Tezos, il faut bien comprendre ce qu’est Tezos. Je vous invite à lire le superbe article de Robin sur Tezos. Je ne vais pas présenter toutes les facettes de ce dernier. Mais il est intéressant de se questionner sur les différences entre Tezos et Ethereum qui peuvent être importantes pour nous en tant que développeurs.

D’abord, le consensus que met en place Tezos est beaucoup moins coûteux que celui d’Ethereum à ce jour. Ensuite, le système entier est facilement modifiable de manière interne, contrairement à Ethereum qui doit faire appel à des hard forks pour évoluer. Ceci est un avantage pour les développeurs, car même si elles sont bien réalisées, ces opérations ne sont pas anodines. Avec les frais de transaction moindres, s’ouvre à nous le monde des micro-paiements et de l’automatisation. Arthur Breitman, fondateur de Tezos expliquait à ce propos :

« Il devient possible dans la pratique de passer des contrats pour des sommes se portant à quelques euros, voire même à quelques centimes. On peut aussi imaginer ces contrats dans des machines comme des parkings, des distributeurs de boissons, etc. »

Il expliquait également pourquoi le langage Solidity et l’architecture de la machine virtuelle Ethereum pouvaient être à l’origine de certains piratages. La quantité de compilateurs différents et la mise en place de la compilation des smart-contracts et leurs déploiement sur l’EVM est très particulière. Et cela rend complexe la tâche de retrouver le code exact des contrats déployés, de corriger des erreurs et de comprendre leur comportement. Ce sont des avantages non négligeables lors de la mise en développement de projets d’envergure, comme une application décentralisée. Il est important donc de se focaliser non seulement sur le choix du langage de programmation, mais aussi sur le choix de la proposition de la plateforme sur laquelle le projet sera déployé.

 

S’initier à Liquidity

liquidity

 

Si cet article vous a donné envie de développer des smart-contracts pour la blockchain Tezos, mais vous ne vous sentez pas à l’aise avec Michelson, vous pourriez être tenté d’apprendre Liquidity. Vous pouvez utiliser ce site, qui pourrait vous rappeler Remix. Une fois installé, Liquidity vous permettra de nombreuse différentes actions : la compilation de contrats certes, mais pas que.

Tout d’abord il vous faudra spécifier plusieurs paramètres : l’adresse qui paiera les frais de déploiement, le prix de ces déploiements, le réseau sur lequel vous voulez mettre en place vos contrats…

Une fois ces paramètres déterminés, vous pourrez développer vos premiers contrats. Et vous serez probablement surpris par la forme que possèdent les contrats développés avec Liquidity. On retrouvera certes la déclaration de la version du compilateur que l’on souhaite utiliser, mais également les différentes variables qui nous sont familières. Mais par la suite, on s’éloigne beaucoup du langage de type Javascript dont on a l’habitude avec Solidity.

À ce propos, il faut savoir qu’il existe un autre projet qui tend à faire le lien entre Solidity et Michelson, qui est conçu pour les développeurs Ethereum souhaitant étudier Tezos sans avoir à interagir avec la forme de type Ocaml de ces langages. Il s’agit de Fi, un langage qui ressemble donc beaucoup à Solidity, mais dont le code produit pourra être compilé de façon à être utilisable par le réseau Tezos. Il vous faudra simplement télécharger le compilateur Fi afin de pouvoir par la suite déployer vos contrats intelligents sur le réseau Tezos. Il existe également un module nodeJS disponible pour assurer une meilleure gestion de vos contrats et de leurs compilations/déploiements. En effet ce module permet une plus grande facilité de la gestion des ABI de vos contrats.

Je vous conseille également de vous intéresser à Michelson avant de vous lancer dans un langage plus haut niveau. En effet cela vous permettra d’en apprendre un petit peu plus sur ce qu’il y a sous le capot…


Guillaume

Guillaume est un jeune développeur Blockchain, principalement sur Solidity. Il aime partager ses connaissances sur le sujet et il participe activement au rayonnement des aspects techniques de la blockchain au sein de la communauté crypto.

facebook-cryptoast twitter-soothsayerdataProfil linkedinEnvoyer un mail

 



Poster un Commentaire

avatar