15/11/2021 5 Minutes read

Retour d’expérience sur le Hackathon Tezos.

Résumé de ma première participation à un hackathon sur la blockchain Tezos pendant mon stage.

Hackathon Tezos: "NFT Me, You Can DAO It" qui s'est déroulé du 21/07/21 au 21/08/21.

Première participation à un hackathon.

Durant mon stage, au sein du pôle Blockchain d’ekino Paris, j’ai eu le plaisir de participer à un hackathon sur la blockchain Tezos. Le sujet tournait autour des NFTs et des DAOs. Il s’agissait pour moi de mes premiers pas sur la blockchain Tezos et de ma première participation à un hackathon. Nous avons réalisé Hugo, Steven et moi le développement d’une application décentralisée de suivi d’articles de journaux.

Qu’est-ce qu’un NFT ? Qu’est-ce qu’une DAO ?

NFT (Non Fongible Token) ou jeton non fongible en français signifie que deux jetons ne sont pas interchangeables. Ils peuvent avoir des valeurs différentes contrairement à des jetons fongibles. Ainsi un billet de cinq valant tout autre billet de cinq est fongible alors qu’un tableau de Van Gogh ne vaut aucun autre tableau même de Van Gogh dans ce cas il est non fongible.

Parmi les NFT les plus connus il y a le premier Tweet de Jack Dorsey CEO de Twitter qui a été vendu à plus de 2,9 millions de dollars.

Une DAO (Decentralized Autonomous Organization) ou Organisation Décentralisée Autonome est un modèle d’organisation se basant sur les smart contracts. Ces smart contracts dictent les règles de gouvernance et une fois déployés sur la blockchain ils rendent l’organisation autonome.

Aujourd’hui certains protocoles DeFi (finance décentralisée) font voter les mises à jour par leurs utilisateurs qui peuvent ainsi agir sur le protocole, parmi eux, AAVE, Compound ou encore Uniswap.

Ces deux atouts de la blockchain sont permis grâce à l’apparition de smart contracts sur la blockchain. Si vous ne savez ce qu’est un smart contract, je vous redirige vers l’article qui explique ce que c’est ici.

Comment se déroule un hackathon ?

Un hackathon est une compétition de développement soutenue par un organisme public ou privé dans le but de mettre en compétition des groupes de développeurs. En temps normal, ce type d’événement se déroule sur un week-end du vendredi soir au dimanche soir dans une grande salle pour accueillir l’ensemble des participants.

Le hackathon commence par une présentation du contexte et des sujets. Le temps de développement s’étend de la fin de la présentation jusqu’au dimanche soir. Pendant un week-end les équipes travaillent nuit et jour sur leur projet. Les sujets peuvent être très variés allant du domaine du design à celui de la cybersécurité, il y en a pour tous les goûts. L’événement peut aussi comprendre des moments de partages entre équipes et des conférences. Bien évidemment il est conclu par une cérémonie de remise de récompenses.

Comment s’est déroulée notre aventure ?

Pour notre part, l’hackathon a duré 1 mois et était à 100% en ligne. Il avait lieu du 21 juillet au 21 août 2021 et à l’heure où je rédige cet article nous ne connaissons pas le résultat. 

Ce fut une première expérience pour moi, j’ai découvert un aspect plutôt entraînant de la vie de développeur. Participer à un événement communautaire et découvrir une technologie sur une compétition est très intéressant et formateur.

Trouver une idée de projet.

Cette année le sujet était: « TEZOS HACKATHON: NFT ME, YOU CAN DAO IT ».

Avant d’entamer le projet, il nous a fallu trouver une idée. Pour cela, Hugo a repris un POC réalisé sur Ethereum comportant déjà une forme de DAO.

Il nous fallait maintenant trouver comment ajouter les NFTs à ce sujet. Notre idée est alors de créer un NFT pour chaque article. Cela permet de gérer la notion de propriété d’articles, et d’y ajouter un statut.

Concevoir le projet sur papier avant de se lancer sur machine. 

Durant cette partie du projet, nous avons mis en forme sur papier les différents mécanismes de l’application. Le but est de savoir comment va fonctionner notre application et de connaître les fonctions du smart contract à mettre en place. En parallèle, la base du projet a été implémentée (linter, page d’accueil React, licence et ReadMe).

