Le Mainnet IoTeX v1.7 est EN DIRECT !

IoTeX Mainnet v1.7 is Officially Live

Aujourd'hui marque une autre grande sortie 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 de l'API qui accéléreront le développement de dApps 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, affine et travaille toujours de manière itérative pour faciliter le développement et l'intégration des dApps. En plus d'un développement de dApps maintenant plus simple, la blockchain est plus fiable et plus sécurisée avec des performances améliorées. Examinons de plus près certains des principaux changements...

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 aux développeurs si une action a réussi ou a été annulée. Le nouvel appel API TraceTransactionStructLogs est l'équivalent d'trace_call d'Ethereum et collecte des détails de bas niveau lors de l'exécution d'un seul appel de contrat, fournissant 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 API est activé.

API de décodage du stockage de contrats

Cette API permet de décoder les données dans le stockage d'un contrat intelligent à un emplacement mémoire spécifique. Elle est fournie sous forme d'appel API GRPc natif IoTeX (ReadContractStorage) et en tant qu'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 effectivement dépensés pour une action spécifique manquait dans l'objet de réponse lors de la requête de détails d'action. Cette valeur est maintenant fournie par tout appel API natif ou Ethereum qui retourne 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 de reçus de transaction, la valeur transactionIndex ainsi que la valeur logIndex pour chaque entrée de journal dans le tableau de 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. 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 version blockchain 1.2.0 a marqué une grande étape pour les développeurs IoTeX. Avec la prise en charge native des transactions signées par Ethereum par le nœud IoTeX et la libération 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 modification des contrats ni du code client. Cependant, l'API Ethereum a été mise en œuvre comme un service externe qui devait être déployé séparément et "dirigé" 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ée.

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 plus efficacement. Au lieu d'un seul fichier journal volumineux, le nœud crée désormais plusieurs fichiers plus petits. 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.

Performances

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

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

Divers

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

Dans la version 1.6.0, nous avons introduit un code de traçage pour collecter des journaux d'exécution en temps réel sur les chemins critiques d'exécution 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 pour surveiller l'exécution de la chaîne et être alertée rapidement lorsque des comportements étranges ou des erreurs sont détectées. Tout le monde 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 version sur GitHub pour plus de détails. Nous aimerions que vous soyez plus impliqué. Veuillez rejoindre notre canal Discord.