Mises à jour du ParaTime Emerald (février 2022)

Thomas Bouchet
Oasis Foundation — French 🇫🇷
6 min readFeb 16, 2022

Autres traductions de la communauté : Portugais |Russe |Kazakh |

Avertissement : cette publication est une traduction réalisée par un membre de la communauté Oasis Network. Des contrôles minutieux sont effectués pour garantir la rigueur des contenus, néanmoins ces derniers peuvent comporter des erreurs ou des omissions. Oasis Network n’est pas responsable de l’exactitude, de la fiabilité ou de l’actualité des informations traduites. Publication originale en anglais : Emerald ParaTime Updates — February 2022

Emerald, le ParaTime officiel d’Oasis qui est compatible avec l’EVM, a été lancé en novembre 2021. Il a grandement enrichi le réseau Oasis, d’une part en permettant l’intégration facile sur ce dernier des DApps basées sur l’EVM, et d’autre part en hébergeant les premiers projets DeFi en janvier 2022. Ces nouveautés ont suscité un énorme intérêt et par conséquent une explosion de l’utilisation d’Emerald. Afin de suivre le rythme de cette croissance rapide et assurer la continuité et la qualité de l’expérience utilisateur, l’équipe d’Oasis a lancé une succession de mises à niveau.

Depuis sa sortie le 28 janvier dernier sur le Mainnet, la version 6.2.0 d’Emerald fonctionne sans accrocs. Actuellement, cinquante-cinq validateurs du réseau Oasis hébergent un nœud d’Emerald, et ce dernier gère près de 200 000 transactions par jour. Dans ce blog, nous allons revenir plus en détail sur la croissance rapide d’Emerald en janvier et sur la façon dont l’équipe d’Oasis a résolu les problèmes qui ont surgi à la suite de cette croissance.

L’utilisation d’Emerald monte en flèche

Le volume des transactions sur Emerald a rapidement augmenté en janvier suite à son lancement, en passant de quelques dizaines par jour le 5 janvier à plus de 18 000 cinq jours plus tard. Mais c’est le 11 janvier que le ParaTime a connu son premier véritable pic d’utilisation, à plus de 150 000 transactions quotidiennes. Ce pic a coïncidé avec l’intégration du Wormhole Bridge ainsi qu’avec le lancement de YuzuSwap, premier exchange décentralisé sorti sur le réseau Oasis et qui a dépassé les 100 millions de dollars de TVL dans les 12 heures suivant son déploiement.

Le rythme de la croissance s’est poursuivi pour atteindre un pic de 950 000 transactions par jour le 19 janvier, date à laquelle nous avons fixé un prix plancher non nul pour les frais de transaction sur les passerelles web3 hébergées par Oasis. Le nombre de transactions par jour s’est ensuite stabilisé à 200 000 jusqu’à la fin du mois.

Garantir la robustesse et la scalabilité du réseau

Afin de garantir le bon fonctionnement du ParaTime, l’équipe d’Oasis surveille en permanence Emerald et s’assure qu’en cas de problème, des solutions soient rapidement trouvées et mises en place. Ainsi, en réponse à la croissance significative du volume de transactions le 11 janvier, Oasis et les hébergeurs de nœuds du réseau ont immédiatement réagi en augmentant la capacité du hardware des serveurs et en déployant de nouvelles instances. Cette collaboration rapide et efficace entre Oasis et sa communauté a permis aux nœuds du réseau de s’adapter avec succès à la hausse de la demande. Celle-ci atteint actuellement une moyenne de 23 millions de requêtes par jour.

Répondre à la forte demande avec Emerald 6.1.0

Spam des transactions sans frais

Pour permettre aux utilisateurs de commencer à utiliser Emerald sans avoir à payer des frais de transaction, nous avons lancé Emerald sur le Mainnet sans fixer de prix minimum explicite. Cependant, lorsque l’utilisation d’Emerald a commencé à décoller, certains utilisateurs se sont mis à tirer parti de ces frais nuls et ont mis en place des bots qui ont spammé le réseau avec des transactions sans frais. Ils avaient très probablement comme objectif de réaliser des profits en exécutant des ordres de transactions spéculatives sur les exchanges décentralisés.