Pour ce qui est de la répartition du travail, n’ayant que peu d’expérience sur la partie smart contract c’est Steven qui s’en est occupé. De mon côté, en me basant sur la mise en forme de base d’Hugo, je me suis occupé de la partie front end et de l’api pour relier notre application à un serveur IPFS pour stocker les données.

Le projet est ambitieux et nous savions que l’objectif n’était pas de le finir d’ici la fin du temps imparti mais il fallait présenter un prototype et ajouter à la présentation la road map. C’est ce que nous avons fait. De plus, il fallait aussi penser aux choix futurs dans les fondements pour ne pas avoir à tout refaire dans un second temps. J’ai pu ainsi toucher du doigt un niveau d’exigence du code plus élevé qu’à mon habitude tout en restant souple pour le hackathon.

Le format hackathon permet de toucher à tout en un temps assez réduit. Des ressources sont mises à dispositions pour aider les débutants et leur permettre de se lancer avec le minimum de connaissances techniques. Durant l’épreuve les équipes ont pu être conviées à un workshop présentant rapidement la blockchain ainsi que le sujet du hackathon et permettant via une séance de question/réponse de débloquer les candidats dans le besoin.

L’objectif est vraiment de créer une communauté qui a à cœur de faire avancer le projet et d’attirer le maximum de participants.

Quel était le rendu attendu ?

Une fois le temps écoulé, il a fallu faire un rendu de notre travail. Nous avons donc réalisé une vidéo de présentation de l’application et partagé notre répertoire GitHub sur lequel nous avions travaillé.

Comment marche l’application ?

Le concept de l’application est de pouvoir connaître l’état de son article et des sources utilisées et ainsi pouvoir agir en conséquence. 

Un journaliste peut publier un article sous la forme d’un NFT en stockant l’url, le titre et les articles sources de son article dans un NFT. Il peut utiliser des articles d’autres journalistes et les ajouter comme sources. Le but de l’application est de permettre à ce journaliste de pouvoir corriger son article si une faute est trouvée et de prévenir tous les journalistes ayant utilisé son article en source. De la même manière, ce journaliste est prévenu dès qu’un de ses articles utilise une source réfutée par l’auteur. Ce système permet ainsi de diffuser le moins possible d’informations erronées et de retirer les articles comportant des erreurs.

Le hackathon étant sur Tezos nous avons utilisé cette blockchain pour réaliser notre application. Pour la partie smart contract nous sommes partie d’une base solide d’un projet source du hackathon rédigé par Claude Barde. Le langage utilisé est le Ligo il est un des langages de smart contracts sur Tezos. Pour la partie application nous avons utilisé du Typescript avec le framework React pour le front-end et Express pour le back-end.

Le back-end permet la gestion du stockage des metadatas. Pour cela, nous stockons les metadata de chaque article dans un serveur IPFS.

La blockchain à un coût de stockage ce qui implique que les smart contracts doivent être les plus légers possibles. Afin de minimiser la taille de chaque NFT nous ne stockons dans le smart contract que le hash IPFS des metadatas.

Pour ce qui est des sources après un petit moment de réflexion nous avons décidé de seulement noter l’id du NFT. L’idée de base était de manipuler des jetons sources entre les journalistes. Cependant techniquement c’est très compliqué à mettre en place.

Pour connaître l’historique des articles, nous ajoutons à la version suivante l’id de la version précédente, il est ainsi plus facile d’échanger les sources lors d’une correction.

Tous ces mécanismes sont illustrés dans la vidéo de présentation du projet ci-dessus à l’aide d’animation.

Conclusion personnelle de ce projet.

Pour conclure, ce projet fut un réel plaisir pour moi, j’y ai beaucoup appris. L’organisation du travail s’est faite naturellement. Steven et moi n’avons eu aucun problème à échanger et avancer ensemble. Participer à la genèse d’un projet, à son développement jusqu’à un rendu dans le temps imparti est très instructif dans ma formation. J’ai aussi pu prendre conscience de la démarche et des étapes à franchir dans la réalisation d’un projet et mettre en application quelques unes de mes connaissances.

Je tiens pour finir à remercier toute l’équipe blockchain, Steven et Hugo pour ce stage et cette opportunité de participer à cet évènement fort enrichissant.

Contact

Vous avez des questions sur la blockchain ou tout simplement envie de discuter ?

Contactez-nous

Lire plus d’articles

  • 5 Minutes read par William Jehanne

    Comment détecter plus facilement les fake news grâce à la blockchain ? Une expérience menée par...

    Lire la suite