Blockchain

在數學或 Python 表示法中 - 如何將位轉換為難度?

  • September 27, 2020

問題

在位和難度之間轉換的方程式是什麼?

&

理解區塊頭中的比特和難度

請問如何在位和難度之間轉換。不幸的是,我沒有得到答案,因為我不知道 C(我認為是 C)並且顯然缺乏 CS 知識。

誰能用數學符號或高級程式碼(Python?)展示如何將例如 392009692 位轉換為 3,007,383,866,429.73 的難度?如塊

<https://blockchain.info/block/00000000000000000025c089d0a7b2bf6241888c4dd90ab7a4c4baa6a2823551>

非常感謝!

此程式碼段將您的 blockchain.info 連結中出現的 nbits 整數轉換為難度

def nbits(num):
   # Convert integer to hex
   hexstr = format(num, 'x')
   first_byte, last_bytes = hexstr[0:2], hexstr[2:]
   # convert bytes back to int
   first, last = int(first_byte, 16), int(last_bytes, 16)
   return last * 256 ** (first - 3)

def difficulty(num):
   # Difficulty of genesis block / current
   return 0x00ffff0000000000000000000000000000000000000000000000000000 / nbits(num)

>&gt;&gt; difficulty(392009692)
3007383866429.732

引用自:https://bitcoin.stackexchange.com/questions/74701