NRVO (Named Return Value Optimization), Quorum Balancing usw.


Hier sind diejenigen, an denen unser Entwicklungsteam hart gearbeitet hat, um eine Handvoll neuer Funktionen im Zusammenhang mit der AGORA-Architektur zu entwickeln.

Einfach ausgedrückt, wir müssen wissen, welcher Algorithmus für die Quorumzuweisung zu befolgen ist, damit das Protokoll die Zensur verhindert, während es geöffnet ist.

Wir können zwei entartete Fälle für den Quorumausgleich betrachten:

  • Wenn ein einziges Quorum mit allen Knoten vorhanden ist, wird die Sicherheit maximiert, ebenso wie der Kommunikationsaufwand.
  • Wenn jeder Knoten in seinem eigenen Quorum lebt, gibt es keine Sicherheit, aber es gibt keine Kommunikation: Eine weniger entartete Version hätte einen Ring, bei dem jeder Knoten zu zwei Quorums mit jeweils einem anderen Knoten gehört (oder: zwei Quorums mit zwei Knoten).

Das Ziel des Quorum Balancing besteht darin, ein Netzwerkdiagramm mit optimaler Sicherheit und Overhead zu erstellen. Beachten Sie, dass die Knoten, die Quorum-Schnittpunkte sind, wahrscheinlich Knoten mit höherem Einsatz sind, da sie mehr zu verlieren haben.

Beispiel für Regeln:

  • Es gibt kein Quorum mit <3 Knoten;
  • Es gibt kein Quorum mit> 7 Knoten;
  • Ein wirtschaftlicher Quorumwert muss> = 350.000 BOA sein;
  • Die obersten X-Staker (X = 5?) Werden in verschiedenen Quorums platziert und als „Samen“ verwendet.

Unsere Definitionen hierfür lauten wie folgt:

  • Einem neuen Prüfer wird sofort ein Quorum zugewiesen.
  • Quoren werden regelmäßig gemischt (wie oft?);
  • Es gibt einen ausreichenden Quorumschnittpunkt (wie viel?).
  • Validatoren werden auf unvorhersehbare Weise auf die Quorums verteilt.
  • Validatoren sind ziemlich ausgewogen auf die Quorums verteilt.
  • Die Verteilung des Quorums hängt nur vom global verfügbaren Status ab.

Wir planen, die Verwendung des Serializers für die Netzwerkkommunikation zu erweitern. Derzeit verwenden wir den weniger als idealen JSON-Ansatz, der viel Overhead verursacht. Aufgrund von Bedenken hinsichtlich der Effizienz und der internen Zeiger (z. B. std :: string) sollte der Deserializer jedoch keine ungerechtfertigte Bewegung ausführen.

Unsere Definitionen hierfür lauten wie folgt:

  • Es gibt ein Dienstprogramm, das testet, ob sich ein Typ während der Deserialisierung bewegt.
  • Tests werden hinzugefügt, damit SCPEnvelope nicht verschoben wird.

Wir müssen den zufälligen Startwert aus abnormalen Situationen eines Knotens wiederherstellen. Ein kritisches Problem ist der Verlust der Quelle des zufälligen Startwerts, was bedeutet, dass ein Validator seine Ablagerung verlieren könnte, wenn er keine Vorbilder enthüllen kann. Wir müssen also einen Weg implementieren, um die Quelle des zufälligen Startwerts wiederherzustellen und die Quelle von einem privaten Schlüssel abzuleiten.

Unsere Definitionen hierfür lauten wie folgt:

  • Leiten Sie die Quelle des zufälligen Startwerts aus dem privaten Schlüssel ab
  • Ändern Sie den Prozess zum Abrufen eines Vorbilds von einem Knoten gemäß dem neuen Mechanismus zum Erstellen von Vorbildern
  • Stellen Sie die Quelle des zufälligen Startwerts wieder her, wenn ein Knoten gestartet wird oder wenn das Problem auftritt
  • Erstellen Sie einen zufälligen Startwert neu, wenn alle Vorbilder angezeigt werden

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

Werbung: Immobilienmakler HeidelbergMakler Heidelberg

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