Confrontés à la recrudescence de cette activité, nous nous sommes efforcés de préserver l’expérience utilisateur des usagers légitimes et humains du réseau. Ainsi, nous avons commencé par augmenter le prix plancher des frais de transaction sur les points de terminaison web3 hébergés par Oasis. Nous avons ensuite déployé une mise à niveau permettant aux opérateurs des nœuds du ParaTime Emerald de définir un prix plancher non nul pour leurs frais de transaction. De ce fait, tous les nœuds participant au Emerald ParaTime worker committee et ayant installé et implémenté la mise à jour étaient en mesure de mettre en place ces nouveaux prix planchers.

Programmation incorrecte & transactions dépassant le seuil maximal de frais du bloc

Alors que l’augmentation de la demande entraînait une hausse mécanique du volume de transactions, nous avons découvert que les limites des frais de transaction n’étaient pas correctement prises en compte pendant la programmation des lots de transactions. Le programmateur des transactions d’Emerald pouvait donc organiser des lots dont les frais dépassaient la limite du bloc, mais sans que les transactions puissent être exécutées. En effet, les limites de frais étaient comparées avec succès avec celles du bloc.

Cela entraînait l’échec de certaines transactions avec des erreurs de type « batch out of gas », par exemple :

Celels-ci avaient pour conséquence de facturer aux utilisateurs les frais alors même que leurs transactions n’avaient pas été exécutées. Comme pour tous les frais de transaction sur le ParaTime Emerald, ils étaient répartis entre les différents nœuds qui étaient dédiés au comité Emerald à ce moment-là.

Face à ces problèmes, la version 6.1.0 d’Emerald a été mise au point. Celle-ci s’est d’abord attaquée au problème du spam des transactions sans frais en permettant aux nœuds Emerald de fixer un prix plancher non nul pour les frais de transaction. Elle a ensuite réglé le bug des frais dépassant ceux du bloc en prenant correctement en compte les limites de frais lors de la programmation des lots.

La mise à jour a commencé à être testée sur le Testnet le 19 janvier et elle a été déployée sur Mainnet le 26 janvier.

Version 6.2.0 d’Emerald : une programmation des transactions améliorée

Après les solutions apportées par la version 6.1.0 d’Emerald, l’équipe s’est concentrée sur un autre problème touchant le programmateur de transactions du ParaTime et qui était dû à la façon dont Ethereum traite le restant des frais n’ayant pas été consommés par la transaction. Dans Ethereum (et donc Emerald, qui est basé sur l’EVM), un utilisateur peut fixer une limite des frais d’une transaction qui soit énorme, par exemple à 5 millions de gas units. Et si la transaction n’en utilise que 100 000, l’utilisateur récupère les frais non dépensés. Cependant, étant donné que le programmateur de transactions d’Emerald ne prenait en compte que la limite de frais requise par une transaction, cela créait une brèche à partir de laquelle une attaque DDoS pouvait être lancée. En effet, dans un tel scénario, un assaillant pouvait s’accaparer de grandes quantités d’espace disponible dans les blocs Emerald en déclarant des limites de frais de transaction exorbitantes tout en en dépensant en réalité que très peu.

Ce problème a pu être résolu en enrichissant le SDK du ParaTime grâce à un nouveau programmateur de transactions qui prend cette fois-ci bien en compte les frais réellement dépensés par ces dernières. Cela permet par ailleurs de faire d’une pierre deux coups en s’assurant qu’Emerald empaquette encore plus efficacement les blocs.

Cette mise à jour du programmateur a été déployée sur le Testnet le 27 janvier, et l’équipe Oasis a lancé Emerald 6.2.0 sur le Mainnet dès le lendemain.

De plus, les versions 6.1.0 et 6.2.0 d’Emerald étaient toutes deux rétrocompatibles, permettant ainsi à Emerald de fonctionner sans interruption pendant que la mise à jour était installée sur les nœuds participants.

La réponse rapide des hébergeurs de nœuds Emerald

Bien que l’annonce de la version 6.2.0 d’Emerald ait eu lieu tard dans la nuit de vendredi à samedi dans les fuseaux horaires d’Asie et d’Europe, les hébergeurs de nœuds ont rapidement réagi pour mettre à jour les versions de leurs nœuds Emerald et Oasis. Ainsi, moins de quatre heures après l’annonce officielle de la version 6.2.0, plus de la moitié des 65 nœuds Emerald avait été mis à jour, et 56 d’entre eux l’ont été en moins de 24 heures.

Nous sommes très reconnaissants envers notre incroyable communauté d’hébergeurs de nœuds aussi dévoués que passionnés établis sur le réseau Oasis !

--

--

Thomas Bouchet
Oasis Foundation — French 🇫🇷

Technical Translation Student (University of Paris) | Oasis Protocol Ambassador