Wie liest ein nicht aktualisierter Knoten eine SegWit-Transaktion? [Duplikat]

Ich versuche zu verstehen, wie mein Knoten eine SegWit- Transaktion interpretieren würde, wenn ich kein Upgrade durchführe.

  1. Selbst wenn ich kein Upgrade durchführe, sollte ich genau die gleichen Blockdaten erhalten wie alle anderen, richtig?

Wenn ja, nehmen wir an, mein Knoten empfängt einen Block, der eine Segwit-Transaktion enthält (dh einen mit a [marker][flag]und einigen [witness]Daten). Ich bin mir nicht sicher, wie mein Knoten die Daten interpretieren wird ...

  1. Wenn das [marker][flag]ist [00][01], liest mein Knoten dies als 0 Eingaben und 1 Ausgabe und betrachtet diese Transaktion immer noch als gültig?
  2. Wenn ja, wie kann es die TXID aus dem neu erstellen, [version][txins][txouts][locktime]wenn die Transaktionsdaten das Format haben [version][marker][flag][txins][txouts][witness][locktime]?

Grundsätzlich verstehe ich nicht, wie mein Knoten Transaktionen mit [witness]Daten empfangen und diese Blöcke dennoch als gültig betrachten kann.

Danke Pieter. Dass beide meine Frage genauer gestellt (und beantwortet) haben.

Antworten (1)

Der Segwit-Knoten konvertiert Transaktionen und Blöcke „on-the-fly“, während er sie an Ihren nicht aktualisierten Knoten sendet. Sie werden Ausgaben sehen, die jeder ausgeben kann, und Einlösungen von solchen Ausgaben. Sie werden keine zusätzlichen Flaggen, Zeugendaten und andere Segwit-Sachen sehen.

Vielen Dank. Im Grunde senden Segwit-Knoten also eine abgespeckte Version von Blöcken an ihre verbundenen Nicht-Segwit-Knoten?
Was passiert während der Staffel? Wenn zum Beispiel ein Segwit-Knoten eine Segwit-Transaktion an einen alten Knoten sendet, ist diese Transaktion danach Müll, oder kann ein Segwit-Knoten, der die Transaktion von einem alten Knoten empfängt, diese Daten irgendwie rekonstruieren?