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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python开发一个区块链只需40多行

發(fā)布時間:2025/5/22 python 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python开发一个区块链只需40多行 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

40多行python代碼開發(fā)一個區(qū)塊鏈?可信嗎?我們將通過Python 2動手開發(fā)實(shí)現(xiàn)一個迷你區(qū)塊鏈來幫你真正理解區(qū)塊鏈技術(shù)的核心原理。python開發(fā)區(qū)塊鏈的源代碼保存在Github。

盡管有人認(rèn)為區(qū)塊鏈目前還是不成熟的解決方案,但它無疑是計算機(jī)發(fā)展史上的一個奇跡。但是,到底區(qū)塊鏈?zhǔn)鞘裁茨?

我們將通過動手實(shí)現(xiàn)一個迷你的區(qū)塊鏈來幫你真正理解區(qū)塊鏈技術(shù)的核心原理。python源代碼保存在Github。

區(qū)塊鏈

區(qū)塊鏈?zhǔn)且粋€公開的數(shù)字賬本,它按時間順序記錄比特幣或其他加密貨幣發(fā)生的交易。

更一般的講,區(qū)塊鏈?zhǔn)且粋€公共數(shù)據(jù)庫,新的數(shù)據(jù)將存儲在一個被稱為”塊“的容器中,然后塊會被添加到一個不可篡改的鏈,因此被稱為”區(qū)塊鏈“。當(dāng)我們談到比特幣或其他加密貨幣時,這些數(shù)據(jù)指的是交易記錄。當(dāng)然,你可以將任何類型的數(shù)據(jù)存入?yún)^(qū)塊鏈。

區(qū)塊鏈技術(shù)已經(jīng)催生了全新的、完全數(shù)字化的貨幣,如比特幣和萊特幣,這些貨幣并不是由中央政府發(fā)行或管理的。這一技術(shù)給那些不認(rèn)可當(dāng)前銀行系統(tǒng)人帶來了新的自由。 區(qū)塊鏈同時也為分布式計算帶來了革命性的創(chuàng)新,例如,以太坊區(qū)塊鏈引入了一些有趣的概念,比如智能合約。

在本文中,我將用不到50行的Python2代碼來做一個簡單的區(qū)塊鏈。我稱它為SnakeCoin。

我們首先將定義“塊”的數(shù)據(jù)結(jié)構(gòu)。在區(qū)塊鏈中,每個塊都存儲一個時間戳和一個可選地索引。在SnakeCoin中,我們將把兩者都存儲起來。為了確保整個區(qū)塊鏈的完整性,每個塊都有一個用于自我標(biāo)識的哈希。 與比特幣一樣,每個塊的哈希將是對塊索引、時間戳、數(shù)據(jù)和前塊哈希計算出的加密哈希值。其中你可以在數(shù)據(jù)中保存任何內(nèi)容。

import hashlib as hasherclass Block:def __init__(self, index, timestamp, data, previous_hash):self.index = indexself.timestamp = timestampself.data = dataself.previous_hash = previous_hashself.hash = self.hash_block()def hash_block(self):sha = hasher.sha256()sha.update(str(self.index) + str(self.timestamp) + str(self.data) + str(self.previous_hash))return sha.hexdigest() 復(fù)制代碼

太棒了!現(xiàn)在有了塊的數(shù)據(jù)結(jié)構(gòu),不過我們的目的是實(shí)現(xiàn)一個區(qū)塊鏈,所以需要將塊添加到一個鏈中。 如前所述,每個塊都需要前一個塊的信息。但是按照這個說法就會有一個問題,如何添加區(qū)塊鏈的第一個塊? 嗯,鏈中的第一個塊,或者說創(chuàng)世塊,是一個特殊的塊。在很多情況下需要手動添加或者采用單獨(dú)的處理邏輯。

下面將創(chuàng)建一個函數(shù),它的作用就是簡單地返回一個創(chuàng)世塊。這個塊的索引為0:

import datetime as datedef create_genesis_block():# Manually construct a block with# index zero and arbitrary previous hashreturn Block(0, date.datetime.now(), "Genesis Block", "0") 復(fù)制代碼

現(xiàn)在已經(jīng)創(chuàng)建好了創(chuàng)世塊,接下來需要一個函數(shù),以便在區(qū)塊鏈中生成后續(xù)的塊。這個函數(shù)將以鏈中的前一個塊為參數(shù),生成并返回新塊。當(dāng)新塊的哈希值計算利用了來自前面塊的信息時,區(qū)塊鏈的完整性就會隨著每個新塊而增加。如果不這樣的話,外部組織就更容易“改變過去”,用他們偽造的塊來取代鏈中的塊。這一系列的塊哈希可以作為加密的證據(jù),有助于確保一旦將塊添加到區(qū)塊鏈,它就不能被替換或刪除。

def next_block(last_block):this_index = last_block.index + 1this_timestamp = date.datetime.now()this_data = "Hey! I'm block " + str(this_index)this_hash = last_block.hashreturn Block(this_index, this_timestamp, this_data, this_hash) 復(fù)制代碼

大部分的重要工作已經(jīng)完成,現(xiàn)在可以創(chuàng)建區(qū)塊鏈了!在我們的實(shí)現(xiàn)中,區(qū)塊鏈就是一個簡單的Python列表。列表的第一個元素是創(chuàng)世塊。當(dāng)然,我們還需要添加后續(xù)的塊。因?yàn)镾nakeCoin可以說是世界上最迷你的區(qū)塊鏈,我們在這里只添加20個新的塊。可以用for循環(huán)來生成新塊:

