Pipelining est l’une des principales améliorations touchant la performance qui seront déployées en 2022. Voici comment ça fonctionne et pourquoi c’est important.
Le terme « Pipelining » pourrait vous faire penser à une procédure de rénovation qu’un plombier pourrait employer. D’une certaine manière, ce n’est pas très loin de la vérité. Le pipelining est, en fait, une évolution de la ” plomberie ” de Cardano. Il s’agit d’un élément clé de notre plan de performance pour cette année, l’une des séries d’étapes couvrant une approche méthodique pour augmenter les capacités de Cardano au fur à mesure que l’écosystème se développe.
La performance et le débit sont des considérations cruciales pour toute blockchain, si l’on veut maintenir la croissance et la compétitivité. Alors que Cardano entre dans la phase de développement de Basho, IOHK veut se concentrer et répondre aux besoins croissants de l’écosystème. En d’autres termes, il faut s’assurer que le protocole sous-jacent – Ouroboros Praos – fonctionne suffisamment rapidement pour l’ensemble des applications décentralisées qui sont actuellement déployées ou qui s’apprêtent à être lancées sur Cardano.
Cardano continuera d’être optimisé de manière régulière et chaque étape pourra être soigneusement et méthodiquement mesurée pour évaluer la blockchain Cardano en vue d’une croissance future. Les mises à jour introduites par la publication du nœud 1.33.0 début janvier ont donné une marge de manœuvre supplémentaire pour modifier certains paramètres du réseau, notamment la taille des blocs et l’utilisation de la mémoire. Ces ajustements ont eu une incidence directe sur la façon dont Cardano gère le trafic réseau et IOHK continue de surveiller de près la performances du réseau.
Monitorer les performances du réseau dans le monde réel sera essentielle tout au long de ce processus. Après chaque mise à jour, Une évaluation des performances est produite sur au moins une époque (5 jours) avant de procéder à de nouveaux ajustements. Bien que la conception et le déploiement du système aient fait l’objet de recherches et de travaux d’ingénierie approfondis, une architecture de réseau décentralisée doit être adaptée aux comportements et à l’utilisation des utilisateurs dans le monde réel.
Introduction au pipelining
Le pipelining – ou plus précisément, le pipelining de diffusion – est une amélioration de la couche de consensus qui facilite la propagation plus rapide des blocs. Il permet des gains encore plus importants en termes de marge de manœuvre, ce qui permettra d’accroître encore les performances et la compétitivité de Cardano.
Pour comprendre comment cette technique atteint l’objectif visé, il faut se rappeler comment les blocs se propagent actuellement.
Actuellement, un bloc passe par six étapes lorsqu’il se déplace dans la blockchain chaîne :
- Transmission de l’en-tête de bloc
- Validation de l’en-tête de bloc
- Demande et transmission du corps de bloc
- Validation du corps de bloc et extension de la chaîne locale
- Transmission de l’en-tête de bloc aux nœuds en aval
- Transmission du corps du bloc aux nœuds en aval
Le parcours d’un bloc est très sérialisé. Toutes les étapes se déroulent dans la même séquence à chaque fois, à chaque nœud. Compte tenu du nombre de nœuds et de la croissance constante du nombre de blocs, la transmission des blocs prend un temps considérable.
Le pipelining par diffusion superpose certaines de ces étapes pour qu’elles se déroulent simultanément. Cela permet de gagner du temps et d’augmenter le débit.
Le gain de temps offert par cette technique permettra de disposer d’une marge de manœuvre encore plus grande pour faire évoluer Cardano, notamment en apportant des modifications :
- La taille des blocs – plus le bloc est grand, plus il peut contenir de transactions et des contrats intelligents
- Les limites de la mémoire Plutus – augmenter la quantité de mémoire disponible pour l’exécution d’un contrat intelligent Plutus
- Limites de l’unité centrale Plutus – davantage de ressources de calcul peuvent être allouées pour qu’un contrat intelligent s’exécute plus efficacement.
Mise en œuvre du pipelining
L’un des principes de conception du pipelining de diffusion était de parvenir à une propagation plus rapide des blocs tout en évitant les modifications ” destructives ” (fork) de la chaîne. Il faut absulement éviter de toucher aux protocoles, primitives ou interactions déjà présents dans Cardano, car les nœuds s’appuient sur ces mécanismes établis. Les mises à jour doivent être 100% compatible, donc au lieu de changer la façon dont les choses fonctionnent actuellement, il faut ajouter un nouveau mini-protocole dont le rôle est de pré-notifier les entités abonnées lorsqu’un nouveau bloc souhaitable est vu, avant la validation complète.
Le changement clé introduit par le pipelining est la possibilité de pré-notifier les pairs et de leur donner un bloc avant qu’il ne soit validé, ce qui permet aux acteurs sur le réseau (en aval) de pré-rechercher le corps du nouveau bloc. Cela permet de gagner beaucoup de temps car cela réduira considérablement le temps nécessaire à la validation d’un bloc à travers les multiples étapes.
En conclusion
Pipelining n’est qu’un des piliers de la phase de développement de Basho pour cette année. La combinaison de tous ces changements mettra Cardano dans une position où la blockchain sera plus rapide que ses concurrents et elle sera considérée comme une plateforme hautement compétitive pour la finance décentralisée (DeFi) en 2022.
Les principaux points à retenir sont :
- Compte tenu du volume des nœuds et du nombre toujours croissant de blocs, la transmission des blocs peut prendre un temps considérable.
- Le pipelining par diffusion accélère la propagation des blocs en donnant aux nœuds la possibilité de pré-notifier leurs pairs en aval d’un bloc entrant, ce qui permet au pair de pré-valider le nouveau corps de bloc.
- Cela permet de gagner du temps qui peut être utilisé pour transmettre des blocs plus importants ou exécuter des contrats intelligents Plutus qui pourraient nécessiter plus de ressources informatiques en raison de leur taille, etc.
- Le pipelining peut être déployé avec une version régulière du nœud, il ne nécessite pas de mise à jour (hard fork) du protocole.