Warum wird das Ziel in „Bits“ umgewandelt und nicht vollständig im Blockheader gespeichert?
Warum zum Beispiel:
{
"hash" : "000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506",
"height" : 100000,
"bits" : "1b04864c",
"difficulty" : 14484.16236123,
}
und nicht:
{
"hash" : "000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506",
"height" : 100000,
"target" : "000000000004864c000000000000000000000000000000000000000000000000",
"difficulty" : 14484.16236123,
}
Ist es um Platz zu sparen?
Ihre Wiedergabe ist nicht zuletzt länger, der gesamte Header ist nur 80 Bytes lang. Die Codierung von "Bits" ist historisch und vom Client der Vorabversion 0.1.0 übrig geblieben. Es gibt andere Dinge im Header, die besser hätten kodiert werden können (die Nonce hätte länger sein sollen, und die Version hätte als Bitfield und nicht als Int gelesen werden sollen, und eine Aux-Merkle-Wurzel wäre schön gewesen), aber so wie es ist, gibt es nichts wirklich Großartiges Grund, aufgrund der Trägheit hinter der aktuellen Formation etwas zu ändern.
aux
Merkle-Wurzel? Außerdem wäre es schön, genaue Zeiten sowohl im Header (als auch im Zusammenhang mit einzelnen Txs) zu haben.bits
im Blockheader gibt? Ich frage mich, warum es überhaupt da ist, vorausgesetzt, ein vollständiger Knoten synchronisiert sich von Block 0 und kann die Schwierigkeit für jeden Block selbst berechnen ...
Morsecoder