亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python區(qū)塊鏈Creating?Miners教程

 更新時(shí)間:2022年05月23日 14:52:19   作者:菜鳥教程  
這篇文章主要為大家介紹了Python區(qū)塊鏈Creating?Miners教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

為了實(shí)現(xiàn)挖掘,我們需要開發(fā)一個(gè)挖掘功能.挖掘功能需要在給定的消息字符串上生成摘要并提供工作證明.讓我們?cè)诒菊掠懻撨@個(gè).

消息摘要函數(shù)

我們將編寫一個(gè)名為 sha256 的實(shí)用程序函數(shù)來創(chuàng)建給定消息的摘要 :

def?sha256(message):
return?hashlib.sha256(message.encode('ascii')).hexdigest()

sha256 函數(shù)將消息作為參數(shù)進(jìn)行編碼它為ASCII,生成十六進(jìn)制摘要并將值返回給調(diào)用者.

挖掘函數(shù)

我們現(xiàn)在開發(fā) mine 實(shí)現(xiàn)我們自己的挖掘策略的功能.在這種情況下,我們的策略是在給定消息上生成一個(gè)前綴為給定數(shù)字1的散列.給定的1的數(shù)量被指定為 mine 函數(shù)的參數(shù),指定為難度級(jí)別.

例如,如果指定難度級(jí)別為2,則在給定消息上生成的散列應(yīng)該從兩個(gè)1開始 - 如11xxxxxxxx.如果難度級(jí)別為3,則生成的散列應(yīng)以三個(gè)1開始 - 如111xxxxxxxx.鑒于這些要求,我們現(xiàn)在將開發(fā)挖掘函數(shù),如下面給出的步驟所示.

第1步

挖掘函數(shù)有兩個(gè)參數(shù) - 消息和難度級(jí)別.

def mine(message, difficulty=1):

第2步

難度級(jí)別需要大于或等于1,我們使用以下斷言語句 : 確保這一點(diǎn);

assert difficulty >= 1

第3步

我們創(chuàng)建前綴變量使用設(shè)定的難度級(jí)別.

prefix = '1' * difficulty

請(qǐng)注意,如果難度級(jí)別為2,則前綴為"11",如果難度級(jí)別為3,則前綴為"111",依此類推.我們將檢查生成的消息摘要中是否存在此前綴.為了消化消息本身,我們使用以下兩行代碼 :

for?i?in?range(1000):
???digest?=?sha256(str(hash(message))?+?str(i))

我們繼續(xù)添加一個(gè)新的數(shù)字 i 到每次迭代中的消息哈希并在組合消息上生成新摘要.由于 sha256 函數(shù)的輸入在每次迭代中都會(huì)發(fā)生變化,因此摘要值也會(huì)發(fā)生變化.我們檢查此摘要值是否高于前綴.

if digest.startswith(prefix):

如果條件滿足,我們將終止 for 循環(huán)并返回摘要給來電者的價(jià)值.

這里顯示的是整個(gè)我的代碼 :

def?mine(message,?difficulty=1):
???assert?difficulty?>=?1
???prefix?=?'1'?*?difficulty
???for?i?in?range(1000):
??????digest?=?sha256(str(hash(message))?+?str(i))
??????if?digest.startswith(prefix):
?????????print?("after?"?+?str(i)?+?"?iterations?found?nonce:?"+?digest)
??????return?digest

為了您的理解,我們添加了打印摘要的 print 語句值和在從函數(shù)返回之前滿足條件所需的迭代次數(shù).

測(cè)試挖掘函數(shù)

測(cè)試我們的迷你ng函數(shù),只需執(zhí)行以下語句 :

mine("test message",2)

當(dāng)你運(yùn)行上面的代碼時(shí),你會(huì)看到類似于下面和下面的輸出;

after 138 iterations found nonce:

11008a740eb2fa6bf8d55baecda42a41993ca65ce66b2d3889477e6bfad1484c

請(qǐng)注意,生成的摘要以"11"開頭.如果將難度級(jí)別更改為3,則生成的摘要將以"111"開頭,當(dāng)然,它可能需要更多次迭代.如您所見,具有更強(qiáng)處理能力的礦工將能夠更早地挖掘給定的消息.這就是礦工們?yōu)榱速嵢∈杖攵嗷ジ?jìng)爭(zhēng)的方式.

現(xiàn)在,我們準(zhǔn)備為區(qū)塊鏈添加更多區(qū)塊.讓我們?cè)谙乱徽轮袑W(xué)習(xí)這一點(diǎn),更多關(guān)于Python區(qū)塊鏈Creating Miners的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python爬蟲看看虎牙女主播中誰最“頂”步驟詳解

    python爬蟲看看虎牙女主播中誰最“頂”步驟詳解

    這篇文章主要介紹了python爬蟲看看虎牙女主播中誰最“頂”,本文分步驟通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Python實(shí)現(xiàn)彈球小游戲的示例代碼

    Python實(shí)現(xiàn)彈球小游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)簡(jiǎn)單的彈球小游戲,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2022-11-11
  • python爬取w3shcool的JQuery課程并且保存到本地

    python爬取w3shcool的JQuery課程并且保存到本地

    本文主要介紹python爬取w3shcool的JQuery的課程并且保存到本地的方法解析。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-04-04
  • Python rstrip()方法實(shí)例詳解

    Python rstrip()方法實(shí)例詳解

    這篇文章主要介紹了Python rstrip()方法,包括rstrip方法的語法介紹和參數(shù)類型,需要的朋友可以參考下
    2018-11-11
  • Python常見錯(cuò)誤:IndexError:?list?index?out?of?range解決

    Python常見錯(cuò)誤:IndexError:?list?index?out?of?range解決

    最近在寫一個(gè)爬蟲程序,但是卻出現(xiàn)了錯(cuò)誤提示IndexError:?list?index?out?of?range,所以下面這篇文章主要給大家介紹了關(guān)于Python常見錯(cuò)誤:IndexError:?list?index?out?of?range的解決方法,需要的朋友可以參考下
    2023-01-01
  • Python 文件管理實(shí)例詳解

    Python 文件管理實(shí)例詳解

    這篇文章主要介紹了Python 文件管理的方法,以實(shí)例形式較為詳細(xì)的分析了Python針對(duì)文件的各種常用函數(shù)使用方法與相關(guān)注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • PyCharm中關(guān)于安裝第三方包的三個(gè)建議

    PyCharm中關(guān)于安裝第三方包的三個(gè)建議

    這篇文章主要介紹了PyCharm中關(guān)于安裝第三方包的三個(gè)建議,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Pycharm和Idea支持的vim插件的方法

    Pycharm和Idea支持的vim插件的方法

    這篇文章主要介紹了Pycharm和Idea支持的vim插件的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • python使用心得之獲得github代碼庫列表

    python使用心得之獲得github代碼庫列表

    最近接了個(gè)項(xiàng)目,要求獲得github的repo的api,度娘了一下,有不少文章介紹,總結(jié)了本文,分享給大家并附上代碼
    2014-06-06
  • Django加載配置的過程詳解

    Django加載配置的過程詳解

    這篇文章主要介紹了Django加載配置的過程詳解,包括Django服務(wù)啟動(dòng) manage.py的詳細(xì)介紹,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05

最新評(píng)論