Testen von Gossipsub mit Genesis – Whiteblock

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining


Ende August 2019 erhielt Whiteblock von der Ethereum Foundation und ConsenSys ein gemeinsames Stipendium. Lesen Sie unseren Blogbeitrag für weitere Details und finden Sie die offizielle Ankündigung der EF hier.

Im Einzelnen konzentrierten wir uns auf das Benchmarking von Gossipsub, einem Allzweck-Pubsub-Protokoll. Gossipsub arbeitet mit Libp2p, dem Netzwerkstack für viele Web3-Projekte, einschließlich Eth2. Diese Projekte werden von einer Reihe von Mitarbeitern gepflegt, die von Protocol Labs betreut werden.

Das Hauptergebnis unserer Forschung war ein detaillierter Bericht, der auf unserem GitHub abgerufen werden kann. Lesen Sie weiter, um einen Überblick über die Forschungsergebnisse zu erhalten. Wir haben Tests unter verschiedenen Bedingungen durchgeführt, um die Lebensfähigkeit von Gossipsub als wichtige Netzwerkkomponente zu beweisen.

Anfangsparameter und Peer-Topologie

Hier sind die Parameter und ihre Einstellungen:

  • Anzahl der Klatschknoten: 95
  • Globale Nachricht / Sek .: 200
  • Aufwärmzeit: 60s
  • Testzeit: 180s
  • Abkühlzeit: 600s
  • Nachrichtengröße: 1000 Bytes
  • Erkennung (mDNS): Aus
  • Routing (kad-DHT): Aus
  • Sicherheit: SECIO
  • Peering: Barabasi-Albert (Startwert = 42, variierende Eingangsgradparameter) – {2, 6, 12, 16}

Das Barábasi-Albert-Modell (B-A) beschreibt die Verbindungen zwischen Knoten in einem verteilten Netzwerk. Die Topologie arbeitet mit einem Gradparameter, mals Eingabe. Die folgende Grafik zeigt, wie sich die Netzknotenverbindung auswirkt.

Von HeMath – Eigene Arbeit, CC BY-SA 4.0

Es ist wichtig zu beachten, dass die Topologie von Eth2 vom implementierten Erkennungsprotokoll abhängt. Trotzdem ist es immer noch nützlich, ein bekanntes Netzwerktopologiemodell wie B-A zu testen.

Topologietest

Kommen wir nun zu einigen Ergebnissen. Beim ersten Testlauf wurden alle Parameter als Konstanten mit Ausnahme der Parameter für den Eingangsgrad B-A beibehalten:

Bei jeder Erhöhung der Eingaben für den B-A-Grad blieb die allgemeine Form der Verteilung der Nachrichtenverbreitungszeit gleich. Während es in jedem Histogramm geringfügige Unterschiede gibt, folgte die anfängliche Spitze der kurzen Nanozeiten und Höhen des ersten Lappens keinem bestimmten Trend. Die Auswirkungen von Gradverteilungen auf die Verbreitungszeit von Nachrichten sind nicht schlüssig. Das Vorhandensein von Lappen kann nicht durch das GossipSubHeartbeatInterval erklärt werden[6], die auf den Standardwert von 1 Sekunde eingestellt wurde. Ein größerer Satz von Testläufen wäre erforderlich, um die Auswirkungen von Gradverteilungen auf die Zeit der Nachrichtenverbreitung zu bestimmen.

Testreihe

Nach den Kontrolltests wurden 6 zusätzliche Tests durchgeführt, die Gossipsub auf verschiedene Netzwerkbeeinträchtigungen einwirken lassen. Weitere Informationen zu den Testparametern finden Sie im vollständigen Bericht:

  • Allgemeine Topologie-Grundlinie
  • Latenz
  • Paketverlust
  • Bandbreite
  • Hohe Latenz
  • Stresstest

Diese Tests stellen eine gewisse Belastung für das Protokoll dar, um Probleme bei der Implementierung von go-libp2p aufzudecken. Die Tests wurden über die Whiteblock Genesis-Plattform unter Verwendung einer Abzweigung (mit vielen Änderungen) der Libp2p-Host-Implementierung der Phase 1 ausgeführt und zufällige Topologien unter Verwendung des Barabasi-Albert-Modells generiert. Im Allgemeinen wirkte sich die Gradverteilung eines Netzwerks auf den Last Delivery Hop (LDH) aus. Die LDH ist die Anzahl von Sprüngen, die eine einzelne Klatschnachricht gemacht hat, als sie den absoluten letzten Empfangsknoten erreicht hat (d. H. Um die Nachrichtenverbreitung abzuschließen). Es besteht eine Korrelation zwischen dem Konnektivitätsgrad und dem letzten Zustellungssprung.

