IoTeX Mainnet v1.2 — Web3.js pour les outils Ethereum sur IoTeX et mises à niveau des nœuds et de la base de données

Au cours du premier trimestre 2021, nous avons assisté à une avalanche d’annonces de la part d’IoTeX, notamment de nouvelles recherches, de nouveaux partenariats et des initiatives pour l’écosystème. Mais ce n’est que la partie émergée de ce que l’équipe principale d’IoTeX a accompli. En coulisses, nous avons poursuivi un développement intensif pour améliorer le « cœur » du réseau, iotex-core, le protocole blockchain exécuté par tous les délégués et nœuds complets, qui donne vie à l’ensemble du réseau IoTeX.
Dans cet article, nous présentons les fonctionnalités et outils incroyables intégrés à notre très attendue version de code Mainnet v1.2, officiellement publiée le 30 avril. Les délégués IoTeX auront jusqu’au 24 mai pour mettre à niveau leurs nœuds, après quoi Mainnet v1.2 sera officiellement activé !
Wrapper Web3.js pour les outils Ethereum sur IoTeX
IoTeX est une blockchain compatible EVM qui prend en charge les contrats intelligents Solidity, ce qui permet de porter facilement les DApps Ethereum vers IoTeX. Pour faciliter encore davantage la création ou l’extension de produits vers la plateforme IoTeX par les développeurs Ethereum, nous présentons Babel, un wrapper d’API de nœud Ethereum qui permet aux utilisateurs et développeurs IoTeX d’exploiter le riche écosystème d’outils Ethereum sur IoTeX. Cela signifie que des outils et services comme MetaMask, Remix, Truffle, Graph, et bien d’autres peuvent fonctionner avec IoTeX simplement en les pointant vers un endpoint Babel !
Web3.js est un ensemble de bibliothèques qui vous permet d’interagir avec un nœud Ethereum local ou distant via HTTP, IPC ou WebSocket. Restez à l’écoute pour notre documentation détaillée sur la configuration de Web3.js afin de développer des DApps avec des outils Ethereum sur le réseau IoTeX.
Mises à niveau de la gestion de la base de données blockchain
La base de données des nœuds complets iotex-core approche désormais les 60 Go et devrait continuer à croître avec l’augmentation rapide de l’activité des appareils et des DApps sur le réseau. IoTeX s’engage à rendre son code blockchain aussi efficace que possible afin que chacun puisse se permettre d’exploiter un nœud complet, voire un nœud délégué producteur de blocs, sans avoir à dépenser des sommes exorbitantes en matériel et en stockage. Mainnet v1.2 prolongera notre engagement en faveur d’une participation ouverte grâce à diverses mises à niveau de la gestion de la base de données blockchain.
Plusieurs fichiers de base de données
Depuis le début de ce trimestre, l’équipe principale d’IoTeX a consacré beaucoup de temps et d’efforts à rationaliser notre base de données blockchain — avec Mainnet v1.2, iotex-core divisera désormais la base de données en plusieurs fichiers, chacun contenant 1 000 000 de blocs. À long terme, cette division évitera les goulets d’étranglement liés à un unique fichier de base de données massif et ouvrira la voie à une synchronisation incrémentale plus rapide avec le réseau, où un nœud pourra télécharger de manière sélective les fichiers de base de données les plus récents.
Taille réduite des fichiers de base de données
En plus des améliorations de l’architecture de stockage avec plusieurs fichiers de base de données, nous avons refondu le fichier de base de données lui-même en utilisant une approche de stockage des blocs améliorée, avec une bien meilleure compression. Cela devrait permettre d’économiser environ 30 % d’espace de stockage. Synchronisation plus rapide + stockage optimisé = une expérience exceptionnelle pour les opérateurs de nœuds !
Vitesse améliorée des requêtes sur la blockchain
Nous avons également travaillé sur un schéma d’indexation des transactions amélioré dans la base de données. En conséquence, certaines requêtes API, comme la récupération de toutes les transactions d’une adresse dans une plage de blocs donnée, obtiendront désormais une réponse beaucoup plus rapide.

