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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

=>0x19為指數(shù),而 0x03a30c為系數(shù)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 轉(zhuǎn)換為16進(jìn)制 => target = 0x0000000000000003A30C00000000000000000000000000000000000000000000 (FFFF后面44個(gè)0,共15+5+44=64個(gè)16進(jìn)制數(shù))

2. 計(jì)算hash過(guò)程
step1. 準(zhǔn)備數(shù)據(jù)

2 (版本號(hào)的十進(jìn)制) 0000000000000002a7bbd25a417c0374cc55261021e8a9ca74442b01284f0569 (前一區(qū)塊hash值的16進(jìn)制) c91c008c26e50763e9f548bb8b2fc323735f73577effbc55502c51eb4cc7cf2e (merkle root的16進(jìn)制) 2013-12-27 23:11:54 (utc時(shí)間) 419668748 (難度目標(biāo)的十進(jìn)制) 924591752 (隨機(jī)數(shù)的十進(jìn)制)轉(zhuǎn)換時(shí)間一定要轉(zhuǎn)為utc的時(shí)間戳。 >>> 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. 轉(zhuǎn)換為16進(jìn)制

00000002 0000000000000002a7bbd25a417c0374cc55261021e8a9ca74442b01284f0569 c91c008c26e50763e9f548bb8b2fc323735f73577effbc55502c51eb4cc7cf2e 52be093a 1903a30c 371c2688

step3. 從big-endian轉(zhuǎn)化為little-endian

02000000 69054f28012b4474caa9e821102655cc74037c415ad2bba70200000000000000 2ecfc74ceb512c5055bcff7e57735f7323c32f8bbb48f5e96307e5268c001cc9 3a09be52 0ca30319 88261c37

step4 拼接字符串,開始驗(yàn)證

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:結(jié)果為

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

3. 算力

算力指的是哈希算法每秒運(yùn)算次數(shù),單位為Hash/s

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

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。