成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

小白都能看懂,用Python來實現一個區塊鏈,就這么簡單

開發 后端 區塊鏈
那作為當下最火的語言Python,其實可以干很多事情,今天我們用Python來簡單的實現一個區塊鏈吧,想想都覺得很酷!

最近區塊鏈又開始火起來來啦,翻出一篇我一年前寫的文章,其實對于我們碼農來說,除了平時埋頭苦干,對新技術需要保持一定敏感性!每一種新的技術的出現都和未來的產業發展非常相關,蘊含著巨大的機會,除了干活還要擴張自己的眼界,對自己大有裨益!

那作為當下最火的語言Python,其實可以干很多事情,今天我們用Python來簡單的實現一個區塊鏈吧,想想都覺得很酷!

??

[[280777]]

??

1.什么是區塊

首先區塊鏈就是一種去中心化的分布式賬本數據庫,簡單說就是一組區塊組合的鏈條。那么里面每一個單元就是區塊:

??

??

圖片來源于天善學院

區塊上面有幾個重要的屬性:一個數據data,一個pre_hash和自身的hash:

??

??

1).我們用hashlib這個庫函數來處理hash計算操作

2).新建一個Block類,來表示區塊,里面有兩個屬性(一個pre_hash,一個data)

3).這個為了簡便用了類屬性@property裝飾器來除了hash的值,即當我用block.hash=xxx的時候,會系統自動調用這個hash函數。

4).這個hash函數很關鍵,以為你區塊鏈里面的都是用sha256來加密的,也是安全性比較高的一種加密方式,我們會得到一個十六進制數據字符串值。

區塊中有一個非常特殊,就是創世區塊!它是所有區塊里面的頭,他是父區塊,因此沒有pre_hash 

#創世區塊  #其中第一個區塊,也叫創世區塊,它是一個特殊的區塊,沒有父區塊  def create_genesis_block():  data="Genesis Block",prev_hash="")

左右滑動代碼

2.定義一個區塊鏈

我們上面已經定義了區塊,下面來定義一個區塊鏈,把一個一個區塊連起來!

??

[[280778]]

??

我們需要再寫一個類,用一個列表把一個一個區塊存起來,形成一個列表鏈!

??

??

1).我們聲明一個BlockChain的類,然后里面設置一個blocks列表數據結果,用來存放區塊,先把父區塊鏈放進去

2).增加一個add_block函數,用來添加區塊:

  • 先生成一個新的區塊內存
  • 然后添加data和它的hash值
  • 把區塊添加到區塊鏈中

3.實現區塊鏈

我們的區塊和區塊鏈都已經準備好了,是不是有點小興奮,大名鼎鼎的區塊鏈,Python幾十行代碼就模擬出來了,Python確實快速開發的神奇,我們來看一下效果:

??

?

 

>>  Prev Hash:  Data:Genesis Block  Hash:89eb0ac031a63d2421cd05a2fbe41f3ea35f5c3712ca839cbf6b85c4ee07b7a3  --------------------------------------------------------------------------------  PrevHash:89eb0ac031a63d2421cd05a2fbe41f3ea35f5c3712ca839cbf6b85c4ee07b7a3  Data:Jack send 1 BTC to Sam  Hash:ad3ebab374b25e6f3d4f0f14465ff3f86020ce036b5b538c2a506de800dac524  --------------------------------------------------------------------------------  PrevHash:ad3ebab374b25e6f3d4f0f14465ff3f86020ce036b5b538c2a506de800dac524  Data:Sam send 2 BTC to lili  Hash:f9ba725838192731e73b8f28b33c88be9798c314ea7a538fc77e80039413b872  --------------------------------------------------------------------------------

 


4.區塊鏈的不可篡改

看完前面基本是不是對區塊鏈有了一個感性的認識,那么區塊鏈最牛逼的地方就是不可篡改,為啥這么說呢?

??

??

