Subscribe

Le mainnet IoTeX v1.7 est EN LIGNE !

IoTeX Mainnet v1.7 is Officially Live

Aujourd’hui marque une nouvelle version majeure de la blockchain IoTeX, qui apporte des améliorations significatives au protocole IoTeX. iotex-core 1.7.0 a été publié pour les opérateurs de nœuds le 15 mars et vient d’être activé. [Environ le 24/03/2022 vers 23 h UTC]. Cette version apporte de nombreuses améliorations de l’API qui accéléreront le développement de dApps et le débogage de smart contracts complexes. Les opérateurs de nœuds bénéficieront d’une architecture plus simple du service d’API Ethereum et d’une meilleure gestion des logs. Les performances de la base de données et du réseau ont également augmenté. IoTeX ne cesse de construire, d’affiner et de travailler de manière itérative pour faciliter le développement de dApps et l’intégration de nouveaux utilisateurs. En plus d’une construction de dApps désormais plus simple, la blockchain est plus fiable et plus sûre, avec des performances accrues. Examinons de plus près certains des changements majeurs…

API

Traçage des exécutions de contrats

Les exécutions de contrats sur la blockchain peuvent être complexes à déboguer, surtout lorsqu’elles impliquent des appels à d’autres contrats. L’API blockchain standard d’une plateforme compatible EVM indique généralement seulement aux développeurs si une action a réussi ou a été annulée (revert). Le nouvel appel d’API TraceTransactionStructLogs est l’équivalent du trace_call d’Ethereum et collecte des détails de bas niveau pendant l’exécution d’un appel de contrat unique, offrant aux développeurs des informations utiles sur ce qui s’est passé pendant l’exécution de l’action. Cette API est disponible sur tout nœud IoTeX où le service de passerelle d’API est activé.

API de décodage du stockage des contrats

Cette API permet de décoder les données du stockage d’un smart contract à un emplacement mémoire précis. Elle est fournie sous forme d’appel d’API GRPc natif d’IoTeX (ReadContractStorage) et d’appel d’API JSON Ethereum (eth_getStorageAt).

Valeur des frais de gas dans les résultats de l’API getActions

La valeur des frais de gas réellement dépensés pour une action donnée manquait dans l’objet de réponse lors de la consultation des détails d’une action. Cette valeur est désormais fournie par tous les appels d’API natifs ou Ethereum qui renvoient les détails d’une transaction.

Valeurs d’index dans les reçus de transaction et les logs EVM

Dès l’activation de la 1.7.0, lors de la consultation des reçus de transaction, la valeur transactionIndex ainsi que la valeur logIndex de chaque entrée du tableau des logs EVM sont désormais fournies. Le champ transactionIndex indique la position de la transaction dans le bloc et est utile lorsque l’ordre des transactions est important. logIndex fournit la séquence correcte des logs EVM pour l’exécution d’un contrat.

Exploitation des nœuds

API JSON Ethereum native

La version 1.2.0 de la blockchain a marqué une étape importante pour les développeurs IoTeX. Avec la prise en charge native des transactions signées Ethereum par le nœud IoTeX et la sortie du service d’API JSON Ethereum (« Babel »), la compatibilité IoTeX-Ethereum était complète. Cela permet à toute dApp Ethereum d’être portée sur IoTeX sans nécessiter aucune modification des contrats ni du code client. Cependant, l’API Ethereum était implémentée sous la forme d’un service externe qui devait être déployé séparément et « pointé » vers un véritable nœud IoTeX pour fonctionner. Avec iotex-core 1.7.0, le serveur d’API Ethereum est désormais intégré nativement et exposé directement par les nœuds IoTeX. Il n’est plus nécessaire d’exécuter, de configurer et de gérer un service externe. Il suffit d’activer la fonctionnalité Gateway de votre nœud IoTeX pour exposer à la fois l’API native IoTeX et l’API Ethereum.

Rotation des logs

Logrotate a été installé dans l’image Docker du nœud pour gérer et stocker plus efficacement les fichiers de logs du nœud. Au lieu d’un seul gros fichier de logs, le nœud crée désormais plusieurs fichiers plus petits. Ceux qui sont trop anciens sont supprimés. La configuration de logrotate se trouve dans l’image Docker. Les paramètres par défaut créent de nouveaux fichiers de logs chaque jour. Les fichiers de logs sont supprimés après 30 jours.

Performances

Séparation des réseaux p2p du Mainnet et du Testnet

Avec ce changement, le Testnet et le Mainnet d’IoTeX ont été séparés logiquement au niveau du réseau p2p en fonction de la valeur du ChainID, désormais incluse dans tous les messages p2p. Cela réduit, dans certains cas particuliers, les interférences de trafic réseau entre le Mainnet et le Testnet, et atténue certains types d’attaques.

Divers

Traçage de l’exécution des nœuds de la blockchain

Dans la version 1.6.0, nous avons introduit du code de traçage pour collecter des logs d’exécution sur les chemins d’exécution critiques du nœud. Ce code de traçage a maintenant été activé et configuré pour envoyer les données vers un backend où elles sont agrégées et analysées. C’est un outil précieux pour l’équipe dev-core d’IoTeX, qui peut ainsi surveiller l’exécution de la chaîne et être alertée rapidement lorsque des comportements étranges ou des erreurs sont détectés. Tout le monde peut consulter les données en visitant https://tracing.iotex.me.

Plus

De nombreuses autres corrections de bugs mineurs et améliorations ont été apportées dans la 1.7.0. Consultez la page des versions sur GitHub pour en savoir plus. Nous serions ravis que vous vous impliquiez davantage. Rejoignez notre canal Discord.

IoTeX