Découvrez Gaster: des analyses open source gratuites pour les contrats intelligents
Les contrats intelligents Ethereum promettent de changer la façon dont nous traitons les données sensibles et l’argent. L’inconvénient est que ce n’est qu’une promesse pour l’instant. La technologie est trop récente pour être approuvée pour les tâches professionnelles quotidiennes. Les contrats intelligents eux-mêmes fonctionnent comme des montres suisses, mais chaque transaction coûte de l’argent au propriétaire du contrat intelligent, les frais de la blockchain Ethereum. Les frais dépendent des caractéristiques et des paramètres d’une transaction.
Pour l’instant, aucun outil ne vous permet d’obtenir de manière simple des données sur les transactions effectuées avec un contrat intelligent. Vous devez collecter toutes les données de transaction manuellement, et ce n’est même pas le pire; vous devez également le décoder vous-même.
À Exyte, nous avons décidé de résoudre ce problème.
Et c’est ainsi que Gaster est apparu.
Dans cet article, nous expliquons comment Gaster fonctionne et comment la communauté blockchain peut bénéficier de cet outil gratuitement.
Gaster vous donne des informations sur la façon dont un contrat intelligent a été utilisé. Il vous donne des données brutes sur les transactions. Par exemple, quelles méthodes ont été appelées, quels étaient leurs paramètres et combien cette transaction a coûté au propriétaire du contrat intelligent. Le propriétaire du contrat intelligent analyse ces données pour savoir:
- quelles méthodes de contrat intelligentes sont utilisées le plus souvent
- quelles méthodes de contrat intelligentes coûtent le plus cher
- quels utilisateurs chargent le contrat intelligent le plus
Gaster rassemble toutes les données nécessaires, les agrège en un seul endroit et vous offre de nombreuses options pour régler vos paramètres de contrat intelligent.
Eh bien, quelqu’un pourrait avoir un outil similaire. Il peut même y en avoir plusieurs, mais ils sont principalement destinés à un usage privé. Il n’y a pas beaucoup de contrats intelligents publics (ouverts) et il n’y a pas beaucoup d’outils publics (gratuits / ouverts) pour l’analyse de contrats intelligents que tout le monde peut utiliser. L’avantage de Gaster est qu’il s’agit d’un outil open source. Il est accessible à tous. Quiconque a un contrat intelligent ou une dApp avec un contrat intelligent et veut savoir combien d’argent il va dépenser pour utiliser un contrat intelligent devrait profiter de Gaster.
Cela peut être lié au fait qu’il n’y avait pas beaucoup de dApps avec des contrats intelligents jusqu’à récemment. Les développeurs DApp et les propriétaires de contrats intelligents n’avaient tout simplement pas pensé qu’ils avaient besoin d’un outil d’analyse pour leurs contrats intelligents. La technologie est encore au stade de développement. Habituellement, les outils open source apparaissent lorsque la technologie est répandue. La technologie des contrats intelligents commence à évoluer maintenant avec 75% de croissance en mars. Nous pensions que c’était le moment de commencer à faire des projets open source pour la communauté.
Il y avait une autre chose sur laquelle nous voulions travailler: la possibilité de revenir à un état précédent du réseau et de configurer cet état du réseau localement. Cette possibilité est nécessaire pour tester et analyser des cas d’utilisation complexes de comportement de contrat intelligent inattendu. Avoir un outil comme celui-ci aiderait Exyte dans certains de nos projets récents. Nous avons donc décidé d’écrire un script qui ferait cela, en transférant votre blockchain locale à un état précédent d’une blockchain publique. En recherchant ce sujet, nous avons découvert que Technologies paritaires développe un outil qui a cette fonctionnalité planifie pour l’un des jalons à venir. Aucun autre problème n’a dû être résolu. Nous nous sommes donc concentrés sur l’analyse des coûts opérationnels.
Je ne peux pas en être certain ici, car, encore une fois, il n’y avait pas d’outils publics pour le faire. Gaster est véritablement un robot et un décodeur. Il suit une certaine logique pour collecter des données sur un contrat intelligent via Etherscan API, en tenant compte des particularités de la façon dont une transaction a été effectuée. Une fois les données collectées, Gaster les décode dans un format lisible par l’homme et enregistre le résultat dans un CVS. Le processus est assez simple, et je pense que si quelqu’un avait besoin d’une analyse de contrat intelligente, il suivrait la même logique.
Tout a commencé avec le développement d’un contrat intelligent pour le mécanisme de preuve de propriété pour une société immobilière. Le but d’un contrat intelligent dans ce cas était de confirmer qu’un utilisateur peut acheter un terrain. Entre autres données, les contrats intelligents y ont transféré le nom de ce terrain. Tant que la blockchain Ethereum est sensible à la quantité de données, la longueur de ce nom a directement influencé les frais de transaction. Nous avons pu découvrir ce fait après avoir regardé les données collectées par Gaster sur ce réseau.
Gaster peut collecter des données de transactions brutes en tenant compte des spécificités de son stockage. Avec une seule commande, il collecte, décode et enregistre toutes ces données dans CSV afin que vous puissiez les utiliser pour d’autres analyses. Gaster collecte les données suivantes:
- adresse de contrat intelligente
- données d’entrée (méthode et ses paramètres)
- qui a appelé le contrat intelligent
- bloc où la transaction a eu lieu
- hachage de transaction
- quantité de gaz dépensé
- prix du gaz
Bien sûr, il y a plusieurs nuances ici. Les transactions blockchain peuvent avoir une structure d’appels hiérarchique, comme si vous utilisez Zeppelin OS (contrat proxy) ou appelez simplement un contrat à l’intérieur d’un autre, de sorte que chaque contrat intelligent comporte à la fois des transactions régulières et des transactions internes associées. Toutes les transactions internes ont leur type en fonction de ce qu’elles font: créer, déléguer l’appel, l’appel statique, etc. Ces transactions doivent être analysées et fusionnées correctement afin de voir l’image complète du fonctionnement du contrat.
Ce n’est pas le sujet de cet exposé, mais plus d’informations sur les types de transactions internes (appel de message) peuvent être trouvées ici, ici, et ici.
Gaster peut créer un rapport Python automatique qui utilise des données CSV brutes et effectue des analyses générales pour montrer comment cela peut fonctionner. Ainsi, en tant que propriétaire du contrat, vous pouvez obtenir des informations utiles sur les fonctions les plus utilisées, les fonctions les plus coûteuses et la façon dont les utilisateurs utilisent votre contrat, ainsi que faire des factures pour elles et bien plus encore, présentées sous forme de graphiques et de tableaux.
Les graphiques ci-dessous générés par Gaster fournissent au propriétaire du contrat des informations utiles, telles que:
Sur la base de ces données, vous pouvez prévoir le coût futur et identifier des seuils pour les changements de coût pour une méthode particulière.
Vous pouvez également utiliser ce graphique pour déterminer la fréquence d’utilisation du contrat intelligent.
Ces données vous permettent de suivre l’utilisation des méthodes et de les comparer avec les données sur le prix du gaz.
Ce graphique vous aide à trouver un meilleur moyen d’ajuster le prix du gaz pour les méthodes à l’avenir.
Nous espérons que vous trouverez Gaster utile pour vos projets basés sur la blockchain. Si vous aimez ce que nous avons fait, nous apprécierions vraiment que vous jouiez Représentant Gaster sur GitHub. Pour l’instant, nous poursuivons notre travail de développement de Gaster.
Si vous avez des questions ou des suggestions, nous serions ravis de vous entendre! Envoyez-nous un message ou nous frapper Twitter, LinkedIn ou Facebook.