Rapport de projet de la ville de Sion – juin à août 2018

City of Zion (CoZ) est une communauté mondiale de passionnés de l’open source, dont l’objectif commun est d’aider NEO à atteindre son plein potentiel. CoZ opère principalement à travers la communauté Discord et CoZ Github, des lieux centraux où la communauté partage ses connaissances et contribue à des projets.

CoZ n’est ni une société, ni un cabinet de conseil ou un groupe de développement / pour compte d’autrui.

Nous nous excusons pour le retard dans la publication de la dernière mise à jour d’avancement du projet, nous avons été occupés! Enfin, voici le rapport des derniers mois rédigé par les responsables du projet eux-mêmes.

neo-go

https://github.com/CityOfZion/neo-go

La réécriture neo-go vers la version 2.0 a démarré

Après avoir une bien meilleure compréhension de la technologie blockchain et du fonctionnement de NEO, il était temps de recommencer à zéro les parties fondamentales et de les implémenter avec la sémantique et les pratiques d’ingénierie de code appropriées.

Début du projet neo-storm

Lien vers le dépôt Github de neo storm

Après que NEO a annoncé qu’il allait changer certaines sémantiques fondamentales sur le protocole NEO, je pensais que les développeurs seraient mieux lotis avec un cadre agréable et facile à utiliser pour les contrats intelligents. Il est plus logique de se concentrer sur le développement de contrats intelligents que de continuer à écrire le port à Golang. Actuellement, presque tous les développeurs NEO utilisent Python ou C # pour rédiger leurs contrats. Cependant, certains des points forts de NEO sont la possibilité d’écrire des contrats intelligents dans plusieurs langues, alors pourquoi ne pas améliorer le compilateur Golang afin qu’il puisse être égal à ses frères (Python et C #).

neo-storm est plus qu’un simple compilateur Golang vers AVM

Fin de la version 1.0 de Neo-Storm

Neo storm a atteint sa version candidate 4, ce qui en fait un compilateur Golang vers AVM entièrement fonctionnel. Ceci n’est pas encore adapté à la production car il n’a pas été entièrement testé.

Démarrage de la nouvelle VM améliorée

Lancement d’une nouvelle version de la VM avec une sécurité améliorée et la possibilité de travailler de manière totalement indépendante. Cela signifie que les développeurs utilisant neo-storm n’auront pas à lancer un réseau privé pour pouvoir tester leurs contrats. La VM aura tout le runtime et l’API NEO intégrés et simulés, comme s’il s’agissait d’une blockchain entièrement fonctionnelle.

néo-pointu

https://github.com/CityOfZion/neo-sharp

En juin, l’équipe neosharp, composée de 8 membres, a continué à développer la plate-forme en particulier autour de la cryptographie, de la messagerie réseau et de la persistance.

Une étape importante a été franchie lorsque l’équipe a réalisé la génération du bloc Genesis et a commencé à tester la persistance des blocs provenant à la fois des sources de testnet et du réseau principal. Des efforts continus ont également été déployés autour de la messagerie réseau, de la couverture des tests unitaires et des mises à jour des directives de contribution et des meilleures pratiques pour permettre aux nouveaux contributeurs de participer au projet et de préparer la base de code pour le sprint à Shanghai afin qu’elle fonctionne avec les ressources NGD.

En juillet, le caoutchouc a vraiment commencé à prendre la route avec neosharp et le sprint de Shanghai. L’équipe a gagné 5 nouveaux contributeurs et a enregistré près de 100 pull request / commits au mois de juillet.

Les principaux domaines d’intérêt de ce mois-ci étaient l’intégration des fonctionnalités du portefeuille, des fonctionnalités des applications et de la console, l’ajout du cadre du planificateur de tâches, la mise en œuvre de RPC, l’intégration de VM, le traitement / persistance des blocs et la couverture des tests unitaires. Le cadre a également été mis à niveau vers dotnet core 2.1 et le sprint de Shanghai a été un succès en tant que début de l’intégration des ressources NGD dans les efforts de développement de neosharp, avec des attentes d’une intégration plus profonde et d’une allocation des ressources au projet dans les mois à venir.

