Die RLP-Spezifikation sagt Folgendes über ganze Zahlen:
Der einzige Zweck von RLP besteht darin, die Struktur zu codieren; die Kodierung spezifischer atomarer Datentypen (z. B. Strings, Ints, Floats) wird den Protokollen höherer Ordnung überlassen; In Ethereum müssen Ganzzahlen in Big-Endian-Binärform ohne führende Nullen dargestellt werden (wodurch der Ganzzahlwert Null dem leeren Byte-Array entspricht).
Wenn „in Ethereum“ steht, bedeutet dies eigentlich nur im ETH-Subprotokoll oder bedeutet dies im Hauptwerk „Ethereum“ und speziell im RLP-Protokoll? Wenn letzteres der Fall ist, scheint sich dieser Absatz zu widersprechen. Auf der einen Seite heißt es, dass RLP die Codierung höheren Protokollen überlässt, aber auf der anderen Seite, dass RLP Big-Endian-Integer verlangt, bei denen alle führenden Nullen übersprungen werden.
Wo soll diese Kodierung dann implementiert werden? Oder sollte es im RLP-Protokoll einen bestimmten Typ „EthereumInteger“ geben, der sich von „Integer“ unterscheidet?
Vielleicht wäre eine bessere Frage, an wen sollte diese Art von Frage am besten gerichtet werden und wo?
RLP befasst sich nur mit Strukturen, die aus Bytes (Binärdaten) bestehen. Es spielt keine Rolle, ob diese Bytes Zeichenfolgen, Ganzzahlen, große Ganzzahlen, Gleitkommazahlen oder was auch immer darstellen. Dies ist in dem Satz vor dem, den Sie zitiert haben,
Der Zweck von RLP (Recursive Length Prefix) besteht darin, willkürlich verschachtelte Arrays von Binärdaten ...
Zu deiner Frage:
...aber auf der anderen Seite sagt RLP, dass Big-Endian-Ganzzahlen verlangt werden, bei denen alle führenden Nullen übersprungen werden.
Nein, das sagt es nicht. Es besagt, dass Integer in Ethereum als Big Endian ohne führende Null-Bytes dargestellt werden.
RLP ist nicht spezifisch für Ethereum (obwohl es für Ethereum AFAIK entwickelt wurde). Der Punkt ist, dass Ethereum eines der in diesem Satz erwähnten „Protokolle höherer Ordnung“ ist. Also macht alles Sinn:
Zugegebenermaßen könnte der Ethereum-Teil weggelassen werden und die Dinge könnten klarer sein. Ich denke, der Autor wollte der Konkretheit halber nur ein Beispiel für ein solches Protokoll höherer Ordnung geben.
Wächter