Nachrichten im Bitcoin-Netzwerk werden durch den magischen Wert 0xD9B4BEF9 und im Testnetz durch 0xDAB5BFFA identifiziert. Warum wurden diese Werte gewählt?
main.cpp trägt diesen Kommentar:
// The message start string is designed to be unlikely to occur in normal data.
// The characters are rarely used upper ascii, not valid as UTF-8, and produce
// a large 4-byte int at any alignment.
unsigned char pchMessageStart[4] = { 0xf9, 0xbe, 0xb4, 0xd9 };
Sie wurde gewählt, weil sie eine Primzahl ist und weil 4190024921 die Hypotenuse eines primitiven pythagoreischen Tripels ist: 4190024921^2 = 2924728880^2 + 3000378279^2
Bearbeiten: Beachten Sie, dass Sie die Byte-Reihenfolge berücksichtigen müssen. Das TCP-Protokoll erfordert, dass die Nummer in Big-Endian codiert ist. 0xf9beb4d9 (klein) = 0xd9b4bef9 (groß)
Weitere Informationen dazu finden Sie unter https://stackoverflow.com/a/13514942 .
karask