Wie verdopple ich den SHA-256-Header von Block Nr. 59.500?

Ich bin mir nicht sicher, wie ich all diese Informationen kombinieren soll. https://blockchain.info/block/00000000096af43105123c499521e1d131d172e7e1bf2ed0843290a921f1f6a7

Version 1

Zeitbits 470771548 (ist das die richtige Nummer für Zeitbits?)

Merkle Root ff682ef66cd1b56213fd4db9462fb138f6d8c16d706d41969a7eacc819528038

Nonce 16641419

Hash des aktuellen Blocks 00000000096af43105123c499521e1d131d172e7e1bf2ed0843290a921f1f6a7

Hash des vorherigen Blocks 00000000023bbab0e78a22d27fbd2d0cd13f8302fb3f560138e0e81d087ac7a1

Antworten (2)

Nehmen Sie die ersten 160 Symbole von https://blockchain.info/block/00000000096af43105123c499521e1d131d172e7e1bf2ed0843290a921f1f6a7?format=hex

soll ich mehr erklären? :))))

aktualisieren:

01000000Ausführung

a1c77a081de8e03801563ffb02833fd10c2dbd7fd2228ae7b0ba3b0200000000vorheriger Hash

38805219c8ac7e9a96416d706dc1d8f638b12f46b94dfd1362b5d16cf62e68ffmerkle hash

27b80a4cZeitstempel

5c670f1cBits

8bedfd00einmal

Danke für Ihre Antwort! Ich entschuldige mich, ich bin immer noch etwas verwirrt darüber, woher all diese Zahlen in dem von Ihnen beigefügten Link stammen. Und warum die ersten 160? Hängt das irgendwie mit RIPE-MD 160 zusammen? Danke!
Dies ist ein Block im Hex-Format. die ersten 160 Symbole sind Blockheader (80 Bytes)

Wie oben erwähnt, sollten Sie die ersten 80 Bytes aus dem serialisierten Block nehmen. Da diese Daten hexadezimal kodiert sind und jedes Byte zwei hexadezimale Ziffern zum Kodieren benötigt, besteht ein Blockheader aus 80 * 2 = 160Ziffern.
Sie werden feststellen, dass einige Felder invertiert sind, weil sie im Little-Endian- Format dargestellt werden. Sobald Sie diese Daten doppelt sha256 haben, finden Sie einen Hash mit nachgestellten Nullen und nicht mit führenden, dies liegt auch an Endianness.

So sieht der erwähnte Block aus:
Nehmen Sie den ersten 160-stelligen serialisierten Header
01000000a1c77a081de8e03801563ffb02833fd10c2dbd7fd2228ae7b0ba3b020000000038805219c8ac7e9a96416d706dc1d8f638b12f46b94dfd1362b5d16cf62e68ff27b80a4c5c670f1c8bedfd00
Und analysieren Sie:
Version: 01000000(Dies ist 1 in Little-Endian)
Hash des vorherigen Blocks: a1c77a081de8e03801563ffb02833fd10c2dbd7fd2228ae7b0ba3b0200000000(Beachten Sie die abschließenden Nullen)
Merkle Root : 38805219c8ac7e9a96416d706dc1d8f638b12f46b94dfd1362b5d16cf62e68ff
Timestamp : 27b80a4c
Bits : 5c670f1c
Nonce :8bedfd00

Ein Python 3-Code, der es hasht:

import hashlib
data = bytes.fromhex("01000000a1c77a081de8e03801563ffb02833fd10c2dbd7fd2228ae7b0ba3b020000000038805219c8ac7e9a96416d706dc1d8f638b12f46b94dfd1362b5d16cf62e68ff27b80a4c5c670f1c8bedfd00")
h1 = hashlib.sha256(data).digest()
h2 = hashlib.sha256(h1).digest()
print(h2.hex())

Das Ergebnis ist a7f6f121a9903284d02ebfe1e772d131d1e12195493c120531f46a0900000000, das ist genau die Little-Endian-Version von00000000096af43105123c499521e1d131d172e7e1bf2ed0843290a921f1f6a7