đŸ‡«đŸ‡· Architecture de Shelley : un entretien avec Duncan Coutts

Une conversation au coin du feu avec Duncan Coutts, l’architecte technique en chef de Cardano, sur Haskell et la livraison de Shelley

le 7 avril 2020, par Eric Czuleger, Rédacteur en chef
texte original ici : ici
6 minutes de lecture
traduction : @JGA2020

Duncan Coutts a Ă©tĂ© un guide important sur le chemin du rĂ©seau principal de Cardano Shelley. Les supporters de longue date d’IOHK sont sans doute familiers avec ses cheveux longs, sa barbe et son penchant Ă  boire du thĂ© lorsqu’il discute de dĂ©centralisation devant un tableau blanc. Il a rĂ©cemment accordĂ© une interview pour discuter du prochain reboot de Byron, du testnet Haskell Shelley et des conclusions du cycle de dĂ©veloppement prĂ©-Shelley. M.Coutts, qui travaille avec IOHK depuis 2016, a une grande richesse de connaissances, qui lui viennent de son travail avec le langage de programmation Haskell depuis prĂšs de 20 ans, et de son aide Ă  la crĂ©ation de la sociĂ©tĂ© de conseil Well-Typed.

Quel est votre rîle au sein d’IOHK ?

Je suis l’architecte technique en chef du projet Cardano et je suis principalement responsable de la conception et de la mise en Ɠuvre du nƓud. Cela signifie que je collabore avec les Ă©quipes qui travaillent sur le consensus, le registre, la mise en rĂ©seau et d’autres choses encore. En bout de ligne, je m’efforce de rassembler tout le monde autour d’une mĂȘme rĂ©alisation, aprĂšs discussion avec les chefs d’équipes. La conception de Cardano est le fruit du travail commun de nombreux individus travaillant ensemble.

Qu’est-ce que le langage de programmation Haskell apporte à Cardano ?

Haskell est un facilitateur. Il nous permet de suivre plus facilement l’approche que nous pensons ĂȘtre la bonne, qui est guidĂ©e par la science informatique. Nous savons comment faire les choses correctement ; l’informatique nous dit comment. Il nous suffit de choisir les techniques appropriĂ©es pour y parvenir. Haskell nous facilite la tĂąche.
Il convient parfaitement Ă  Cardano parce qu’il est adaptĂ© pour des systĂšmes trĂšs fiables, basĂ©s sur des protocoles, ce qui est vital pour une blockchaine. Haskell nous aide Ă  trouver des moyens systĂ©matiques d’éviter les erreurs. Fondamentalement, c’est une meilleure souriciĂšre.

Vous travaillez avec Haskell depuis longtemps. Comment percevez-vous l’évolution du paysage de la programmation fonctionnelle ?

Les gens la prennent maintenant au sĂ©rieux. Quand j’ai commencĂ© Ă  faire mes Ă©tudes en 1999, je me suis dit que Haskell Ă©tait formidable. D’autres Ă©tudiants pensaient : « Wow, c’est totalement inutilisable. Comment vas-tu trouver un job plus tard ? ».

À l’époque, la programmation fonctionnelle Ă©tait une curiositĂ© acadĂ©mique. Il n’y avait pas de code prĂ©-construit et ce n’était pas lisible par une machine, ce qui signifie qu’Haskell Ă©tait inutilisable pour un grand nombre de personnes. Il n’y avait pas d’outils, de gammes de bibliothĂšques, ou d’expĂ©rience. Cela a changĂ© au fil des ans : l’outillage s’est amĂ©liorĂ©, les bibliothĂšques se sont amĂ©liorĂ©es. IOHK a aidĂ© Ă  dĂ©velopper l’infrastructure pour construire et distribuer le code open-source de Haskell et le nombre de bibliothĂšques a explosĂ©. Cela, combinĂ© avec plus d’enseignement et un changement progressif d’attitude dans l’industrie, signifie que les gens prennent cela plus au sĂ©rieux maintenant. Haskell n’a pas tellement changĂ©, contrairement Ă  l’industrie qui nous entoure.

Quel est le plus grand changement du point de vue de l’industrie ?

Il y a deux choses. La premiĂšre est que les attitudes changent, bien que lentement. Les gens changent leurs opinions sur ce qu’ils considĂšrent comme un choix de langage judicieux. Auparavant, tout devait ĂȘtre en C ou en Java ou Ă©ventuellement en Python, mais les bonnes idĂ©es finissent par progresser, mĂȘme si cela prend beaucoup de temps. Vous pouvez faire beaucoup de progrĂšs en reconnaissant simplement qu’une bonne idĂ©e est une bonne idĂ©e. Le courant dominant reprend les dĂ©veloppements importants, mĂȘme si cela prend 10 ou 15 ans. L’industrie n’a pas encore adoptĂ© la programmation fonctionnelle en bloc, mais les programmeurs individuels ont repris diverses idĂ©es. Cela donne Ă  Haskell une apparence moins radicale qu’auparavant.

Si vous regardez un langage comme Rust, il a certains des systĂšmes de type intelligent de Haskell, bien qu’il n’ait pas l’idĂ©e de programmation fonctionnelle. MĂȘme Java et C++ ont des idĂ©es de programmation fonctionnelle de nos jours, donc Haskell n’est plus aussi Ă©loignĂ© du courant de pensĂ©e dominant qu’il l’était auparavant.

