Architecture Harmonie 2023
Introduction
Harmony est une blockchain conçue pour fournir une infrastructure rapide, sécurisée et évolutive. Cet article couvrira l'état actuel et les plans de l'architecture d'Harmony.
Nœud complet RPC
Les nœuds complets RPC servent de point d'entrée au réseau Harmony. Ils traitent les demandes d'interrogation d'informations dans la blockchain ou de traitement de transactions. En 2020, Harmony est passé des nœuds RPC d'origine aux clusters RPC élastiques pour gérer le volume croissant de demandes RPC. La transition a été effectuée pour améliorer les performances et l'évolutivité du réseau. Cependant, maintenant que la quantité de trafic a diminué, nous sommes revenus aux anciens nœuds RPC.
Le motif de cette transition est d'éviter que les ressources ne soient gaspillées et que des coûts supplémentaires ne se produisent. Nous avons entièrement résilié nos clusters ERPC et avons configuré les nœuds requis pour gérer correctement les requêtes RPC. Harmony dispose actuellement de trois nœuds complets entièrement utilisés pour répondre aux demandes.
Harmony surveillera en permanence la santé et le trafic des nœuds RPC. Si plus ou moins de trafic se produit, l'équipe dimensionnera les nœuds pour la robustesse du réseau. L'objectif ultime d'Harmony est de faire évoluer le réseau en utilisant des clients légers aux côtés de nœuds complets. Pour des informations détaillées sur les clients légers, veuillez consulter l'article suivant :
Nœud de validateur interne
Le nœud leader est responsable de la construction de nouveaux blocs et de leur diffusion aux validateurs. Les nœuds validateurs vérifient la validité des blocs pour s'assurer que ceux des leaders malveillants ne sont pas ajoutés à la chaîne. Actuellement, les leaders sont choisis parmi les vingt nœuds de validation internes hébergés par Harmony (cinq nœuds de validation par partition). Chaque nœud de validateur contient cinq clés BLS chacun, ce qui totalise vingt-cinq clés BLS par fragment. Ces clés sont l'identité réelle qui est sélectionnée en tant que leader.
À l'heure actuelle, seuls les validateurs internes sont pris en compte lors du choix des leaders pour chaque fragment. Pour assurer la continuité du réseau, si un leader ne fonctionne pas pleinement, un changement de vue s'enclenchera et un autre leader sera choisi. Terminer complètement tous les validateurs internes n'est pas viable pour le moment car il n'y aura pas de candidats leaders possibles pour produire des blocs. L'introduction de validateurs externes en tant que candidats leaders possibles est une fonctionnalité qu'Harmony développe actuellement et prévoit d'achever d'ici le premier trimestre de 2023. Une fois terminé, les validateurs externes feront partie du processus de rotation des leaders, permettant à la communauté de jouer un rôle plus actif dans la validation des blocs.
Le plan d'Harmony est d'externaliser entièrement les créneaux de vote car notre objectif final est un réseau entièrement décentralisé. Le planning est le suivant :
La gouvernance pour les étapes de résiliation se passe actuellement : HIP-29 . Si la gouvernance est approuvée, deux nœuds seront résiliés par partition, ce qui en fait trois nœuds par partition. Chaque nœud aura un emplacement de moins, ce qui en fait quatre emplacements par nœud et douze emplacements par fragment. Une fois le changement mis en œuvre, le réseau disposera d'un pouvoir de vote externe accru.
Harmony a mis en place diverses mesures pour assurer la stabilité et la disponibilité du réseau, notamment l'utilisation de plusieurs mécanismes de consensus (FBFT et EPoS), des mécanismes de basculement automatique et des systèmes de surveillance et d'alerte en temps réel. Ceux-ci garantissent déjà la robustesse de notre réseau, mais à mesure que le réseau devient plus décentralisé, la dépendance à l'égard de la communauté des validateurs externes est vouée à croître. Harmony continuera à se coordonner avec la communauté pour assurer davantage la résilience du réseau.
Les multiples étapes permettront à Harmony de coopérer avec la communauté pour trouver une solution robuste pour un réseau décentralisé et sécurisé.
Souci de centralisation
Bien que non spécifique à la proposition HIP-29, il y a une préoccupation que nous devons aborder à mesure que le pouvoir de vote externe augmente : la centralisation. L'augmentation du pouvoir de vote externe peut également accroître la centralisation du réseau, car des parties prenantes plus importantes peuvent éventuellement absorber les créneaux de vote. Un plus petit nombre de participants avec des enjeux plus importants peut avoir plus d'influence sur la décision du réseau.
Auparavant, un hard fork était implémenté afin de placer une limite de clés BLS par shard. La motivation était d'empêcher la probabilité qu'un fragment soit pris en charge par un petit groupe de validateurs qui se conduisent mal. Chaque validateur aurait une limite sur le nombre de clés qu'il possède par fragment.
Quoi qu'il en soit, Harmony doit prendre d'autres mesures pour pousser davantage vers la décentralisation. Il existe plusieurs propositions, telles que limiter le nombre total de clés par validateur, limiter le nombre de récompenses par validateur et limiter le maximum qu'une "baleine" peut déléguer par validateur. Notez que ce ne sont que des propositions qui peuvent ou non être mises en œuvre. Quoi qu'il en soit, Harmony travaillera avec la communauté à la recherche de l'approche la plus appropriée pour parvenir à la décentralisation. Harmony fournira d'autres mises à jour sur la résolution du problème de la centralisation.
Noeud de démarrage
Les nœuds d'amorçage sont responsables de l'amorçage des nœuds du réseau. Lorsqu'un nouveau nœud est introduit sur le réseau, bootnode fournit un ensemble de nœuds avec lesquels les nouveaux nœuds doivent se synchroniser. La synchronisation serait effectuée de manière peer-to-peer. Cela permettra au nouveau nœud d'avoir les données nécessaires pour participer au réseau.
Harmony héberge actuellement quatre bootnodes. Les nœuds de démarrage sont relativement moins chers que les autres services, car les instances légères peuvent gérer la fonctionnalité. Harmony prévoit d'externaliser entièrement tous les services, mais à partir de maintenant, les bootnodes sont un service essentiel qui doit faire partie de notre réseau.
Nœud DNS (synchronisation)
Les nœuds DNS sont une autre solution pour synchroniser les nœuds. Ce sont des nœuds complets désignés par Harmony pour gérer la synchronisation. Si les nœuds ne souhaitent pas se synchroniser à partir d'homologues amorcés par des nœuds d'amorçage, ils peuvent se synchroniser à partir des nœuds DNS exécutés par Harmony. L'interaction entre les nœuds DNS et les nœuds nécessitant une synchronisation est similaire au modèle serveur et client. Ils ne communiquent pas entre eux. Au lieu de cela, les nouveaux nœuds appellent les nœuds DNS et ils répondent simplement avec les données appropriées.
La maintenance des nœuds DNS est coûteuse en raison de l'exigence d'une bande passante élevée et d'un stockage important. Afin d'optimiser notre infrastructure et nos coûts, Harmony prévoit de retirer les nœuds DNS et d'exploiter la fonctionnalité de synchronisation sous une forme différente : la synchronisation de flux.
Synchronisation de flux
Les nœuds doivent être synchronisés avec le dernier état du réseau blockchain. Pour cette raison, la synchronisation de flux est implémentée en tant que nouvelle méthode permettant aux nœuds Harmony de synchroniser leurs états entre les nœuds.
La synchronisation de flux implique un ensemble d'étapes que chaque nœud suit pour s'assurer que son état est à jour. Tout d'abord, le nœud trouve un ensemble de nœuds voisins pendant le processus d'amorçage. Le nœud utilise un gestionnaire de connexions pour gérer toutes ces connexions. Ensuite, le nœud créera des canaux de flux pour chaque voisin via un gestionnaire de flux. Une fois les canaux de flux établis, le nœud peut commencer à synchroniser son état.
Le nœud commence par demander à chaque voisin sa hauteur de bloc actuelle via un gestionnaire de requêtes. Une fois les requêtes satisfaites, le nœud peut calculer la hauteur de bloc maximale. Avec la hauteur de bloc maximale, le nœud demande alors à chaque voisin de partager un morceau de son état. Le processus de partage se poursuit jusqu'à ce que le nœud récupère tous les états jusqu'au bloc actuel.
Harmony stream sync utilise un ID unique pour identifier les nœuds dans les mêmes partitions. Les nœuds de la chaîne non balise utilisent un téléchargeur pour récupérer les derniers blocs de chaque époque à partir de la chaîne balise. Ces blocs sont essentiels pour les nœuds de la chaîne non balise car ils permettent de récupérer les états des fragments et les listes de comités.
L'avantage de la synchronisation de flux est qu'elle fournit un temps de synchronisation d'état plus rapide avec une bande passante réseau minimale. Le processus rend également l'ensemble du réseau plus décentralisé, car les nœuds ne s'appuieront pas sur des ensembles de nœuds désignés. Au lieu de cela, les nœuds sont capables de se synchroniser à partir de n'importe qui dans le même fragment. La synchronisation de flux peut finalement être considérée comme une mise à niveau non seulement de la synchronisation peer-to-peer traditionnelle, mais également de la synchronisation DNS. Il supprime la dépendance aux nœuds DNS et élimine la surcharge élevée sur les quelques nœuds de synchronisation désignés. La synchronisation de flux devrait être publiée au cours du premier trimestre de 2023 et une fois que la fonctionnalité sera pleinement opérationnelle, Harmony retirera les nœuds DNS.
Nœud d'instantané
Les nœuds d'instantané sont utilisés pour stocker les sauvegardes de la base de données. Les nœuds d'instantanés répètent le processus de synchronisation et de capture d'instantanés dans un stockage décentralisé, Storj. Les instantanés permettront aux nouveaux nœuds de rattraper efficacement l'état actuel du réseau.
Sans nœuds d'instantané, un nouveau nœud devrait synchroniser toutes les données des autres nœuds homologues ou nœuds DNS. Cependant, en raison de l'immense quantité de données, le processus de synchronisation prendrait un temps déraisonnable et imposerait une charge aux deux nœuds. Afin d'éviter cette complication, les nouveaux nœuds obtiendraient d'abord les données des nœuds d'instantanés. Une fois la synchronisation à partir du nœud d'instantané terminée, les nouveaux nœuds peuvent alors synchroniser le reste des données à partir d'autres nœuds complets, qu'il s'agisse de nœuds homologues ou DNS. Cela déchargerait la quantité de données pour d'autres nœuds complets et rendrait le réseau globalement efficace.
Harmony exploite actuellement un nœud d'instantané par partition, ce qui en fait quatre services au sein de notre réseau principal. Les nœuds d'instantané ne peuvent être retirés que si la synchronisation d'Harmony est raisonnablement rapide. Jusque-là, le service sera exploité pour assurer la commodité du réseau.
Nœud d'archivage
Les nœuds d'archivage contiennent toutes les données de la blockchain Harmony. Actuellement, un seul nœud d'archivage dans le fragment 0 contient 22 To de données. La mise en place d'un nouveau nœud d'archivage prendrait environ trois semaines ou plus selon la connectivité du nœud. En raison de sa taille immense, il est crucial pour nous de conserver une copie propre.
Harmony gère actuellement trois nœuds d'archivage. Le but de la redondance est d'empêcher un point de défaillance unique. Par exemple, si un nœud d'archivage est dysfonctionnel et nécessite une nouvelle configuration, un autre archivage sera occupé à synchroniser le nœud dysfonctionnel. À ce stade, un seul nœud d'archivage sera disponible pour traiter les demandes externes. Afin d'éviter l'arrêt du réseau, Harmony maintient plus de deux nœuds d'archivage.
Dans l'état actuel d'Harmony, trois nœuds d'archivage suffisent pour gérer le trafic et assurer la robustesse du réseau. Si davantage de demandes sont requises, Harmony dimensionnera les nœuds d'archivage pour répondre aux besoins du réseau.
Conclusion
L'objectif d'Harmony est de faire des progrès substantiels et les changements appropriés dans notre infrastructure. Nous sommes impatients de constater l'impact qu'ils apporteront à notre réseau. Veuillez rester à l'écoute pour plus de mises à jour d'infrastructure et de protocole !
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