比如我們修改了中間的一個區塊的內容,會到時它的hash改變,那么后面的區塊的pre_hash就會和前面的區塊的里面hash對應不起來!

我們用代碼看一下:

??

??

我把第二個block里面的數據改一下,隨便改一下里面的內容。然后我們看一下這個block里面的hash的變化:

 

Prev Hash:  Data:Genesis Block  Hash:89eb0ac031a63d2421cd05a2fbe41f3ea35f5c3712ca839cbf6b85c4ee07b7a3  Valid Block  --------------------------------------------------------------------------------  PrevHash:89eb0ac031a63d2421cd05a2fbe41f3ea35f5c3712ca839cbf6b85c4ee07b7a3  Data:Jack send 1.3 BTC to Alice  Hash:ec7b877b3a47a74ababf298e047352e8805fed3fa99ad15ab788ec47a70776d0  Valid Block  --------------------------------------------------------------------------------  PrevHash:ad3ebab374b25e6f3d4f0f14465ff3f86020ce036b5b538c2a506de800dac524  Data:Sam send 2 BTC to lili  Hash:f9ba725838192731e73b8f28b33c88be9798c314ea7a538fc77e80039413b872  Invalid Block  --------------------------------------------------------------------------------

 

因為修改了第二個區塊的內容,里面hash值也隨著改變,這樣的后面的區塊就無法和前面的區塊的hash對應起來,這就是區塊鏈的不可篡改性!因為是用sha256加密的方法,那怕改動一點點都不行!

 

責任編輯:龐桂玉 來源: 菜鳥學Python
相關推薦

2019-12-27 09:47:05

大數據TomcatWeb

2018-11-19 08:34:22

Hadoop架構HDFS

2017-02-22 15:04:52

2018-10-08 15:00:47

Python區塊鏈編程語言

2022-07-04 08:31:42

GitOpsGit基礎設施

2018-03-07 14:06:23

區塊鏈數字貨幣比特幣

2024-11-01 05:10:00

2020-01-21 10:16:15

Kubernetes教程容器

2019-10-08 10:10:52

中臺 IT后臺

2020-12-01 09:03:22

分庫分表MySQL

2021-09-27 13:50:13

Python裝飾器函數

2018-11-21 09:40:57

熔斷實踐AOP

2020-03-31 10:36:07

數據平臺架構

2018-11-21 15:40:08

HTTP協議前端

2018-12-24 08:46:52

Kubernetes對象模型

2020-09-28 14:25:39

HTTPS加密算法

2020-06-22 08:07:48

Spring依賴場景

2019-09-05 11:14:12

監控系統拓撲圖

2019-01-22 09:37:47

紅黑樹數據二叉樹

2023-01-26 00:22:01

分布式架構大文件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产黄色在线观看 | 日韩在线观看视频一区 | 久草视频在线播放 | 五月天国产在线 | 欧美精品一二三区 | 日韩精品一区二区三区视频播放 | 亚洲精品美女视频 | 9191在线播放 | 日韩精品一区二区三区第95 | 女女百合av大片一区二区三区九县 | 午夜精品一区二区三区在线观看 | 日韩二区 | 亚洲精品一 | 国产1区2区3区 | 九九热精品在线 | 一本久久a久久精品亚洲 | 亚洲国产欧美在线 | 正在播放国产精品 | 久久一热| 狠狠干五月天 | 狠狠操电影| 中文成人在线 | 日韩网站在线观看 | 午夜影视 | 日韩av免费在线观看 | 亚洲欧美日韩精品久久亚洲区 | 中文字幕一区二区三区四区 | 中文字幕日韩欧美一区二区三区 | 一区二区三区四区免费观看 | 99色在线视频 | 久久久123 | 国产精品久久久久久高潮 | 在线高清免费观看视频 | 欧美精品乱码99久久影院 | 欧美视频二区 | 国际精品久久 | 91久久 | 欧美日韩中文字幕在线 | 欧美视频三区 | 欧美日韩国产高清视频 | 亚洲高清一区二区三区 |