Rapport mensuel de Neo Global - Développement

Mai 2022

Rapport mensuel de Neo Global - Développement

Fait Marquants

De nombreuses mises à jour de l’équipe de développement de base ce mois-ci étaient centrées sur la maintenabilité et la stabilité à long terme de Neo, à la fois en tant que protocole et en tant que plate-forme de développement. La mise en œuvre de la prise en charge du hard fork permet d’introduire en toute sécurité des modifications incompatibles en amont, la première étant des modifications des prix syscall qui atténueraient les préoccupations de DoS.

L’isolement des snapshots est un autre exemple, qui empêche les modifications de stockage de contrat indésirables de persister entre les appels de contrat où des exceptions se produisent. L’expérience de développement de contrats pour le développeur C# a été améliorée grâce à la compilation conditionnelle, éliminant ainsi le besoin de réécritures de code entre les compilations de débogage et de production.

Les groupes de développement communautaire parrainés par Neo ont publié leurs propres mises à jour en phase avec le noyau, s’adaptant aux modifications et transplantant les nouvelles fonctionnalités. NEXT a terminé ses préparatifs pour une mise à niveau majeure du portefeuille d’extension NeoLine, apportant le support Ledger et le support réseau personnalisé pour rendre le portefeuille plus polyvalent pour les utilisateurs et les développeurs.

Pendant ce temps, Neo SPCC a exploré de nouvelles optimisations NeoFS sous la forme du service d’arborescence d’objets, et NGD Enterprise a continué à couvrir le terrain dans le développement de son nouveau compilateur pour les contrats intelligents TypeScript.

Le rapport mensuel complet sur le développement mondial de Neo pour le mois de mai se trouve ci-dessous.

DEVELOPPEMENT DU PROTOCOLE

DEVELOPPEMENT DU PROTOCOLE

Neo Core

Améliorations de la gestion des exceptions mises en œuvre pour les appels inter-contrats

L’ajout de l’isolation instantanée dans le noyau Neo a été l’une des mises à niveau les plus notables que Neo a reçues en mai. Après la mise à jour, les changements d’état causés par les appels de contrat sont conservés séparément entre chaque appel de contrat.

Si un appel donné entraîne une exception, les changements d’état dans le contrat appelé sont automatiquement annulés, ce qui évite les conséquences imprévues qui pourraient se produire lorsque des exceptions sont gérées par le contrat exécutant l’appel.


Prise en charge des hardforks au niveau du protocole et des ajustements de prix syscall

L’équipe de développement principale a travaillé à la version phare de Neo v3.3.0 en mai, qui deviendrait la première version à inclure la prise en charge des hard forks au niveau du protocole. Cela permet à la plate-forme d’ajuster les prix syscall codés en dur sans casser les transactions dans les blocs précédents. Dans le premier fork, les frais pour getRandom et createMultisigAccount ont été ajustés pour atténuer les problèmes de DoS et autres problèmes.


NeoVM amélioré avec de nouveaux opcodes et des copies profondes immuables pour StackItems

MODMUL et MODPOW sont arrivés dans NeoVM, ouvrant de nouvelles opportunités pour les applications on-chain liées à la cryptographie et aux preuves à connaissance nulle. Un autre changement au niveau de NeoVM a été la possibilité de copier en profondeur les éléments de la pile comme immuables. Cela permet d’améliorer les performances dans les situations impliquant Notify et GetNotifications tout en évitant la possibilité pour un contrat de modifier les notifications reçues.


La compilation conditionnelle et les nouvelles méthodes atterrissent dans le neo-devpack-dotnet

Le compilateur de contrats C# a reçu un certain nombre de mises à jour en mai, notamment de nouvelles méthodes mathématiques pour renvoyer des valeurs absolues, des optimisations pour les cartes de stockage et la possibilité de concaténer des bytestrings.

La prise en charge de la compilation conditionnelle via #if DEBUG a également été implémentée, améliorant ainsi le flux de travail de développement de contrats pour les développeurs C#. Plus particulièrement, il peut être utilisé pour désactiver temporairement l’attribut safe sur les méthodes en lecture seule, permettant l’utilisation de Runtime.Log() pendant le développement sans compromettre le code de version.

INFRASTRUCTURE & DEVELOPPEMENT DES OUTILS

INFRASTRUCTURE & DEVELOPPEMENT DES OUTILS

Fait Marquants

INFRASTRUCTURE & DEVELOPPEMENT DES OUTILS

Jalons du projet

NODE

NeoGo par Neo SPCC

Neo SPCC a terminé sa montagne habituelle de mises à jour NeoGo ce mois-ci. Comme les mois précédents, les modifications ont été réparties entre les modifications de protocole dans l’implémentation de référence et les optimisations et corrections de bogues spécifiques au nœud Go.

