Ist „Ausstehend“ tatsächlich eine netzweite Tatsache?

Ein Wallet kann eine Dusk-Transaktion als „ausstehend“ kennzeichnen, während ein anderer Knoten überhaupt keinen entsprechenden Mempool-Eintrag hat.

Das ist nicht zwingend eine Unstimmigkeit. Es ergibt sich daraus, wie Dusk Transaktionen behandelt, bevor sie zum Ledger-Status werden.

Jeder Peer führt seine eigenen Zulassungsprüfungen durch und verwaltet seinen eigenen Mempool. Die Abfrage „mempoolTxs“ von Dusk zeigt daher den echten Mempool des angefragten Knotens – nicht eine netzweit gemeinsame Warteschlange, die von jedem Peer geteilt wird.

Die Handhabung aus der Boreas-Ära macht das noch weniger intuitiv. Eine gültige Transaktion, deren Nonce vor der aktuellen Sequenz des Kontos liegt, kann aufgeschoben werden, bis die fehlenden Nonces eintreffen. In dieser Zeit befindet sie sich außerhalb des vom Knoten sichtbaren realen Mempools. Daher zeigt selbst der Knoten, der die Transaktion erhalten hat, sie möglicherweise noch nicht in „mempoolTxs“ an.

Ablaufzeit ergänzt eine weitere lokale Dimension: Es ist eine Knotenrichtlinie, nicht eine Lebensdauer, die in die Transaktion selbst kodiert ist.

Das verändert, wie ich das Wort „ausstehend“ lese. Vor dem Konsens stellt Dusk für alle keine einzige autoritative globale Transaktions-„Tatsache“ bereit, die von jedem beobachtet werden kann. Unterschiedliche Knoten können legitim unterschiedliche Informationen über dieselbe Transaktion halten.

Der Status eines Wallet ist daher ein Bericht von einem Beobachtungspunkt – nicht die Aussage, dass das Netzwerk bereits eine gemeinsame Zwischen-Tatsache akzeptiert hat.

Der Konsens ist der Ort, an dem diese fragmentierten lokalen Ansichten beginnen, sich in eine gemeinsame Ledger-Geschichte zu verwandeln.

@Dusk $DUSK #dusk