import hashlib
version = bytes.fromhex("00000001") # 版本号(小端序: 0x1 → "01000000")
prev_block = bytes.fromhex("0000000000000000000000000000000000000000000000000000000000000000") # 前驱哈希(全0,无需反转)
merkle_root = bytes.fromhex("3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a") # Merkle根(大端序转小端序)
timestamp = bytes.fromhex("495fab29") # 时间戳(小端序: 0x495fab29 → "29ab5f49")
bits = bytes.fromhex("1d00ffff") # nBits(小端序: 0x1d00ffff → "ffff001d")
nonce = bytes.fromhex("7c2bac1d") # Nonce(小端序: 0x7c2bac1d → "1dbc2c7c")
header_bytes = version + prev_block + merkle_root + timestamp + bits + nonce
hash1 = hashlib.sha256(header_bytes).digest()
hash2 = hashlib.sha256(hash1).digest()
block_hash = hash2[::-1].hex()
print("创世区块哈希:", block_hash) # 应输出:000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f