Ich denke, der Hauptgrund, warum die meisten Blockchains keine asynchrone Ausführung übernommen haben, ist einfach: Wenn Benutzer sehen, dass ihre Transaktion bestätigt ist, erwarten sie, dass das Ergebnis verfügbar ist, da ihre weiteren Aktionen davon abhängen. Während es bei verzögerter Ausführung möglich ist, das Ergebnis für Transaktionen, die mit nicht umstrittenen Zuständen arbeiten (wie Überweisungen/Genehmigungen), lokal zu simulieren, sind dies auch die Arten von Transaktionen, die der synchronen Ausführung nicht viel zusätzlichen Aufwand hinzufügen. Dieser Aspekt macht die asynchrone Ausführung zu einer viel weniger attraktiven Alternative, wenn man Folgendes berücksichtigt: 1. Zusätzliche Entwicklungskosten 2. Eine nicht triviale Bedingung für die Verarbeitung von Transaktionen auf dem Endclient (Überprüfung, ob eine Transaktion einen umstrittenen Zustand berühren könnte und die Entscheidung, auf das Ergebnis von der Blockchain zu warten oder es lokal zu simulieren)
Keone Hon ⨀
Keone Hon ⨀11. Aug., 03:59
Heute schreibe ich etwas über asynchrone Ausführung (auch bekannt als verzögerte Ausführung). Das ist eine der "großen Ideen" von Monaden, die im Nachhinein offensichtlich erscheinen wird: Sobald die Reihenfolge der Transaktionen festgelegt ist, ist der Zustand bestimmt. Vielleicht wissen Sie das nicht, aber in den meisten Blockchains, einschließlich Ethereum und Solana, müssen die Knoten, die eine Liste von Transaktionen (d.h. einen Block) auswerten, auch über das Ergebnis dieser Liste von Transaktionen (d.h. den Zustandsstamm nach diesen Transaktionen) im Rahmen des Abstimmungsprozesses einig sein. Das erfordert, dass sie diese Transaktionen ausführen, bevor sie mit einer Stimme antworten, was offensichtlich die Menge an Arbeit, die sie leisten können, erheblich verringert. Diese Erwartung ist zu streng und ist einer der Hauptgründe, warum die Durchsatzrate von Blockchains so begrenzt ist.
Es ist definitiv ein interessanter Weg, den man einschlagen kann, aber die Geschichte zeigt, dass Paradigmen, die technisch gesehen mehr Leistung bringen sollten, oft aufgrund einer zusätzlichen Komplexität nicht angenommen werden. Zum Beispiel ist die asynchrone Ausführung in TON (obwohl sie sehr unterschiedlich von Monad ist, aber auch auf dem Papier besser ist, btw) der Hauptpunkt der Beschwerden von Entwicklern, die ich gehört habe, und sie bringt auch keine nennenswerten Leistungsgewinne.
@MaxResnick1 Außerdem verstehe ich nicht, warum du wiederholt hast, dass es in Bezug auf den finalisierten Zustand strikt schneller ist. In Bezug auf die Latenz ist es offensichtlich so, und das war nicht der Punkt meines Beitrags.
8,4K