
Autor: dezentral.co Quelle: x,@dezentralisierte Übersetzung: Shan Oubba, Bit Chain Vision Realm
Die Expansion von Transaktionen war schon immer ein heißes Thema in der Branche.In den letzten Wochen haben wir untersucht, wie Monad zur Verbesserung der Transaktionsverarbeitungsgeschwindigkeit (TPS) zur Verbesserung der Transaktionsgeschwindigkeit beiträgt.Dieser Artikel erläutert das operative Prinzip von Monad im Detail.
TPS ist das Maß für Maßnahmen, auf die wir immer geachtet haben.Wir hoffen, dass die Blockchain höhere TPs unterstützen kann, um mehr Benutzer und Anwendungen aufzunehmen.Die folgende Abbildung zeigt die TPS -Anzahl von Ethereum und L2.Bisher hat keine Kette die 100 TPS -Marke überschritten.Es ist zu beachten, dass TPS ein allgemeiner Begriff zur Messung der Skalierbarkeit ist.Da nicht alle Transaktionen gleich sind, sind einfache TPS -Daten nicht genau genug.Aus Gründen der Bequemlichkeit betrachten wir TPS jedoch immer noch als Indikatoren zur Messung der Skalierbarkeit.
>
Wie können Sie die TPS verbessern?
Eine Methode besteht darin, ein neues System von Grund auf neu zu erstellen, wie Solana.Solana opferte die Kompatibilität mit EVM für Geschwindigkeit.Es verwendet Multi -Thread -Ausführung anstelle einer einzelnen Thread -Ausführung (kann analoge Multi -Core -CPU- und Einzelcore -CPU analoge Multi -Core -CPU- und Einzelcore -CPUs verarbeiten), parallele Transaktionen verarbeiten und unterschiedliche Konsensmechanismen verwenden.
Die zweite Methode besteht darin, zentralisierte Sortierer auszuführen und zu verwenden, um Ethereum mit der Kette zu erweitern.
Die dritte Methode besteht darin, EVM in separate Komponenten zu zerlegen und zu optimieren, um die Skalierbarkeit zu verbessern.
Monad ist ein neu erhobener EVM -kompatibler L1 -Blockchain mit neu erhobenen 25 Millionen US -Dollar.Monad verwendet die dritte Methode, um die Skalierbarkeit zu verbessern.
Im Folgenden werden einige wichtige Änderungen von Monad erörtert.
Parallele Ausführung
Serienausführungstransaktion (Virtual Machine) Ethereum.Bevor die Ausführung der vorherigen Transaktion abgeschlossen ist, muss die nächste Transaktion gewartet werden.Zum Beispiel: Stellen Sie sich eine Plattform für ein Motorrad -Montage -Lager vor.Die meisten Lkw werden zu Motorradteilen transportiert (jeder LKW ist mit allen Teilen ausgestattet, die für die Herstellung von 50 Motorrädern erforderlich sind).Es gibt vier verschiedene Funktionen in den Assembly -Lagerhäusern, und jede Funktion ist für -uninstalliert, klassifiziert, montiert und geladen.
>
In den aktuellen EVM -Einstellungen gibt es nur eine Plattform, die zum Laden und Entladen von Waren verwendet wird.Wenn der LKW anhält, werden die Motorradteile also deinstalliert, klassifiziert, montiert und geladen auf demselben LKW geladen.Wenn das Klassifizierungsteam funktioniert, warten andere Teams.Wenn ihre Jobs als unterschiedliche Slots angesehen werden, arbeitet jedes Team nur einmal alle vier Slots.Dies hat zu einer starken Effizienz geführt und auf eine vereinfachte Weise festgelegt.
Jetzt stelle ich mir vier Plattformen mit unabhängigen Lade- und Entladungsbereichen vor.Selbst wenn das deinstallierte Team nur mit einem LKW gleichzeitig umgehen kann, müssen es nicht darauf warten, dass die nächsten drei Slots funktionieren.Sie können direkt zum nächsten LKW wechseln, um mit der Arbeit zu beginnen.
Gleiches gilt für Klassifizierungs-, Montage- und Ladeteams.Wenn der LKW deinstalliert wird, fährt er zum Ladebereich und wartet darauf, dass das Ladungsteam das montierte Motorrad lädt.Daher führen nur eine Plattform- und Ladebereichslager alle Vorgänge in der Reihenfolge aus, während Lagerhäuser mit 4 Plattformen und unterschiedlichen Lade- und Entladeflächen parallel um Aufgaben erledigen können.
>
Monad kann als Lagerinfrastruktur mit mehreren LKW -Plattformen angesehen werden, ist jedoch viel komplizierter als dieses Beispiel.Wenn es eine Abhängigkeit zwischen LKWs gibt, nimmt die Komplexität zu.Was ist beispielsweise, wenn alle Teile auf einem LKW ohne Herstellung von 50 Motorrädern hergestellt werden müssen?Die Transaktion ist nicht immer unabhängig.Daher muss bei parallelem MONAD ein gegenseitiges abhängige Transaktionen verarbeiten.
Wie mache ich das?Es führt eine Operation aus, die als optimistische und parallele Ausführung bezeichnet wird.Die Vereinbarung kann nur unabhängige Transaktionen parallel durchführen.Betrachten Sie beispielsweise 4 Transaktionen, bei denen das Gleichgewicht von Joel 1 ETH ist:
-
Joe sendet 0,2 ETH nach Saurabh.
-
Sid (Sid) wirft ein Nft.
-
JOR schickt 0,1 ETH nach Westdeutschland.
-
Shlok (Shlok) Kaufen Sie Pepe.
Alle diese Transaktionen werden parallel ausgeführt und haben die Ergebnisse der Bestätigung des Aufhängens.Wenn der zu behandelnde Ausgang in Konflikt mit der ursprünglichen Eingabe einer Transaktion besteht, wird die Transaktion erneut ausgeführt.Die Transaktionen 2 und 4 sind unabhängig voneinander, sodass ihre zu behandelnde Behandlung nicht mit der Eingabe anderer Transaktionen in Konflikt steht.Aber 1 und 4 sind nicht unabhängig.
Bitte beachten Sie, dass alle 4 Transaktionen aus demselben Ausgangszustand (Joel -Balance 1 ETH) hier über Joels Gleichgewicht befassen.Nachdem Joels Gleichgewicht 0,2 ETH geschickt hat, wird er 0,8 ETH.Nachdem sein Gleichgewicht 0,1 ETH nach Westdeutschland geschickt hatte, wurde er 0,9 ETH.Das Ergebnis wird nach dem anderen eingereicht, um sicherzustellen, dass der Ausgang nicht mit Eingaben in Konflikt steht.Nach der Einreichung der Ergebnisse der 1 wurde Joers neues Gleichgewicht zu 0,8 ETH.
Dieser Ausgangskonflikt in Konflikt mit der Eingabe von 3.Rexecute 3 mit einem ETH -Eingang von 0,8 jetzt.Nachdem Joel nach 3 Jahren ausgestellt wurde, wurde er 0,7 ETH.
Monaddb
>
Zu diesem Zeitpunkt ist ein offensichtliches Problem: Woher wissen wir, dass wir die meisten Transaktionen nicht ausführen müssen?Die Antwort ist, dass Re -Execution kein Engpass ist.Der Engpass besteht darin, auf die Erinnerung an Ethereum zuzugreifen.Es stellt sich heraus, dass Ethereum seinen Status in der Datenbank speichert, der den Zugriffsstatus schwierig macht (Zeitverhütung und teuer).Dies ist ein weiterer Ort, an dem Monad -monaddb verbessert hat.Monad konstruiert seine Datenbank, um die Ausgaben des Lesevorgangs zu verringern.
Wenn eine Transaktion erneut ausgeführt werden muss, haben alle Eingänge den Cache -Speicher verlangsamt.
Solana verfügt über 50.000 TPS im Testnetzwerk, aber nur etwa 1.000 TPs im Hauptnetzwerk.Monad behauptet, dass in seinem internen Testnetzwerk 10.000 tatsächliche TPS erreicht wurden.Obwohl dies nicht immer die tatsächliche Leistung darstellt, können wir es kaum erwarten, die Leistung von Monade in praktischen Anwendungen zu sehen.