Vollständige Definition der Datenstruktur „tx_witness“, die in der Datenstruktur „tx“ verwendet wird

Ich lese die Protokolldokumentationsseite für die Datenstruktur „tx“ und kann keine vollständig klare Definition der Datenstruktur „tx_witness“ finden.

Nach der 'tx_out'-Tabelle gibt es einen kurzen Kommentar, der besagt, dass "die TxWitness-Struktur aus einer var_int-Anzahl von Zeugendatenkomponenten besteht, gefolgt von (für jede Zeugendatenkomponente) einer var_int-Länge der Komponente und den Rohkomponentendaten selbst."

Könnte jemand eine Tabelle posten, ähnlich wie andere auf der Protokolldokumentationsseite, die klar definiert, wie eine 'tx_witness'-Datenstruktur gebildet werden sollte?

Antworten (1)

In Bitcoin Core wird die scriptWitnessEigenschaft (für die Klasse) von a als CTxInserialisiert , also würde ich mir vorstellen, dass die serialisierte Version in etwa so aussehen würde:CTransactionstd::vector<std::vector<unsigned char> >

TxZeuge:

+------------+-------------------------+------------------------+
| Field Size |        Description      |       Data Type        |
+------------+-------------------------+------------------------+
| 0+         | witness_component count | var_int                |
| ?          | witness_components      | witness_component[]    |
+------------+-------------------------+------------------------+

ZeugeKomponente:

+------------+------------------+-----------+
| Field Size |   Description    | Data Type |
+------------+------------------+-----------+
| 0+         | component length | var_int   |
| ?          | component        | uchar[]   |
+------------+------------------+-----------+

Verweise: