日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Bitcoin 中的挖矿算法(5) 难度值举例说明

發布時間:2025/3/21 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bitcoin 中的挖矿算法(5) 难度值举例说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 區塊277,316的nBits的值為 0x1903a30c(10進制為419,668,748)

=>0x19為指數,而 0x03a30c為系數target = 0x03a30c * 2^(0x08 * (0x19 - 0x03)) => target = 0x03a30c * 2^(0x08 * 0x16) => target = 0x03a30c * 2^0xB0 => target = 0x03a30c * 2^176=> target = 238,348 * 2^176 => target = 22,829,202,948,393,929,850,749,706,076,701,368,331,072,452,018,388,575,715,328 轉換為16進制 => target = 0x0000000000000003A30C00000000000000000000000000000000000000000000 (FFFF后面44個0,共15+5+44=64個16進制數)

2. 計算hash過程
step1. 準備數據

2 (版本號的十進制) 0000000000000002a7bbd25a417c0374cc55261021e8a9ca74442b01284f0569 (前一區塊hash值的16進制) c91c008c26e50763e9f548bb8b2fc323735f73577effbc55502c51eb4cc7cf2e (merkle root的16進制) 2013-12-27 23:11:54 (utc時間) 419668748 (難度目標的十進制) 924591752 (隨機數的十進制)轉換時間一定要轉為utc的時間戳。 >>> import datetime >>> from datetime import timezone >>> datetime.datetime.strptime('2013-12-27 23:11:54', '%Y-%m-%d %H:%M:%S').replace(tzinfo=timezone.utc).timestamp() 1388185914.0

step2. 轉換為16進制

00000002 0000000000000002a7bbd25a417c0374cc55261021e8a9ca74442b01284f0569 c91c008c26e50763e9f548bb8b2fc323735f73577effbc55502c51eb4cc7cf2e 52be093a 1903a30c 371c2688

step3. 從big-endian轉化為little-endian

02000000 69054f28012b4474caa9e821102655cc74037c415ad2bba70200000000000000 2ecfc74ceb512c5055bcff7e57735f7323c32f8bbb48f5e96307e5268c001cc9 3a09be52 0ca30319 88261c37

step4 拼接字符串,開始驗證

import binascii from hashlib import sha256 as s k = '0200000069054f28012b4474caa9e821102655cc74037c415ad2bba702000000000000002ecfc74ceb512c5055bcff7e57735f7323c32f8bbb48f5e96307e5268c001cc93a09be520ca3031988261c37' hk = binascii.unhexlify(k) res = binascii.hexlify(s(s(hk).digest()).digest()[::-1])for nonce in range(0, 2**32):block_header = version + previous_block_hash + merkle_root + time + target_bits + nonceif sha256(sha256(block_header)) < target_bits:break

step5:結果為

Hash
0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4(前面15個0,滿足target 要求)

3. 算力

算力指的是哈希算法每秒運算次數,單位為Hash/s

一般算力大概為TH/s
2009年為MH/s.

總結

以上是生活随笔為你收集整理的Bitcoin 中的挖矿算法(5) 难度值举例说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。