Les ressources du développeur Ethereum

 

Ressources du développeur Ethereum

 

Si vous avez déjà développé des applications Ethereum, vous avez peut être parcouru le web en quête d’outils qui pourrait vous simplifier la tâche ou vous aider. Aujourd’hui je vous présente quelques-uns de ces outils, les ressources que personnellement j’utilise lors du développement de projets Ethereum. Si vous avez suivi mes tutoriels pour développer un smart-contract ou créer votre propre token, nous en avons déjà vu certains. J’ai étoffé la liste, notamment dans le domaine des tests automatisés et de la sécurité des smart-contracts. Je vous invite à vous renseigner plus en profondeur si l’un de ces outils vous semble pertinents pour vos projets. En effet ce ne sont que des rapides introductions afin de vous donner envie d’en savoir plus, il existe d’autres alternatives dans chacun des domaines que je présente.

 

 

Solidity

Solidity

Solidity est un langage de programmation créé pour Ethereum. Même si ce n’est pas le seul qui permet de développer des smart-contracts, il est celui qui est le plus utilisé par la communauté des développeurs Ethereum. Orienté objet, il est simple d’apprentissage et de lecture. C’était en effet la volonté derrière la création de Solidity : qu’il soit très accessible pour des développeurs qui ont déjà travaillé avec des langages comme Javascript ou Python. Si vous n’avez jamais eu l’occasion de faire de la programmation informatique, et que vous êtes curieux, pas de panique : Solidity est très accessible. Si vous souhaitez découvrir Solidity, en développant un smart-contract ou votre propre token, vous êtes au bon endroit puisque nous avons des guides à ce sujet ! Vous pouvez également retrouver la documentation Solidity sur leur site web.

 

 

Remix

Remix

Développer un smart-contract en utilisant le langage Solidity nécessite la compilation de ce dernier, avant de pouvoir le déployer sur une blockchain. Mais devoir utiliser un compilateur peut nous décourager, selon le système d’exploitation que l’on utilise, ou le temps et l’envie qu’on a de l’installer. C’est là que Remix intervient puisqu’il nous permet de compiler un smart-contract sur navigateur web. Il nous suffit de nous rendre par la suite sur MyEtherWallet, et de déployer notre contrat avec le code compilé plus tôt. Très utile pour faire un premier smart-contract, ou des contrats simples, mais solution moins pertinente pour des projets d’envergure. Très conseillé pour les débutants donc, surtout ceux qui utilisent Windows.

 

 

logo-truffle

La suite d’outils Truffle

La suite Truffle se résume à être une boite à outil pour le développeur Solidity. Elle permet très facilement de développer un ou plusieurs smart-contracts et les déployer sur une blockchain de test ou une blockchain spécifique. Mais également de travailler avec React, le framework Javascript afin de créer une interface graphique à votre application décentralisée. C’est à mon sens l’outil à utiliser dès lors que l’on a touché les limites de l’expérience que propose Remix.

 

Truffle

Truffle est un outil très complet, qui prend encore plus de sens lorsqu’il est utilisé avec Ganache. De toute manière, l’utilisation de la console de développement de Truffle va faire appelle à ce dernier automatiquement. Truffle nous permet de simplifier plusieurs opérations que l’on réalise régulièrement en tant que développeur Ethereum. En initialisant un projet Truffle, on obtient plusieurs dossiers.

L’un contiendra vos futurs contrats, et renferme déjà celui qui permettra de les déployer dans le futur. Le deuxième accueillera les scripts qui permettent la migration de vos contrats sur la blockchain de votre choix. Le dernier, important même si souvent mal aimé est le dossier de tests. Truffle vous permet en effet de mettre facilement en place des tests unitaires pour vos contrats, opérations plus que nécessaire pour le bon développement d’applications décentralisées. Enfin viendra un fichier de configurations, qui permet notamment d’ajouter des blockchains sur lesquelles déployer les contrats et le compilateur utilisé.

En parlant de compilation, utiliser Truffle pour cette opération est très simple puisqu’un simple truffle compile suffira. De plus, déployer un ou plusieurs contrats avec truffle migrate compilera automatiquement ce ou ces derniers avant de les déployer. Bref, utiliser Truffle c’est se simplifier la vie sur beaucoup d’aspects, et permet de développer des projets d’envergure sur le long terme.

 