Le deuxiĂšme changement majeur a Ă©tĂ© la performance, qui s’amĂ©liore considĂ©rablement. Nous sommes rĂ©cemment devenus compĂ©titifs par rapport Ă  Java en termes de performances. Cela fait dire aux gens : “Wow, Haskell est super rapide”, mais c’est parce qu’ils le comparent Ă  Python et PHP plutĂŽt qu’à C. C’est donc une autre façon de dire que Haskell s’est lĂ©gĂšrement amĂ©liorĂ©, mais l’environnement industriel qui l’entoure a aussi Ă©voluĂ©.

Vous avez été fortement impliqué dans le reboot Byron qui a été lancé la semaine derniÚre. Pourquoi ce travail était-il important ?

Le reboot Byron est l’aboutissement de plus de 18 mois de travail acharnĂ© de la part de plusieurs Ă©quipes de dĂ©veloppement d’IOHK, et constitue une rĂ©vision complĂšte de l’infrastructure du nƓud avec un code entiĂšrement nouveau. Le reboot introduit une conception extensible et modulaire au sein du nƓud lui-mĂȘme, en sĂ©parant le registre, le consensus et les composants de rĂ©seau, ainsi que des amĂ©liorations et de nouvelles fonctionnalitĂ©s dans le backend du portefeuille et dans l’explorateur Cardano.

Pour les utilisateurs de Daedalus, le reboot Byron nous fera passer Ă  une cadence de mise Ă  jour rĂ©guliĂšre [voir notre rĂ©cent article Ă  propos de Daedalus Flight pour en savoir plus], aprĂšs laquelle ils devraient constater que Daedalus est plus rapide, plus fiable et utilise moins de mĂ©moire. Beaucoup de problĂšmes que les utilisateurs ont rencontrĂ©s avec Daedalus dans le passĂ© Ă©taient dus au nƓud sous-jacent, plutĂŽt qu’à Daedalus lui-mĂȘme. Le reboot de Byron contribuera grandement Ă  amĂ©liorer les choses, et les utilisateurs devraient voir Daedalus se synchroniser et restaurer les portefeuilles en quelques minutes, mĂȘme en tĂ©lĂ©chargeant la chaĂźne complĂšte de Cardano.

En tant qu’architecte en chef, votre travail consiste à jeter les bases de l’avenir de Cardano. Sur quoi avez-vous mis l’accent pour y parvenir ?

L’aspect le plus important en termes de flexibilitĂ© pour l’avenir est de garder les diffĂ©rentes fonctions sĂ©parĂ©es. L’une des grandes amĂ©liorations du reboot Byron est que les rĂšgles du registre seront totalement indĂ©pendantes de la mise en Ɠuvre du consensus ; cette modularitĂ© signifie que les rĂšgles du registre sont des fonctions mathĂ©matiques parfaitement propres, ce qui est un aspect essentiel de la programmation fonctionnelle.

Par consĂ©quent, tout est plus facile Ă  tester, Ă  ajuster et Ă  modifier, aujourd’hui comme dans le futur. L’algorithme de consensus n’est pas empĂȘtrĂ© dans les dĂ©tails des rĂšgles du registre, de sorte que nous pouvons modifier les rĂšgles du registre sans changer l’implĂ©mentation du consensus. Cela rend l’intĂ©gration de Plutus et des fonctionnalitĂ©s de smart contracts beaucoup plus facile et sera Ă©galement utile Ă  l’avenir lorsque nous ajouterons des fonctionnalitĂ©s de trĂ©sorerie et de gouvernance.

La mise en Ɠuvre du consensus elle-mĂȘme a Ă©galement Ă©tĂ© paramĂ©trĂ©e de maniĂšre Ă  ce que nous puissions passer du protocole de consensus Ouroboros Classic au BFT puis au Praos, ce qui offre Ă©galement une certaine flexibilitĂ© pour les futures versions du protocole qui n’ont pas encore Ă©tĂ© dĂ©veloppĂ©es.

Shelley est un grand pas vers l’avenir de Cardano, mais quelle est l’importance de compiler Haskell en JavaScript et WebAssembly ?

Nous sommes intĂ©ressĂ©s par la compilation en JavaScript ou WebAssembly Ă  cause de Plutus. Nous voulons avoir des contrats Plutus ou des applications Plutus qui peuvent ĂȘtre distribuĂ©s aux utilisateurs, ce qui inclut des interfaces personnalisĂ©es et une conception adaptĂ©e Ă  l’utilisateur, plutĂŽt que sur un serveur. La compilation en JavaScript nous permet de le faire ; vous pouvez compiler le code Plutus une fois et le distribuer aux utilisateurs sur diffĂ©rentes plateformes.

Merci Ă  Duncan Coutts pour le temps qu’il nous a consacrĂ©. En tant qu’architecte technique en chef, il est une pierre angulaire du projet Cardano et a jouĂ© un rĂŽle fondamental dans le succĂšs continu de la plateforme. Pour d’autres interviews avec l’équipe, restez connectĂ©s Ă  nos chaĂźnes sociales et au blog de l’IOHK.

1 Like