Was ist stake-gewichtete Quality of Service (QoS)?
Stake-gewichtete QoS (Quality-of-Service) ist ein Implementierungsmerkmal, das es Leaders (Blockproduzenten), wenn aktiviert, ermöglicht, Transaktionen zu identifizieren und zu priorisieren, die über einen gestakten Validatoren weitergeleitet werden – als zusätzlichen Sybil-Resistenz-Mechanismus. Da Solana ein Proof-of-Stake-Netzwerk ist, liegt es nahe, den Nutzen des Stake-Weightings auf die Transaktionsqualität auszuweiten. In diesem Modell hätte ein Validatoren mit 0,5 % Stake das Recht, bis zu 0,5 % der Pakete an den Leader zu übermitteln, und wäre in der Lage, Sybil-Angriffe aus dem Rest des Netzwerks abzuwehren.
Betreiber, die diese Funktion aktivieren, verbessern die Sicherheit und Leistung des Netzwerks, indem sie die Wahrscheinlichkeit verringern, dass Validatoren mit wenig oder keinem Stake (niedrigere Qualität) Transaktionen von qualitativ hochwertigeren (höherem Stake) Validatoren "übertönen" können (auch bekannt als verbesserte Sybil-Resistenz).
Ein potenzieller Vorteil der Implementierung von Stake-gewichteter QoS könnte realisiert werden, wenn bestimmte Vereinbarungen zwischen Validatoren und RPC-Knoten bestehen. RPC-Knoten könnten mehr Transaktionen in Blöcken platzieren, indem sie einer Peering-Vereinbarung mit Validatoren zustimmen, und Validatoren könnten mehr Kapazität an RPC-Knoten verkaufen. Diese Vereinbarungen müssen direkt zwischen RPC-Betreibern und Validatoren getroffen werden und umfassen die Implementierung der nachfolgend in diesem Dokument beschriebenen Schritte, um das Peering abzuschließen.
Wem nützt die stake-gewichtete QoS?
Kommerzielle RPC-Infrastrukturbetreiber und Börsen werden wahrscheinlich zu den Hauptnutznießern der stake-gewichteten QoS gehören. RPC-Betreiber werden in einer idealen Position sein, um Deals mit gestakten Validatoren zu erwerben oder auszuhandeln, die es ihnen ermöglichen, insgesamt einen verbesserten Prozentsatz an Transaktionen in Blöcken zu erzielen. Börsen (oder andere Einrichtungen), die ihre eigenen Validatoren-Knoten und RPC-Knoten auf derselben Infrastruktur betreiben, werden die Funktion intern aktivieren können, in dem Vertrauen, dass die auf ihrer eigenen Infrastruktur laufenden RPC-Knoten vertrauenswürdig sind.
Warum ist stake-gewichtete QoS wichtig?
Mit aktivierter stake-gewichteter QoS hat ein Validatoren mit 1 % Stake das Recht, bis zu 1 % der Pakete an den Leader zu übermitteln. Auf diese Weise ist garantiert, dass Validatoren mit höherem Stake eine höhere Servicequalität erhalten, was verhindert, dass qualitativ minderwertige Validatoren (mit weniger Stake) diese Transaktionen böswillig überschwemmen, was die allgemeine Sybil-Resistenz erhöht.
Anders ausgedrückt: Stellen Sie sich vor, wie die Welt aussähe, wenn Autos mit nur einem Passagier ungehindert auf der Fahrspur für Fahrgemeinschaften fahren könnten. Bald würde diese Fahrspur, die darauf ausgelegt ist, mehr Menschen auf derselben Autobahnstrecke zu befördern, nutzlos werden. Die Gesamtfunktionalität der Autobahn wäre beeinträchtigt und weniger Pendler könnten ihr Ziel erreichen. Dieser Effekt ähnelt dem, was passiert, wenn Validatoren mit geringem Stake Transaktionen mit derselben Priorität wie Validatoren mit hohem Stake an den Leader übermitteln dürfen.
Wer sollte die stake-gewichtete QoS aktivieren?
Stake-gewichtete QoS sollte von Validatoren-Knoten aktiviert werden, die mit hochvertrauenswürdigen RPC-Knoten gekoppelt sind. Dies ist in Situationen hilfreich, wie z. B. dem Betrieb eines RPC und eines Validatoren in derselben Infrastruktur, wo das Vertrauensniveau bereits hoch ist. Stake-gewichtete QoS funktioniert am besten für Hochvertrauens-Konfigurationen und erfordert, dass Validatoren und RPC vorab eine Vereinbarung treffen, bevor die Funktion aktiviert wird. Es wird dringend empfohlen, dass Validatoren nicht versuchen, stake-gewichtete QoS mit nicht vertrauenswürdigen RPCs zu aktivieren.
Stake sollte auf blockproduzierende Validatoren angewendet werden. Es ist nicht notwendig, empfohlen oder wirksam, Stake an RPC-Server zu delegieren.
Wie funktioniert stake-gewichtete QoS?
Mit aktivierter stake-gewichteter QoS erhalten RPC-Knoten, die mit einem Validatoren gekoppelt sind, einen "virtuellen" Stake in Bezug darauf, wie dieser Leader den eingehenden TPU-Verkehr (Transaction Processing Unit) von diesem RPC-Knoten behandelt – etwas, das normalerweise nicht möglich ist. Per Definition sind RPC-Knoten "ungestakt" und "nicht-abstimmend", auch bekannt als "nicht-konsensbasiert", und können nicht auf die Vorteile priorisierter Transaktionen durch Staking in der gleichen Weise wie Konsensknoten zugreifen. Wie nutzt man stake-gewichtete QoS, um Transaktionen zu platzieren? Die Aktivierung von stake-gewichteter QoS erfordert die Konfiguration eines Validatoren-Knotens und eines RPC-Knotens, um eine vertrauenswürdige Peer-Beziehung zu bilden. Dies umfasst separate Konfigurationsschritte sowohl für den Validatoren-Knoten als auch für den RPC-Knoten, die nachfolgend aufgeführt sind. Betreiber, die stake-gewichtete QoS aktivieren möchten, benötigen vor dem Start Folgendes:
Einen Validatoren mit Stake, der im Netzwerk läuft, UND einen RPC, der mit dem Validatoren gepeert ist
Stake-gewichtete QoS funktioniert nicht, es sei denn, BEIDE Seiten sind ordnungsgemäß konfiguriert.
Konfiguration des Validatoren-Knotens
Auf dem Validatoren müssen Sie --staked-nodes-overrides /path/to/overrides.yml aktivieren. Das Flag --staked-nodes-overrides hilft dem Validatoren, Transaktionen zu priorisieren, die von bekannten Quellen gesendet werden, um deren Transaktionen Stake zuzuweisen. Dies kann einem Validatoren helfen, bestimmte Transaktionen von bekannten Hosts gegenüber anderen zu priorisieren und die Nutzung von stake-gewichteter QoS mit RPCs zu ermöglichen. RPCs sollten in keiner Weise gestakt werden.
Derzeit gibt die stake-gewichtete QoS einer stake-gewichteten Priorität 80 % der TPU-Kapazität eines Leaders. Es gibt jedoch Konfigurationsoptionen, mit denen TPU-Peers virtuell unterschiedliche Stake-Gewichtungen zugewiesen werden können, einschließlich der Zuweisung von virtuellem Stake an ungestakte Peers.
Die Overrides-Datei für --staked-nodes-overrides sieht wie folgt aus:
staked_map_id:pubkey1: 1000000000000000pubkey2: 4000000000000000
staked_map_id enthält eine Zuordnung von Identity-Public-Key zum Stake-Betrag in lamport, der auf jeden RPC angewendet werden soll. Wenn gesetzt, priorisiert der Validatoren QUIC-Verbindungen mit dem RPC, der unter diesem Identity-PublicKey gefunden wird, und weist deren Transaktionen einen Stake-Betrag zu. Die 80 % der TPU-Kapazität des Leaders werden proportional basierend auf den in der staked-nodes-overrides-Datei angegebenen lamport-Beträgen und dem bestehenden Cluster-Stake aufgeteilt.
Konfiguration des RPC-Knotens
Auf dem RPC müssen Sie --rpc-send-transaction-tpu-peer verwenden, um Transaktionen an einen bestimmten Leader weiterzuleiten. Die genaue Verwendung wäre --rpc-send-transaction-tpu-peer HOST:PORT. Der Host ist die IP-Adresse des Leaders, auf dem Sie --staked-nodes-overrides aktiviert haben, und der Port ist der QUIC-TPU-Port dieses Hosts. Der QUIC-TPU-Port eines Leaders kann durch einen RPC-Aufruf an getClusterNodes ermittelt werden.
Das Peering würde wie folgt aussehen:
Diagramm von RPCs, die mit Validatoren für stake-gewichtete QoS peeren
Fazit
Stake-gewichtete QoS ist eine optionale Funktion, die in v1.14 des Solana-Clients eingeführt wurde, der heute als Agave bekannt ist. Agave ist eine geforkte Version des Solana Labs-Clients, die zum aktiven Branch geworden ist, der vom Anza-Team verwendet wird – einer Ausgliederungsorganisation, die sich aus dem ehemaligen Solana Labs-Ingenieursteam zusammensetzt.
Die stake-gewichtete QoS-Funktion wird höchstwahrscheinlich für RPC-Infrastrukturbetreiber nützlich sein, die in der Lage sind, vertrauenswürdige Beziehungen mit gestakten Knotenbetreibern aufzubauen. Sie wird auch für Börsen nützlich sein, die sowohl RPC-Knoten als auch Validatoren-Knoten betreiben und in der Lage sind, intern Hochvertrauens-Verbindungen herzustellen.
Is this page helpful?