En suivant le noyau et sa récente version v3.3.0, l’équipe a mis en œuvre tous les ajustements nécessaires pour maintenir une compatibilité C# complète. Ceux-ci comprenaient des limites comparables bytearray, des éléments de pile immuables et de nouveaux opcodes dans la machine virtuelle, ainsi que la prise en charge du hard fork et diverses refactorisations / atténuations DOS.

Une longue liste de mises à jour spécifiques à NeoGo a été mise en œuvre en mai. Les exemples incluent les améliorations de la redirection du système Oracle, les incompatibilités d’état, la gestion des mots de passe avec tty, les correctifs pour les problèmes de compteur de référence et l’étendue de témoin Règles, ainsi que diverses améliorations apportées au package RPC.

L’équipe a également amélioré sa documentation et ses commentaires de code avec une révision grammaticale approfondie. Près de 300 fichiers ont reçu des améliorations, cimentant NeoGo comme l’un des projets les plus documentés de l’écosystème.

https://github.com/nspcc-dev/neo-go

SDK

neow3j par AxLabs

Axlabs a publié la version 3.17.1 de neow3j en mai, une mise à jour mineure qui a apporté des modifications au SDK et au devpack. Dans le premier, la version a apporté une modification qui permet de générer des transactions qui se termineront par un état FAULT dans NeoVM. À l’origine, seules les transactions exécutées avec succès pouvaient être transmises; une nouvelle option permettra aux transactions défectueuses de se poursuivre aux fins de la mise à l’essai des contrats.

Dans le devpack, de nouvelles méthodes pratiques ont été ajoutées pour faciliter la récupération de Hash160 et Hash256 à partir des classes Storage et StorageMap sans avoir besoin d’instanciation manuelle.

https://github.com/neow3j/neow3j

SMART CONTRACT & DAPP FRAMEWORK

Neo Blockchain Toolkit par NGD Enterprise

Le Neo Blockchain Toolkit a reçu un certain nombre de changements suite aux mises à jour de Neo core v3.3. Les versions préliminaires ont été publiées et sont en cours de test, en attendant les mises à jour des plugins requises avant la version finale. La conception du schéma de stockage qui a été prévisualisée par l’équipe le mois dernier a également été modifiée à la suite des commentaires et de l’examen des développeurs.

L’équipe a également poursuivi ses efforts pour développer un nouveau compilateur de contrats intelligents pour TypeScript, actuellement dans les premiers stades de développement. Une fois terminé, le langage deviendra le cinquième langage de contrat intelligent Neo N3 pris en charge, présentant une opportunité d’intégration majeure pour les développeurs traditionnels (en particulier Web) à la blockchain.

https://marketplace.visualstudio.com/items?itemName=ngd-seattle.neo-blockchain-toolkit

Portefeuille

NeoLine par NEXT

Des améliorations majeures ont été apportées au portefeuille d’extension NeoLine Chrome en mai. Prise en charge des périphériques de portefeuille matériel Ledger, des réseaux personnalisés et des serveurs RPC, ainsi que des améliorations UX telles que la recherche de portefeuille et un indicateur de portefeuille actif. NEXT a également repensé l’interface utilisateur pour sa page de détails du portefeuille, réécrivant la logique sous-jacente pour tenir compte des nouvelles fonctionnalités et améliorant la conception de la refonte.

https://neoline.io/

NEOFS

Neofs par Neo SPCC

Jusqu’en mai, le développement de NeoFS s’est concentré sur l’amélioration des performances et de la maintenabilité. Le changement le plus important est venu sous la forme du service d’arborescence d’objets, gérant le contrôle d’accès, la réplication et apportant avec lui un certain nombre d’optimisations. Une refactorisation de l’interface de ligne de commande, une mise à jour du SDK et des améliorations de l’API ont également été implémentées dans le noyau NeoFS.

Les services NeoFS ont également été ajustés pour adopter le service d’arborescence, améliorant ainsi les performances de la passerelle S3 sous forte charge. L’équipe s’est également préparée à la sortie publique du service CDN NeoFS et a créé un outil universel de test de charge pour l’analyse comparative des solutions compatibles S3.

https://fs.neo.org/

Audit

Audit par Red4Sec

Red4Sec a poursuivi son audit des projets d’écosystème en mai, y compris l’examen des correctifs et la livraison finale des contrats intelligents GrantShares, les examens des demandes d’extraction pour PayProxy et un nouveau problème détecté dans le projet FlamingoSwapPair. Un audit était également prévu en juin pour Saffron Finance pour juin, et deux vulnérabilités ont été trouvées et signalées dans la plate-forme Neo de base.

https://red4sec.com/en