En août, la base de contributeurs s’est encore accrue pour atteindre un total de 13 contributeurs / participants réguliers à la conception, aux tests et à la mise en œuvre de neo-sharp. La gestion de projet a été déplacée pour utiliser le suivi des problèmes et la gestion de projet Github, supprimant ainsi l’ancien tableau Trello utilisé par les premiers contributeurs.

L’accent a également été mis sur la couverture des tests, avec une nouvelle initiative visant à tirer parti des conteneurs pour faciliter les tests fonctionnels des nœuds dans une configuration réseau. L’utilisation de conteneurs alloués dynamiquement permettra aux développeurs de tester les nœuds d’une manière qui n’existe pas encore dans la communauté NEO à ce jour.

En plus des tests, la persistance a été mise en œuvre, apportant le module de persistance Redis DB fonctionnellement à part avec l’implémentation RocksDB, et le premier module de persistance JSON a été implémenté à l’aide de Redis pour permettre une interopérabilité et un débogage tiers plus pratiques pour les développeurs. .

neoscan

https://github.com/CityOfZion/neo-scan

Portefeuille Neon

https://github.com/CityOfZion/neon-wallet/releases

En juin, la fondation et la conception de la nouvelle UI / UX pour la v2 ont été créées et soigneusement examinées. Sous le capot, des mises à jour de performances et de sécurité ont été apportées à la fois à la v2 et aux versions existantes du portefeuille néon. Un tableau de projet a été créé pour enscapuler les éléments représentant v2 MVP. Les frais de réseau (frais de priorité) ont été introduits dans le portefeuille néon.

En juillet, la bibliothèque de composants communs pour la v2 a été développée pour être utilisée dans toute l’application et de nombreuses API internes ont été simplifiées et refactorisées. Un travail a été fait pour ne plus nécessiter de version pour chaque nouveau jeton ajouté au réseau et quelques nouveaux contributeurs ont été intégrés et ont contribué à l’excellent travail. L’authentification, l’envoi et le gestionnaire de portefeuille UX ont été mis en œuvre et le contrôle qualité dans le portefeuille néon v2. Pendant le développement de la v2, un correctif a également été publié pour la version existante de neon-wallet en production (0.2.6).

En août, l’équipe s’est concentrée sur plus d’implémentations de conception UX / UI dans la v2. Les composants du tableau de bord v2 ont été entièrement mis en œuvre, y compris les soldes de jetons avec des logos de jetons. Les travaux ont été achevés sur les sections Paramètres, flux de sélection des nœuds, vente de jetons, réception, fonctionnalité de génération de QR nep9, historique des transactions et contacts de la nouvelle application. La plupart des flux UX existants ont été perfectionnés. Les actifs, y compris les icônes et les images, ont été mis à jour et mis en œuvre dans toute l’application. Il y a eu de nombreuses mises à jour sous le capot de la couche de gestion d’état de l’application. En plus de tout ce travail acharné, pendant ce temps, deux versions ont été supprimées pour les versions v1 0.2.7 et 0.2.8, ces versions ont introduit de nombreuses améliorations de performances, la plus importante étant une réduction spectaculaire des appels newtwork nécessaires pour prendre en charge le portefeuille néon. Ces versions ont également été portées vers la v2.

néo-python

https://github.com/CityOfZion/neo-python

En juin, nous avons peaufiné plusieurs parties liées aux transactions. L’analyse a été mise à jour, nous avons ajouté la possibilité d’ajouter des attributs de transaction pendant les tests et l’appel réel et une nouvelle commande `tkn_history` a été ajoutée pour afficher tous les transferts historiques du jeton spécifié. Juste pour nommer quelques changements.
Du côté des utilitaires, nous avons ajouté «np-sign» pour… bien signer des trucs en utilisant un portefeuille, une clé au format NEP2 ou WIF. De plus, «np-export» et «np-import» ont été introduits pour la sauvegarde et la restauration des données de bloc brutes. Le serveur RPC a reçu un certain amour en lui permettant de fonctionner en parallèle avec le serveur REST, en corrigeant quelques bogues et en ajoutant quelques nouvelles méthodes RPC pour se rapprocher de la parité des fonctionnalités avec le serveur C # RPC officiel. La dernière fonctionnalité intéressante que nous allons souligner sont les API «Iterator» pour le développement de contrats intelligents qui vous permettent d’effectuer une recherche préfixée dans le contexte de stockage. Jetez un œil au journal des modifications pour la liste complète des mises à jour!