Wie in der obigen Grafik gezeigt, ist zu sehen, dass mit zunehmendem Grad die durchschnittliche Anzahl der Lieferungssprünge abnahm. Wir schlagen vor, dass die Eth2-Peering-Technologie eine Potenzgesetz-Gradverteilung vermeiden sollte, die zu Randknoten mit Peer-Mengen von 2 führt. Dadurch wird die geringe Leistung vermieden, die in allen Phase-2-Tests mit B-A-Eingang m = 2 (erste Spalte) zu sehen ist.

Ergebnisse der Nachrichtenverbreitung („Nano-Gesamtzeit“)

Die protokollierten Gesamtzeiten für die Nachrichtenverbreitung geben die Zeit an, die jede Nachricht benötigt, um ihr endgültiges Ziel zu erreichen. Die Netzwerkpfade, die Klatschnachrichten einnehmen, werden vollständig vom Klatschprotokoll sowie von der generierten Netzwerktopologie bestimmt. Die Nachrichtenzeit variiert von Test zu Test, wie in den Ergebnissen gezeigt, und es wurde festgestellt, dass die sparseren Netzwerke (geringerer Konnektivitätsgrad) längere Zeit benötigen, um ihr Ziel zu erreichen, als die Tests mit dichteren Netzwerktopologien.

Die Verbreitungszeiten für jede der Testreihen sind in der folgenden Grafik mit jeweils einer anderen Farbe überlagert. Es ist klar, dass verschiedene Netzwerkbeeinträchtigungen in direktem Zusammenhang mit der Zeit stehen, die eine Nachricht benötigt, um das Netzwerk zu durchlaufen.

Nächste Schritte – Community Solicited Research

Während die ersten beiden Phasen dieser Testbemühungen zeigen, dass das Libp2p-Gossipsub-Protokoll für Ethereum 2.0-Spezifikationen ausreichend leistungsfähig ist, sollten Tests mit einem größeren Netzwerk den Hauptfokus für zukünftige Arbeiten bilden. Vor dem Testen größerer Netzwerke sollten verschiedene Verbesserungen an der Implementierung von go-libp2p-pubsub sowie an der Testmethode vorgenommen werden. Nachfolgend finden Sie eine nicht vollständige Liste der Aufgaben für die Community:

  • Ein dauerhafter Fix, bei dem die Größe der Golang-Kanalwarteschlange in go-libp2p-pubsub nicht manuell erhöht werden muss, sollte implementiert werden.
  • Für Tests sollte go-libp2p-pubsub-tracer in die Node-Implementierung integriert werden
  • Fehlerhafte Nachrichten-Interarrival-Zeiten sollten untersucht und behoben werden
  • Die Testmethode sollte für umfangreichere Tests auf die nächste Version von Whiteblock Genesis portiert werden
  • Integrieren Sie floodsub zum Vergleich in die Testmethodik.
  • Mit diesen zusätzlichen Funktionen können weitere Tests durchgeführt werden. Zukünftige Arbeiten sollten schließlich die Variation von Gossipsub-Parametern (z. B. GossipSubD, GossipSubHeartbeatInterval usw.) bei verschiedenen Netzwerkgrößen umfassen.

Wir möchten uns nochmals bei ConsenSys und der Ethereum Foundation für die Finanzierung dieser Forschung bedanken. Zusätzlicher Dank geht an Protocol Labs Raúl und Proto für ein konsequentes Feedback zu unserer Strategie.

Wenn Sie die Gossipsub-Tests selbst ausprobieren möchten, können Sie auf das Yaml in unserem Beispielrepo zugreifen:

Wir würden gerne zusätzliche Tests von anderen Community-Mitgliedern mit anderen Parametereinstellungen sehen. Wenn Sie Feedback haben, nehmen Sie bitte an der Diskussion in unserem Community-Forum oder in unserem Telegramm teil.

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close