2023 Harmoniearchitektur
Einführung
Harmony ist eine Blockchain, die eine schnelle, sichere und skalierbare Infrastruktur bereitstellen soll. In diesem Artikel werden der aktuelle Stand und die Pläne für die Architektur von Harmony behandelt.
RPC-Vollknoten
RPC-Vollknoten dienen als Einstiegspunkt in das Harmony-Netzwerk. Sie bearbeiten Anfragen zur Abfrage von Informationen in der Blockchain oder zur Abwicklung von Transaktionen. Im Jahr 2020 wechselte Harmony von ursprünglichen RPC-Knoten zu elastischen RPC-Clustern, um das steigende Volumen an RPC-Anfragen zu bewältigen. Der Übergang wurde vorgenommen, um die Leistung und Skalierbarkeit des Netzwerks zu verbessern. Da das Datenverkehrsaufkommen jedoch zurückgegangen ist, sind wir wieder auf die alten RPC-Knoten umgestiegen.
Das Motiv für diesen Übergang besteht darin, zu verhindern, dass Ressourcen verschwendet werden und zusätzliche Kosten entstehen. Wir haben unsere ERPC-Cluster vollständig beendet und die erforderlichen Knoten eingerichtet, um RPC-Anfragen ordnungsgemäß zu verarbeiten. Harmony verfügt derzeit über drei vollständige Knoten, die vollständig für die Bearbeitung von Anfragen ausgelastet sind.
Harmony überwacht ständig den Zustand und den Datenverkehr der RPC-Knoten. Wenn mehr oder weniger Datenverkehr auftritt, skaliert das Team die Knoten entsprechend der Robustheit des Netzwerks. Das ultimative Ziel von Harmony besteht darin, das Netzwerk mithilfe von Light-Clients neben vollständigen Knoten zu skalieren. Ausführliche Informationen zu Light Clients finden Sie im folgenden Artikel:
Interner Validierungsknoten
Der Leader-Knoten ist für die Erstellung neuer Blöcke und deren Übertragung an Validatoren verantwortlich. Validator-Knoten überprüfen die Gültigkeit von Blöcken, um sicherzustellen, dass Blöcke von böswilligen Anführern nicht an die Kette angehängt werden. Derzeit werden die Leiter aus den zwanzig internen Validator-Knoten ausgewählt, die von Harmony gehostet werden (fünf Validator-Knoten pro Shard). Jeder Validierungsknoten enthält jeweils fünf BLS-Schlüssel, was insgesamt fünfundzwanzig BLS-Schlüssel pro Shard ergibt. Diese Schlüssel stellen die tatsächliche Identität dar, die als Anführer ausgewählt wird.
Derzeit werden bei der Auswahl der Leiter für jeden Shard nur die internen Validatoren berücksichtigt. Um die Kontinuität des Netzwerks zu gewährleisten, wird ein Meinungswechsel stattfinden und ein anderer Leiter ausgewählt, wenn ein Leiter nicht voll funktionsfähig ist. Die vollständige Abschaffung aller internen Validatoren ist derzeit nicht realisierbar, da es keine möglichen Anführerkandidaten für die Produktion von Blöcken geben wird. Die Einführung externer Validatoren als mögliche Leader-Kandidaten ist eine Funktion, die Harmony derzeit entwickelt und deren Fertigstellung bis zum ersten Quartal 2023 geplant ist. Nach der Fertigstellung werden externe Validatoren Teil des Leader-Rotationsprozesses sein, sodass die Community eine aktivere Rolle bei der Blockvalidierung spielen kann.
Der Plan von Harmony besteht darin, die Abstimmungsplätze vollständig zu externalisieren, da unser Endziel ein vollständig dezentralisiertes Netzwerk ist. Der Plan sieht wie folgt aus:
Die Governance für die Phasen der Beendigung erfolgt derzeit: HIP-29 . Wenn die Governance genehmigt wird, werden zwei Knoten pro Shard beendet, sodass es drei Knoten pro Shard sind. Jeder Knoten hat einen Steckplatz weniger, sodass es vier Steckplätze pro Knoten und zwölf Steckplätze pro Shard gibt. Sobald die Änderung umgesetzt ist, wird das Netzwerk über eine erhöhte externe Stimmmacht verfügen.
Harmony hat verschiedene Maßnahmen implementiert, um die Stabilität und Verfügbarkeit des Netzwerks sicherzustellen, einschließlich der Verwendung mehrerer Konsensmechanismen (FBFT und EPoS), automatischer Failover-Mechanismen sowie Echtzeit-Überwachungs- und Warnsysteme. Diese garantieren bereits die Robustheit unseres Netzwerks. Mit zunehmender Dezentralisierung des Netzwerks wird jedoch die Abhängigkeit von der externen Validator-Community zwangsläufig zunehmen. Harmony wird sich weiterhin mit der Community abstimmen, um die Widerstandsfähigkeit des Netzwerks weiter zu gewährleisten.
Die mehreren Phasen werden es Harmony ermöglichen, mit der Community zusammenzuarbeiten, um eine robuste Lösung für ein dezentrales, sicheres Netzwerk zu finden.
Sorge um Zentralisierung
Auch wenn es sich nicht speziell um den HIP-29-Vorschlag handelt, gibt es ein Problem, das wir ansprechen müssen, wenn die externe Stimmmacht zunimmt: die Zentralisierung. Eine Erhöhung der externen Stimmrechte kann auch die Zentralisierung des Netzwerks erhöhen, da möglicherweise größere Interessengruppen die Stimmrechte übernehmen können. Eine kleinere Teilnehmerzahl mit größeren Anteilen könnte einen größeren Einfluss auf die Entscheidung des Netzwerks haben.
Zuvor wurde ein Hard Fork implementiert, um eine Begrenzung der BLS-Schlüssel pro Shard festzulegen. Die Motivation bestand darin, die Wahrscheinlichkeit zu verhindern, dass ein Shard von einer kleinen Gruppe sich schlecht benehmender Validatoren übernommen wird. Jeder Validator hätte eine Begrenzung der Anzahl der Schlüssel, die er pro Shard besitzt.
Unabhängig davon muss Harmony weitere Maßnahmen ergreifen, um die Dezentralisierung weiter voranzutreiben. Es gibt mehrere Vorschläge, wie zum Beispiel die Begrenzung der Gesamtzahl der Schlüssel pro Validator, die Begrenzung der Anzahl der Belohnungen pro Validator und die Begrenzung des Maximums, das ein „Wal“ pro Validator delegieren kann. Beachten Sie, dass es sich lediglich um Vorschläge handelt, die umgesetzt werden können oder auch nicht. Unabhängig davon wird Harmony mit der Community zusammenarbeiten, um den am besten geeigneten Ansatz zur Erreichung der Dezentralisierung zu finden. Harmony wird weitere Updates zur Lösung des Problems der Zentralisierung bereitstellen.
Bootknoten
Bootnodes sind für das Bootstrapping von Knoten im Netzwerk verantwortlich. Wenn ein neuer Knoten in das Netzwerk eingeführt wird, stellt bootnode eine Reihe von Knoten bereit, mit denen die neuen Knoten synchronisiert werden können. Die Synchronisierung würde im Peer-to-Peer-Verfahren erfolgen. Dadurch verfügt der neue Knoten über die erforderlichen Daten, um am Netzwerk teilzunehmen.
Harmony hostet derzeit vier Bootknoten. Bootnodes sind relativ günstiger als andere Dienste, da leichtgewichtige Instanzen die Funktionalität bewältigen können. Harmony plant, alle Dienste vollständig zu externalisieren, aber Bootnodes sind derzeit ein wichtiger Dienst, der Teil unseres Netzwerks sein muss.
DNS-Knoten (Synchronisierung).
DNS-Knoten sind eine weitere Lösung zum Synchronisieren von Knoten. Es handelt sich um vollständige Knoten, die Harmony für die Synchronisierung bestimmt. Wenn Knoten nicht von Peers synchronisiert werden möchten, die von Bootnodes gebootet werden, können sie von den von Harmony betriebenen DNS-Knoten aus synchronisieren. Die Interaktion zwischen DNS-Knoten und Knoten, die eine Synchronisierung erfordern, ähnelt dem Server- und Client-Modell. Sie kommunizieren nicht miteinander. Vielmehr rufen neue Knoten DNS-Knoten an und diese antworten einfach mit den entsprechenden Daten.
Die Wartung von DNS-Knoten ist aufgrund des Bedarfs an hoher Bandbreite und großem Speicher teuer. Um unsere Infrastruktur und Kosten zu optimieren, plant Harmony, die DNS-Knoten außer Betrieb zu nehmen und die Synchronisierungsfunktion in einer anderen Form zu betreiben: Stream-Synchronisierung.
Stream-Synchronisierung
Knoten müssen mit dem neuesten Stand des Blockchain-Netzwerks synchronisiert sein. Aus diesem Grund wird die Stream-Synchronisierung als neue Methode für Harmony-Knoten implementiert, um ihre Zustände zwischen Knoten zu synchronisieren.
Die Stream-Synchronisierung umfasst eine Reihe von Schritten, die jeder Knoten befolgt, um sicherzustellen, dass sein Status aktuell ist. Zunächst findet der Knoten während des Bootstrapping-Vorgangs eine Reihe benachbarter Knoten. Der Knoten verwendet einen Verbindungsmanager, um alle diese Verbindungen zu verwalten. Anschließend erstellt der Knoten über einen Stream-Manager Stream-Kanäle für jeden Nachbarn. Sobald die Stream-Kanäle eingerichtet sind, kann der Knoten mit der Synchronisierung seines Status beginnen.
Der Knoten fragt zunächst jeden Nachbarn über einen Anforderungsmanager nach seiner aktuellen Blockhöhe. Sobald die Anforderungen erfüllt sind, kann der Knoten die maximale Blockhöhe berechnen. Bei maximaler Blockhöhe fordert der Knoten dann jeden Nachbarn auf, einen Teil seines Zustands zu teilen. Der Freigabeprozess wird fortgesetzt, bis der Knoten alle Zustände bis zum aktuellen Block abruft.
Die Harmony-Stream-Synchronisierung verwendet eine eindeutige ID, um Knoten in denselben Shards zu identifizieren. Knoten in der Nicht-Beacon-Kette verwenden einen Downloader, um die letzten Blöcke jeder Epoche aus der Beacon-Kette abzurufen. Diese Blöcke sind für die Knoten in der Nicht-Beacon-Kette von wesentlicher Bedeutung, da sie den Abruf von Shard-Zuständen und Ausschusslisten ermöglichen.
Der Vorteil der Stream-Synchronisierung besteht darin, dass sie eine schnellere Zustandssynchronisierungszeit bei minimaler Netzwerkbandbreite bietet. Durch den Prozess wird auch das gesamte Netzwerk dezentraler, da die Knoten nicht auf bestimmte Knotengruppen angewiesen sind. Stattdessen können Knoten von jedem innerhalb desselben Shards synchronisiert werden. Letztendlich kann die Stream-Synchronisierung nicht nur als Upgrade der herkömmlichen Peer-to-Peer-Synchronisierung, sondern auch der DNS-Synchronisierung angesehen werden. Es beseitigt die Abhängigkeit von DNS-Knoten und beseitigt die hohe Überlastung der wenigen designierten Synchronisierungsknoten. Die Veröffentlichung der Stream-Synchronisierung ist für das erste Quartal 2023 geplant. Sobald die Funktion vollständig funktionsfähig ist, wird Harmony DNS-Knoten außer Betrieb nehmen.
Snapshot-Knoten
Snapshot-Knoten werden zum Speichern von Backups der Datenbank verwendet. Snapshot-Knoten wiederholen den Prozess der Synchronisierung und Erfassung von Snapshots im dezentralen Speicher Storj. Die Snapshots ermöglichen es neuen Knoten, effizient mit dem aktuellen Status des Netzwerks Schritt zu halten.
Ohne Snapshot-Knoten müsste ein neuer Knoten alle Daten von anderen Peer-Knoten oder DNS-Knoten synchronisieren. Aufgrund der immensen Datenmenge würde der Synchronisierungsprozess jedoch unverhältnismäßig viel Zeit in Anspruch nehmen und beide Knoten belasten. Um diese Komplikation zu vermeiden, würden neue Knoten zunächst Daten von Snapshot-Knoten abrufen. Sobald die Synchronisierung vom Snapshot-Knoten abgeschlossen ist, können neue Knoten den Rest der Daten von anderen vollständigen Knoten synchronisieren, unabhängig davon, ob es sich um Peer- oder DNS-Knoten handelt. Dies würde die Datenmenge für andere vollständige Knoten auslagern und das Netzwerk insgesamt effizienter machen.
Harmony betreibt derzeit einen Snapshot-Knoten pro Shard und verfügt damit über vier Dienste innerhalb unseres Mainnets. Snapshot-Knoten können nur dann außer Betrieb genommen werden, wenn die Synchronisierung von Harmony einigermaßen schnell erfolgt. Bis dahin wird der Dienst betrieben, um den Komfort des Netzwerks zu gewährleisten.
Archivknoten
Archivknoten enthalten alle Daten der Harmony-Blockchain. Derzeit enthält ein einzelner Archivierungsknoten in Shard 0 22 TB Daten. Die Einrichtung eines neuen Archivierungsknotens würde je nach Konnektivität des Knotens etwa drei Wochen oder länger dauern. Aufgrund der immensen Größe ist es für uns von entscheidender Bedeutung, eine saubere Kopie zu erhalten.
Harmony verwaltet derzeit drei Archivierungsknoten. Der Zweck der Redundanz besteht darin, einen Single Point of Failure zu verhindern. Wenn beispielsweise ein Archivknoten nicht funktioniert und eine neue Einrichtung erforderlich ist, ist ein anderer Archivknoten mit der Synchronisierung des nicht funktionierenden Knotens beschäftigt. Zu diesem Zeitpunkt steht nur ein Archivknoten zur Bearbeitung externer Anfragen zur Verfügung. Um einen Netzwerkausfall zu verhindern, unterhält Harmony mehr als zwei Archivierungsknoten.
Beim aktuellen Stand von Harmony reichen drei Archivierungsknoten aus, um den Datenverkehr abzuwickeln und die Robustheit des Netzwerks zu gewährleisten. Wenn höhere Anforderungen erforderlich sind, skaliert Harmony die Archivierungsknoten, um die Netzwerkanforderungen zu erfüllen.
Abschluss
Der Fokus von Harmony liegt auf wesentlichen Fortschritten und entsprechenden Änderungen in unserer Infrastruktur. Wir freuen uns darauf, die Auswirkungen zu erleben, die sie auf unser Netzwerk haben werden. Bleiben Sie bitte auf dem Laufenden für weitere Infrastruktur- und Protokoll-Updates!

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































