Wie kann ein Light Node einen Block bekommen?

Ich würde gerne besser verstehen, wie ein leichter Knoten einen vollständigen Knoten abrufen kann. Wenn ich das richtig verstanden habe, kann ich einen leichten Knoten als einen Knoten betrachten, der Teil des Peer-to-Peer-Netzwerks ist und nur Blockheader empfängt und speichert, was ungefähr 80 Bytes alle 10 Minuten bedeutet (natürlich mit einigen Annäherungen).

Angenommen, der Light-Client möchte die vollständige Blocknummer 1234 abrufen. Ich habe in der Dokumentation die getDataNachricht gesehen, die andere Knoten mit einer blockNachricht beantworten können.

Haben Sie Hinweise, wie Sie auswerten können, wie viele Bytes der Light-Client für die getData-Nachricht senden und wie viele Bytes empfangen werden müssen? Ich denke, es könnte ausreichen, nur einen Block aus dem Netzwerk abzurufen, da der Light Node validieren kann, ob dieser Block Teil seiner lokalen Head-Only-Blockchain ist.

Danke für die Unterstützung :)

Antworten (1)

Angenommen, der Light-Client möchte die vollständige Blocknummer 1234 abrufen. Ich habe in der Dokumentation die getdataNachricht gesehen, die andere Knoten mit einer Blocknachricht beantworten können.

Haben Sie Hinweise, wie Sie auswerten können, wie viele Bytes der Light-Client für die getdataNachricht senden und wie viele Bytes empfangen werden müssen?

Es kommt darauf an, wie groß der Block ist. Die Blockierung beträgt 0–1 MB vor der Aktivierung des getrennten Zeugen und 0–4 MB danach. Im Allgemeinen gilt: Je früher der Block stammt, desto weniger Daten enthält er.

Es gibt etwas Overhead für den Nachrichtenheader, aber es sind 24 Bytes, also spielt es keine Rolle.

OK danke! Ist meine Denkweise über die ausgetauschten Nachrichten richtig?
Es gibt Overhead für Nachrichtenrahmen und Keepalive-Nachrichten. Es sind nicht genau 80 Bytes/10 Minuten.
Was ist die beste Annäherung, die wir machen können, um diesen Overhead zu bewerten?