IoTeX Mainnet v1.7 est EN DIRECT !

IoTeX Mainnet v1.7 is Officially Live

Aujourd'hui marque une autre grande publication de la blockchain IoTeX et 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 23h UTC]. Cette version apporte de nombreuses améliorations d'API qui accéléreront le développement de dApp et le débogage de contrats intelligents complexes. Les opérateurs de nœuds bénéficieront d'une architecture simplifiée du service API Ethereum et d'une meilleure gestion des journaux. Les performances de la base de données et du réseau ont également augmenté. IoTeX construit toujours, affine et travaille de manière itérative pour faciliter le développement et l'intégration des dApp. En plus des dApps qui sont maintenant plus simples à construire, la blockchain est plus fiable et plus sécurisée avec des performances améliorées. Examinons de plus près certains des changements majeurs...

API

Traçage des exécutions de contrats

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

API de décodage du stockage des contrats

Cette API permet de décoder les données dans le stockage d'un contrat intelligent à un emplacement de mémoire spécifique. Elle est fournie comme un appel API GRPc natif IoTeX (ReadContractStorage) et comme un appel API JSON Ethereum (eth_getStorageAt).

Valeur des frais de gaz dans les résultats de l'API getActions

La valeur des frais de gaz réellement dépensés pour une action spécifique manquait dans l'objet de réponse lors de la requête des détails d'action. Cette valeur est maintenant fournie par tous les appels API natifs ou Ethereum qui retournent des détails de transaction.

Valeurs d'index dans les reçus de transaction et les journaux EVM

Lors de l'activation de 1.7.0, lors de la requête des reçus de transaction, la valeur transactionIndex ainsi que la valeur logIndex pour chaque entrée de journal dans le tableau des journaux EVM sont maintenant fournies. Le champ transactionIndex fournit la position de la transaction dans le bloc et est utile lorsque l'ordre des transactions est important. Le logIndex fournit la séquence correcte des journaux EVM pour une exécution de contrat.

Opération de nœud

API JSON Ethereum native

La publication de la blockchain 1.2.0 a marqué une grande étape pour les développeurs IoTeX. Avec le support natif des transactions signées par Ethereum par le nœud IoTeX et la publication du service 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 de changement aux contrats ni au code client. Cependant, l'API Ethereum a été implémentée comme un service externe qui devait être déployé séparément et "pointé" vers un nœud IoTeX réel pour fonctionner. Avec iotex-core 1.7.0, le serveur API Ethereum est maintenant intégré de manière native 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 obtenir à la fois l'API native IoTeX et l'API Ethereum exposées.

Rotation des journaux

Logrotate a été installé dans l'image Docker du nœud pour gérer et stocker les fichiers journaux du nœud de manière plus efficace. Au lieu d'un seul gros fichier journal, le nœud crée maintenant plusieurs petits fichiers. Ceux qui sont trop anciens sont supprimés. La configuration de logrotate est située dans l'image Docker. Les paramètres par défaut créent de nouveaux fichiers journaux quotidiennement. Les fichiers journaux sont supprimés après 30 jours.

Performance

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

Avec ce changement, le Testnet et le Mainnet IoTeX ont été logiquement séparés au niveau du réseau p2p en fonction de la valeur de ChainID qui est maintenant incluse dans tous les messages p2p. Cela réduit l'interférence du trafic réseau entre Mainnet et Testnet dans certains cas spéciaux 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 un code de traçage pour collecter des journaux de temps d'exécution sur des chemins d'exécution critiques du nœud. Ce code de traçage a maintenant été activé et configuré pour envoyer les données à un backend où elles sont agrégées et analysées. C'est un outil précieux pour l'équipe dev-core d'IoTeX pour surveiller l'exécution de la chaîne et être alerté rapidement en cas de comportements étranges ou d'erreurs détectées. Quiconque peut consulter les données en visitant https://tracing.iotex.me.

Plus

De nombreux autres correctifs mineurs et améliorations ont été implémentés dans 1.7.0. Consultez la page de publication sur GitHub pour plus d'informations. Nous aimerions que vous soyez plus impliqué. Veuillez rejoindre notre canal Discord.