Nouveau blog officiel : Nimiq – Passé, présent et futur – Performances réseau

Nouveau blog officiel : Nimiq – Passé, présent et futur – Performances réseau

Ci-dessous une traduction du nouvel article officiel trouvable ici.

En observant la blockchain en situation réelle nous avons identifié et commencé à travailler sur un certain nombre d’aspects du protocole Nimiq pour le rendre plus solide et plus résilient. Les objectifs les plus important à l’heure actuelles sont :

  • Réduire à la fois la dépendance au DNS et les tracas lié à la mise en place d’un certificat.
  • Optimisation des performances des “full nodes”.
  • Permettre à la communauté de mettre en place ses propres “seed nodes”

DNS et certificats

Dans la version actuelle du protocole Nimiq, les certificats TLS sont requis comme passerelles pour les navigateurs web. Ceci est dû à deux restrictions dans les navigateurs :

  1. Tout d’abord, certaines des API que nous utilisons pour Nimiq exigent que le contenu soit servi par HTTPS. Deuxièmement, lorsqu’une page Web est livrée par le biais d’une connexion sécurisée, seules les connexions WebSocket sécurisées sont autorisées – ce qui nécessite un certificat du côté des “backbone nodes”.
  2. La mise en place d’un certificat peut parfois être un problème et a conduit de nombreux participants du réseau Nimiq à faire tourner leurs nodes en mode “dumb”, c’est-à-dire sans certificats. Mais les “dumb nodes” ont un inconvénient : ils peuvent se connecter à tous les autres nœuds non “dumb” du réseau, les autres nodes du réseau ne peuvent pas se connecter à un “dumb node”. Cela a conduit à une charge accrue sur les “backbone nodes” qui ont un certificat installé – car ceux-ci deviennent les hubs à la fois de tous les “browser nodes” et de tous les “dumb nodes”. Cette situation va à l’encontre des ambitions de Nimiq en matière de décentralisation. Heureusement nous avons mis au point de multiples façons de régler ce problème et nous avons déjà commencé à mettre en œuvre des solutions :

Les nodes du réseau de base ne devraient pas avoir besoin de certificats, mais plutôt communiquer entre eux via la connectivité TCP/WS si aucun certificat n’est fourni. Nous testons actuellement cette nouvelle fonctionnalité sur le Testnet de Nimiq.
Nous travaillons également à fournir un script d’installation qui choisira automatiquement la configuration la plus appropriée pour votre noeud et vous guidera à travers les étapes nécessaires (comme l’ouverture des ports dans un pare-feu). Cela inclut également la création d’un certificat TLS dans la plupart des cas, supportant un ponte entre les “browser nodes” et les “backbone nodes”.
Dès que cette procédure automatique fonctionne de manière fiable, nous envisageons d’ajouter une fonction pour les nodes afin de filtrer les connexions des “dumb nodes” – dans le but de décourager leur utilisation – tout en prenant en charge les configurations “dumb” dans des situations qui ne le permettent pas autrement.

Optimisation des performances

Une étape essentielle pour assurer la sécurité du réseau est la dispersion de la puissanc de minage. Pour cette raison, nous voulons fournir la version la plus performante du protocole Nimiq en Open Source à la communauté pour s’assurer que tout le monde a une chance égale de participer. Pour améliorer encore les performances du réseau et du minage, nous prévoyons de réécrire l’implémentation basée sur Node.js en utilisant Rust – un langage idéal du point de vue de la performance et de la sécurité. De plus, Rust peut être compilé en WebAssembly et fonctionne donc de manière très efficace dans le navigateur. Cette implémentation sera développée parallèlement à la version JavaScript et est destinée aux situations où la performance est primordiale, tandis que l’implémentation de Node.js peut toujours être utilisée pour construire des applications supplémentaires sur Nimiq en utilisant la plate-forme populaire et JavaScript.

Une fois que nous aurons atteint une compatibilité et une intégration transparente de la base de donnée Rust dans les navigateurs via WebAssembly, nous avons l’intention de fournir cette amélioration de performance potentiellement énorme en tant que mise à jour des plates-formes et environnements basés sur JavaScript.

“Seed nodes” communautaires

Récemment, le réseau Nimiq a connu une charge inattendue sur les huit “seed nodes” initialement fournis et entretenus par l’équipe Nimiq. Comme mesure immédiate pour atténuer le problème, nous travaillons à augmenter le nombre de “seed nodes”.

Pour augmenter la croissance du réseau, nous recherchons les meilleures solution qui donneraient à la communauté la capacité d’exploiter des “seed nodes” tout en veillant à ce que la qualité et la sécurité du réseau restent aussi élevées que possible. Les membres de la communauté ont déjà montré leur intérêt à soutenir le réseau Nimiq en fournissant des “seed nodes” et les premiers essais sont en cours sur l’intégration de ces nodes communautaires. Nous espérons être bientôt en mesure d’annoncer une solution adéquate et transparente qui permettra la mise en place d’un “seed node” communautaire.