# Create the blockchain and add the genesis block blockchain = [create_genesis_block()] previous_block = blockchain[0]# How many blocks should we add to the chain # after the genesis block num_of_blocks_to_add = 20# Add blocks to the chain for i in range(0, num_of_blocks_to_add):block_to_add = next_block(previous_block)blockchain.append(block_to_add)previous_block = block_to_add# Tell everyone about it!print "Block #{} has been added to the blockchain!".format(block_to_add.index)print "Hash: {}\n".format(block_to_add.hash) 復(fù)制代碼

下面來測試一下我們的區(qū)塊鏈。

跑通了!如果希望在控制臺中查看更多信息,可以編輯源文件并打印每個塊的時間戳或塊中的數(shù)據(jù)。

這就是SnakeCoin的全部內(nèi)容。為了使SnakeCoin能夠達(dá)到生產(chǎn)級區(qū)塊鏈的規(guī)模,還需要添加更多的功能,比如用來跟蹤多個節(jié)點(diǎn)上區(qū)塊鏈變化的P2P服務(wù)層,以及限制在一定時間內(nèi)可以添加到鏈中的新塊數(shù)量的工作量證明算法。

如果想了解更多的技術(shù)信息,可以在這里查看原始的比特幣白皮書。

如果你希望高效的學(xué)習(xí)以太坊DApp開發(fā),可以訪問匯智網(wǎng)提供的最熱門在線互動教程:

  • 適合區(qū)塊鏈新手的以太坊DApp實(shí)戰(zhàn)入門教程
  • 區(qū)塊鏈+IPFS+Node.js+MongoDB+Express去中心化以太坊電商應(yīng)用開發(fā)實(shí)戰(zhàn)

其他更多內(nèi)容也可以訪問這個以太坊博客。

原文:Let’s Build the Tiniest Blockchain

總結(jié)

以上是生活随笔為你收集整理的python开发一个区块链只需40多行的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: av不卡一区二区三区 | 激情国产一区 | 国产色悠悠 | 久久久久人妻一区精品色 | 久久只有这里有精品 | 精品免费av| 秋霞欧美一区二区三区视频免费 | av色区| 污漫在线观看 | 日本三不卡 | 99久久综合网 | 午夜在线观看视频18 | 在线免费观看视频a | 澳门av网站 | 欧美日韩国产高清 | 欧美,日韩,国产精品免费观看 | 啪啪网站免费 | 精品久久久久久久久久岛国gif | 欧美一区二区公司 | 国产suv精品一区二区33 | 精品无码一区二区三区爱欲 | 99re这里只有精品首页 | 在线观看黄色网页 | 91午夜交换视频 | 91香蕉视频在线看 | 熟女国产精品一区二区三 | 欧美日韩激情在线观看 | 黄色大片免费的 | 免费在线观看网址 | 欧美成人h版在线观看 | 美女100%露胸无遮挡 | 亚洲熟妇无码另类久久久 | 91嫩草欧美久久久九九九 | 亚洲av无码精品色午夜果冻不卡 | 7m精品福利视频导航 | 国产激情久久 | 国产精品日韩欧美大师 | 人人妻人人澡人人爽国产一区 | 中文字幕国产视频 | 阿娇全套94张未删图久久 | 黄色一级视频在线观看 | 天天伊人网| 污污内射久久一区二区欧美日韩 | 国产伦精品一区二区 | 看毛片网 | 在线观看色视频 | 在线视频第一页 | 一区二区三区免费在线观看视频 | 日韩黄色免费电影 | 青青草在线免费 | 91精品国自产 | 日韩性猛交ⅹxxx乱大交 | 日本理论视频 | h视频在线观看网站 | 中文字幕一区二区三区乱码人妻 | 亚洲视频一二三区 | 中文字幕+乱码+中文乱码www | 亚洲 欧美 激情 另类 校园 | 日韩激情久久 | 青青草激情 | 女的被男的操 | 天堂在线中文资源 | 国产尤物精品 | 三上悠亚中文字幕在线播放 | 国产成人黄色片 | 精品久久久久亚洲 | 国产在线播放网站 | 人妻互换免费中文字幕 | 免费日韩一区二区 | 一区二区高潮 | 91在线视频免费 | 欧美日韩视频在线 | 欧州一区二区三区 | 好吊操这里有精品 | 青青99| 蜜桃视频污 | 贝利弗山的秘密1985版免费观看 | 大白屁股一区二区视频 | 影音先锋美女 | 亚洲女同一区二区 | av免费网 | 蜜桃av免费 | 东京热一区二区三区四区 | 亚洲综合在线网 | 日韩精品一区二区亚洲av性色 | 欧美三级电影在线观看 | 欧美日韩亚洲精品一区二区 | 中文字幕理论片 | 一级黄色片免费在线观看 | 中文字幕+乱码+中文字幕明步 | 国产中文字幕在线免费观看 | 30一40一50女人毛片 | 日本精品一区二区三区四区 | 日韩在线视频免费观看 | 欧美一区二区三区成人精品 | 在线国产黄色 | 91福利网站| 国产精品久久久久久久成人午夜 | 看个毛片 |