Warum hat getdata ein Feld für die Anzahl der Inventareinträge?

Nachdem ein Knoten eine invNachricht erhalten hat, können Sie die Daten für jeden TX/Block-Hash abrufen, indem Sie Folgendes verwenden getdata:

getdata - Fordern Sie einen einzelnen Block oder eine einzelne Transaktion per Hash an.

Wenn Sie also nur jeweils einen tx oder Block erhalten können, was ist der Zweck, ein Feld in der getdataNachricht für die Anzahl der angeforderten Einträge zu haben?

Field Size  Description   Data type   Comments
----------  ------------  ----------  -------------
?           count         var_int     Number of inventory entries
36x?        inventory     inv_vect[]  Inventory vectors

https://wiki.bitcoin.com/w/Network#Messages https://en.bitcoin.it/wiki/Protocol_documentation#getdata

Antworten (1)

Die Dokumentation, die Sie auch verlinken, ist falsch, die Bitcoin-Entwicklerreferenz gibt an, dass Sie mehrere Inventare innerhalb einer GetDataNachricht senden können.

Es ist nicht falsch, aber vielleicht nicht sehr Client. Das []nach inv_vectgibt an, dass es sich um ein Array von Einträgen handelt.
Sie sind sich nicht sicher, was Sie mit „sehr Client“ meinen, Sie meinen, dass er je nach Client-Version variiert?
Entschuldigung, "sehr klar" !
Entschuldigung, ich habe über das Kopieren und Einfügen der Protokollspezifikation gesprochen. Die Aussage „Request a single block or transaction by hash“ ist eindeutig falsch.