Mises à niveau de la gestion des nœuds et des journaux
Lorsqu’un problème survient dans un logiciel, les journaux peuvent vous sauver. Mais explorer les journaux d’un nœud blockchain (surtout pour un réseau rapide comme IoTeX, avec un bloc finalisé instantanément toutes les 5 secondes) peut être compliqué et chronophage. Extraire les données nécessaires pour comprendre un problème peut même s’avérer impossible, simplement en raison de la taille des journaux. Mainnet v1.2 résout ce problème.
Le format des journaux des nœuds prendra en charge ELK
Nous allons faciliter plus que jamais la vie des opérateurs de nœuds grâce à des améliorations du format des journaux, en les rendant notamment compatibles avec la stack ELK! Vous pourrez ainsi récupérer les journaux de votre nœud grâce à l’agent « Beats » installé sur celui-ci, puis les envoyer vers les populaires serveurs Elasticsearch + Kibana pour les analyser, et créer des visualisations pour la surveillance des nœuds, le dépannage, l’analyse de sécurité et bien plus encore. Cerise sur le gâteau, ELK est entièrement open source, ce qui offre une grande flexibilité pour le déployer et le gérer.

Fini les nœuds « zombies »
Certains d’entre vous, en particulier les délégués, ont peut-être remarqué que leur nœud n’arrivait plus à se synchroniser avec la blockchain après une perte de connexion réseau, même brève. Pour les nœuds dépourvus d’un système de surveillance robuste, cela peut laisser le nœud dans un état « zombie » : il fonctionne, mais ne parvient pas à se synchroniser avec la blockchain, même une fois la connexion rétablie. C’est particulièrement dangereux pour les délégués, car le nœud peut cesser de produire des blocs.
Pour éviter ce problème potentiel, nous avons amélioré le code d’iotex-core afin que les nœuds puissent désormais détecter ce type d’événement et se reconnecter au réseau p2p immédiatement après le rétablissement de la connexion Internet. Les nœuds pourront ainsi se resynchroniser immédiatement avec la blockchain, ce qui réduit considérablement le risque de pannes du réseau.
Et ensuite ?
Nous sommes ravis de donner vie à Mainnet v1.2 et de faire passer le réseau IoTeX au niveau supérieur. Depuis notre Mainnet v1.1 en août 2020, l’équipe IoTeX a travaillé avec assiduité pendant des mois sur la prochaine version Mainnet v1.2. En plus de Mainnet v1.2, ceux qui suivent notre activité sur GitHub ont également pu constater des améliorations constantes et significatives dans nos dépôts ioPay, iotexscan, Pebble Tracker, SDK et staking — IoTeX tourne véritablement à plein régime !
Le code de Mainnet v1.2 sera publié le vendredi 30 avril pour que les délégués puissent l’installer sur leurs nœuds. S’agissant d’une version de code avec hard fork, les délégués auront jusqu’au 24 mai pour mettre à niveau leurs nœuds — suivez le Twitter IoTeX Developer pour plus d’informations !
Dans une prochaine version du code, IoTeX Mainnet prendra en charge la nouvelle version v0.6.x de l’EVM, qui offre une multitude de nouvelles capacités aux développeurs, notamment des « mots-clés » obligatoires pour rendre le code plus explicite et sécurisé, des améliorations de la sémantique et de la syntaxe du code, la construction try/catch pour la gestion des exceptions, la conversion explicite d’une adresse en adresse payable avec l’instruction payable(x), push() pour les tableaux de stockage dynamiques, et bien plus encore.

À propos d’IoTeX
Fondée en tant que plateforme open source en 2017, IoTeX construit l’ Internet of Trusted Things**, un écosystème ouvert où tous les « objets » — humains, machines, entreprises et DApps — peuvent interagir en toute confiance et confidentialité. Soutenue par une équipe mondiale de plus de 30 chercheurs et ingénieurs de premier plan, IoTeX combine blockchain, matériel sécurisé et informatique confidentielle pour permettre la nouvelle génération d’appareils, de réseaux et d’économies IoT. IoTeX dynamisera la future économie décentralisée en « connectant le monde physique, bloc par bloc ».**
En savoir plus : Site web | Twitter | Telegram | Medium | Reddit