Ganache

Une fois développé, un contrat se doit d’être déployé sur une blockchain pour être testé. Cela coûte des tokens, même s’il existe des blockchains de test, ou les tokens sont disponibles librement et gratuitement. Mais cela coûte également du temps, la transaction se doit d’être validée, parfois à plusieurs reprises. Si vous réalisez de nombreuses modifications rapidement, cela peut prendre une grande partie de votre temps de développement. Ganache va résoudre ce problème en vous octroyant votre propre blockchain de test. L’outil vous procure également une dizaine d’adresses, contenant chacune une centaine de tokens Ethereum. Vous avez tout pour déployer rapidement sans vous soucier de ces paramètres. Attention malgré tout : afin de rendre le déploiement plus rapide, cette blockchain n’est absolument pas sécurisée, et uniquement destinée aux tests.

 

Drizzle

Petit dernier de la suite Truffle, Drizzle vous rend service dans un tout autre registre. Vous avez pu développer votre contrat facilement avec Truffle, l’avez déployé rapidement en utilisant Ganache. Vous souhaitez maintenant interagir avec lui, et de façon plus sexy que la console de développement. C’est là que Drizzle intervient, en vous permettant de réaliser facilement une interface graphique pour vos contrats. Enfin facilement, c’est un outil pour une utilisation du framework Javascript React et il vous faudra donc connaître ce dernier. Je vous l’introduis dans la seconde partie de mon tutoriel sur le développement de smart-contract.

Si vous avez déjà réalisé des projets en utilisant React, vous connaissez peut-être Redux, une librairie permettant une meilleure gestion des states des components React. Si vous n’avez pas trop compris ma dernière phrase, je vous conseille d’apprendre React à côté. En tout cas, ce qu’il faut retenir, c’est que Drizzle permet de créer un pont entre la blockchain de votre choix et une application React.

 

 

embark-logo

Embark

Embark est une plateforme de développement d’applications décentralisées. Elle propose de nombreux outils, comme une console de développement qui permet un accès direct à vos contrats, mais également une longue liste de plugins simples d’utilisation. Embark se veut être bien plus qu’un simple regroupement de librairies, en simplifiant notamment le travail de débogage et de mise en place de tests automatisés pour les projets Ethereum. Il faut savoir qu’Embark est complètement compatible avec Ganache CLI, l’un des produits développés par Truffle. Vous pouvez retrouver un guide de démarrage, qui vous permet de créer une première application sur le site d’Embark. Vous pouvez retrouver leurs nombreux plugins, qui pour le moment sont principalement des ponts entre d’autres services existants. Par exemple les plus populaires sont des plugins Remix, Etherscan ou encore Solium.

 

 

web3-logo

Web3

Web3 (ou Web3JS) est une collection de librairies développée pour permettre de facilement interagir avec nos contrats, nos tokens ou une blockchain. Elle propose différents moyens d’établir la connexion, en utilisant des web-sockets, HTTP ou encore une connexion IPC. En vous munissant de données comme le code ABI du smart-contract avec lequel vous voulez interagir, la clé privée du wallet et des adresses des contrats, des tokens. Avec ces informations, vous pouvez faire appel à des méthodes de contrats, gérer les frais de gas. C’est aujourd’hui un des meilleur outils pour la création d’applications décentralisées. En effet il est utilisable tant pour la mise en place d’une interface graphique, mais également en backend, ce qui permettra d’automatiser des transactions, dans le cas d’un casino, ou des récompenses de jeu vidéos.

 

 

mythril-logo

Mythril

Développer des contrats, des tokens, des applications décentralisées c’est une chose. Préserver les données, tokens de ses utilisateurs et de soi-même, c’est bien mieux. L’enjeu de la sécurité informatique est énorme aujourd’hui, et principalement dans l’écosystème Ethereum où tout se base sur des programmes informatiques. Mythril c’est l’outil indispensable à la sécurité de votre projet Solidity. Mythril va exécuter des scans et analyse de votre projet afin de trouver différentes vulnérabilités dans ce dernier. La sécurité de vos contrats est extrêmement importante, que ce soit pour la mise en place d’un wallet ou de mise en place de transactions. Un exemple connu est le cas de Parity : un pirate avait utilisé une faille dans le wallet Parity et avait pu mettre la main sur 150 037 ethers.

 

 