Bien que juillet soit généralement un mois plus lent, nous ne sommes pas restés immobiles. Nous allons souligner quelques mises à jour intéressantes et importantes. Tout d’abord, l’invite de commande prend désormais en charge l’indicateur `- i` qui vous permet de spécifier de manière interactive les arguments et leurs types pendant les appels, ce qui améliore considérablement l’analyse et le contrôle de ce qui entre dans vos transactions d’appel. L’envoi de jetons NEP5 depuis des adresses multisignatures ne fonctionnait pas, ce qui signifie que vous ne pouviez pas transférer vos fonds NEO Testnet en utilisant `neo-python`, corrigé! Quelques améliorations liées au réseau ont été apportées qui devraient donner une meilleure disponibilité des nœuds connectés. Les mises à jour restantes ont été principalement un travail interne pour améliorer la stabilité et l’exactitude des structures de données par rapport au client C #. Comme toujours, jetez un œil au journal des modifications pour la liste complète des mises à jour!

Août, la fin de l’été approche. Nous avons fait quelques mises à jour supplémentaires côté réseau pour la sélection des nœuds. La possibilité d’ajouter des frais aux transactions a été ajoutée afin que vous puissiez prioriser le traitement de vos transactions sur le réseau si vous êtes prêt à payer pour cela. Nous avons ajouté la prise en charge des nouvelles versions de la bibliothèque pour rester à jour avec les améliorations, étendu nos méthodes RPC disponibles, synchronisé avec les mises à jour de calcul du nœud officiel GAS et corrigé quelques bogues supplémentaires. Le plus notable des bogues est que nous avons corrigé et un problème avec l’importation d’en-tête de l’outil `np-import`. Pour la liste complète des modifications, consultez le journal des modifications!

neon-js

https://github.com/CityOfZion/neon-js

En juin, la première version bêta de la nouvelle version 4 est sortie. La nouvelle pile choisie comprend dactylographié, lerna, jest et yarn. Cela nous donnerait les outils nécessaires pour gérer une base de code croissante de plusieurs packages. Bien que l’objectif soit d’avoir plusieurs packages, le package neon-js restera toujours en tant que bibliothèque fonctionnelle avec les mêmes fonctionnalités.

Le paquet principal sera publié sous le nom @ cityofzion / neon-core à la place. Cela ne comportera que les modules nommés et aucune API sémantique. La fonctionnalité api dans le package actuel sera extraite en tant que plugins @ cityofzion / neon-api et @ cityofzion / neon-nep5 qui augmentent le paquet de base. (Actuellement, les packages de plugins ne sont pas publiés et ne sont donc pas disponibles pour un essai).

Pour installer la version 4, vous devrez l’installer en utilisant la balise next :

Pour la version 3, nous continuerons à publier pendant la construction de la version 4. Ce mois-ci, nous avons publié 3.9.1 qui a introduit la désérialisation des objets complexes de la VM.

Une autre version de la v4 a été faite, mettant à jour les dépendances et se concentrant sur la correction des bogues survenus lors de la transition vers le typographie. Sur la v3, nous avons publié 3.9.2 qui corrige divers bogues qui affectaient la façon dont neon-js déterminait les bons nœuds rpc.

Avec l’annonce du vote, l’accent a été mis sur l’enquête et le soutien aux transactions d’État. Ce sont des transactions utilisées pour voter pour les candidats. Ce travail sera publié lorsque la fonctionnalité sera plus stable.