OpenZeppelin-logo

OpenZeppelin

 

Pour développer des smart-contracts comme les tokens, ou autres smart-contracts découlant de standards, rien ne sert de réinventer la roue. Surtout si notre roue est plus carrée que ronde non ? OpenZeppelin, c’est une librairie Solidity qui vous accompagne dans vos créations. Nous avons notamment utilisé plusieurs de leurs contrats dans notre tutoriel dédié à la création d’un token ERC-20 personnalisé. Mais OpenZeppelin ce n’est pas seulement des contrats de tokens, c’est une porte ouverte vers le développement Ethereum. Vous pourrez notamment mettre un place une vente anticipée de vos tokens. Mais également des système de paiement complexes ou des tokens un peu exotique.

En outre, les programmes que propose OpenZeppelin sont optimisés. L’entreprise Zeppelin qui le produit nous assure un minimum de faille de sécurité informatique dans ces derniers. C’est donc une des ressources à privilégier lors de la mise en place de l’architecture d’un projet sur Ethereum. Mais également pour les débutants qui souhaitent découvrir facilement le langage.

 

 

infura-logo

Infura

Infura est un outil facilitant la mise en place d’une infrastructure d’un projet Ethereum. Développé par ConsenSys Labs, Infura est un service utilisé par beaucoup de projets que je vous ai présentés plus haut, comme Truffle, ou Metamask dont je vous parle plus bas. L’outil vous permet notamment de mettre en place une communication RPC (Remote Procedure Call, c’est à dire une communication entre l’utilisateur et un serveur distant) avec la blockchain Ethereum. Vous avez accès à de nombreux réseaux : à la blockchain principale mais également à des blockchains de tests. L’API permet l’obtention de nombreuses informations utiles, allant des wallets présents sur la blockchain aux détails techniques concernant le minage et des blocs en cours. Un excellent outil pour des projets plus complexes, mais déroutant pour les débutants dans la programmation de smart-contracts.

 

 

metamask

Metamask

Travailler avec un wallet, c’est assez facile ; mais quand tester une application requière l’utilisation de plusieurs wallets, sur différentes blockchains, qui interagissent avec des tokens personnalisés, c’est une autre histoire. Metamask simplifie les situations que je viens de décrire. C’est une extension web, qui vous permet d’importer différents wallets, d’en créer d’autres directement et d’interchanger ces derniers en un clic. L’interface est très simple et intuitive, vous permet d’afficher les tokens que vous possédez sur une adresse, même si ce sont des tokens que vous avez vous-même déployé sur la blockchain. C’est un des outils les plus utilisés dans l’écosystème, et pas seulement par des développeurs. Il s’adresse donc à tous les profils, même si je vous déconseille de l’utiliser comme stockage de vos investissements en crypto-monnaie. En effet la sécurité sur votre ordinateur ne se fait qu’avec un simple mot de passe, et une chaîne de caractères pour importer les wallets créés directement sur Metamask sur d’autres systèmes de stockages tels qu’un Ledger ou des logiciels spécialisés.

 

Ropsten

Afin d’éviter de payer les frais de transaction lors des tests de différents contrats Ethereum, il est d’usage d’utiliser des blokchains dites « de test ». Ces blockchains n’ont pas pour objectif de garantir la sécurité que peut proposer des blockchains officielles, mais distribuent gratuitement de quoi payer le gas des transactions. Vous pouvez retrouver le faucet (site distribuant gratuitement des tokens) de Ropsten. Ropsten est la plus connue des blockchains de test Ethereum, mais il y en existes d’autres. Elle est disponible sur Metamask dont je parle plus haut et il est tout à fait possible de l’utiliser avec des outils comme Web3, Truffle ou Infura.

 

Voilà c’est tout pour les ressources principales du développeur Ethereum. Ce n’est pas une liste exhaustive mais elle couvre la plupart des domaines et des étapes de la programmation d’une application décentralisée. Si vous avez des propositions d’autres outils intéressants, je n’hésiterais pas à mettre à jour cet article.


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