Les travaux sur la version 4 se terminent et seront bientôt publiés (début septembre). Le travail sur la v3 s’arrêtera une fois la version 4 sortie et une branche archive / v3 sera découpée pour prendre en charge les futurs correctifs de la v3. En raison des grands changements intervenus dans la version 4, je ne m’attends pas à une adoption immédiate de la version 4. Ainsi, la version 3 continuera à recevoir des correctifs et des mises à jour appropriées si nécessaire. Cependant, la version 3 peut ne pas disposer de l’infrastructure nécessaire pour prendre en charge les nouvelles fonctionnalités pouvant être publiées dans la version 4. Par exemple, les packages basés sur des nœuds ne peuvent pas être portés vers la version 3 sans rompre la compatibilité du navigateur.

Pendant ce temps, la v3.11.0 est sortie avec plusieurs nouvelles fonctionnalités. getTokenBalances a contribué par David qui regroupe plusieurs appels de solde de jetons ensemble, ce qui permet de réduire les frais généraux. La prise en charge des transactions par état est également fusionnée avec setupVote étant la méthode gérée pour configurer facilement vos votes. Enfin, verifySignature a été ajouté pour compléter les méthodes de signature.

néo-local

https://github.com/CityOfZion/neo-local

Ces derniers mois, le nombre d’utilisateurs de néo-local (NL) a augmenté en raison de la popularité et du succès de nOS. L’équipe principale de nOS a publié nos-local qui importe et utilise NL comme base. Dans le cadre des nouveaux utilisateurs, un certain nombre de bogues ont été mis en évidence et corrigés, et d’autres fonctionnalités ont été suggérées.

Un projet qui a été largement discuté sur Discord a maintenant été publié et ajouté à NL: neo-local-faucet. Ce nouveau service constitue le 6ème conteneur à être ajouté à la pile NL Docker Compose. C’est une simple application web Javascript qui permet la création d’un nouveau portefeuille et la demande automatique de NEO / GAS à un compte.

Des efforts supplémentaires ont été consacrés à la fiabilité de NL, avec des tests CI renforcés et une surveillance nocturne.

Le mois d’août a vu le début des travaux pour franchir une étape importante pour le néo-local, une CLI multiplateforme! Les raisons du passage à une CLI sont:

Ceci est une réécriture complète du projet, il faudra donc du temps. Une première version est prévue pour octobre et est en cours d’élaboration par @revett et @jeroenptrs.

Un petit correctif de @jeroenptrs a amélioré la façon dont les tests CI étaient exécutés sur le projet, afin d’améliorer les rapports. Les discussions au sein des contributeurs néo-locaux se sont poursuivies sur le thème de la promotion du projet, voir l’essentiel écrit par Jeroen Peeters

Bon piratage!
Communauté de la ville de Sion

Suivez CoZ sur Facebook , Medium Publication et Twitter pour les dernières mises à jour sur le développement CoZ!

Gouvernance

Il n’y a pas de processus formel pour rejoindre CoZ. Les personnes intéressées devront d’abord effectuer le travail et le code soumis doit être sous licence MIT. Les contributeurs réguliers deviendront éligibles pour rejoindre l’organisation CoZ et commencer à collaborer sur des projets. Le processus de gouvernance de cette organisation est disponible ici.

CoZ n’est pas un organisme de réglementation et n’assume aucune responsabilité quant à la qualité des contrats intelligents tiers déployés sur la Neo Blockchain.

Financement

Depuis sa création, le Conseil CoZ est en contact étroit avec le Conseil NEO. Le Conseil NEO fournit un soutien à la communauté, sous la forme de récompenses NEO, que CoZ redistribue chaque semaine.

Pour les personnes qui souhaitent soutenir financièrement le développement de CoZ, notre adresse de don est AXSoNQEKjmqPBNPg5cNrHyWivfjok3Vj9D.

Les membres et les responsables du Conseil CoZ sont exclus des récompenses hebdomadaires NEO, et les membres du Conseil sont exclus de toutes les compétitions CoZ.