好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 詳解python實現簡單區塊鏈結構

詳解python實現簡單區塊鏈結構

熱門標簽:地圖標注的意義點 上海機器人外呼系統哪家好 蓋州市地圖標注 浙江電銷卡外呼系統好用嗎 地圖標注微信發送位置不顯示 南京銷售外呼系統軟件 地圖制圖標注位置改變是移位嗎 315電話機器人廣告 房產電銷外呼系統

區塊鏈

比特幣從誕生到現在已經10年了,最近接觸到了區塊鏈相關的技術,為了揭開其背后的神秘面紗,我就從頭開始構建一個簡單的區塊鏈。

從技術上來看:區塊是一種記錄交易的數據結構,反映了一筆交易的資金流向。系統中已經達成的交易的區塊連接在一起形成了一條主鏈,所有參與計算的節點都記錄了主鏈或主鏈的一部分。

一、比特幣內部結構

比特幣內部結構有四部分:

  1. previous hash: 上一個區塊的hash
  2. data:交易數據
  3. time stamp:區塊生成的時間戳
  4. nonce:挖礦計算次數

二、實現的比特幣結構

  1. index :當前區塊索引
  2. timestamp :該區塊創建時的時間戳
  3. data :交易信息
  4. previous hash: 前一個區塊的hash
  5. hash: 當前區塊的hash
  6. nonce : 挖礦計算次數

注意:當前實現了一個簡單的區塊鏈結構,并不完整。

三、代碼實現

1.定義區塊的結構

代碼如下:

"""
區塊設計
"""
import time
import hashlib

class Block:
    # 初始化一個區塊
    def __init__(self,previous_hash,data):
        self.index = 0
        self.nonce = ''
        self.previous_hash = previous_hash
        self.time_stamp = time.time()
        self.data = data
        self.hash = self.get_hash()
    # 獲取區塊的hash
    def get_hash(self):
        msg = hashlib.sha256()
        msg.update(str(self.previous_hash).encode('utf-8'))
        msg.update(str(self.data).encode('utf-8'))
        msg.update(str(self.time_stamp).encode('utf-8'))
        msg.update(str(self.index).encode('utf-8'))
        return msg.hexdigest()
    # 修改區塊的hash值
    def set_hash(self,hash):
        self.hash = hash

2.創世區塊構造

創世區塊:沒有前一個區塊,這里的previous_hashdata是自己寫死的。

# 生成創世區塊,這是第一個區塊,沒有前一個區塊
def creat_genesis_block():
    block = Block(previous_hash= '0000',data='Genesis block')
    nonce,digest = mime(block=block)
    block.nonce = nonce
    block.set_hash(digest)
    return block

這里的mime()函數是后面的挖礦函數.

3.挖礦函數定義

代碼如下:

def mime(block):
    """
    挖礦函數——更新區塊結構,加入nonce值
        block:挖礦區塊
    """
    i = 0
    prefix = '0000'
    while True:
        nonce = str(i)
        msg = hashlib.sha256()
        msg.update(str(block.previous_hash).encode('utf-8'))
        msg.update(str(block.data).encode('utf-8'))
        msg.update(str(block.time_stamp).encode('utf-8'))
        msg.update(str(block.index).encode('utf-8'))
        msg.update(nonce.encode('utf-8'))
        digest = msg.hexdigest()
        if digest.startswith(prefix):
            return nonce,digest
        i+=1

4.定義區塊鏈結構

代碼如下:

"""
區塊鏈設計
"""
from Block import *
# 區塊鏈
class BlockChain:
    def __init__(self):
        self.blocks = [creat_genesis_block()]
    # 添加區塊到區塊鏈上
    def add_block(self,data):
        pre_block = self.blocks[len(self.blocks)-1]
        new_block = Block(pre_block.hash,data)
        new_block.index = len(self.blocks)
        nonce,digest = mime(block=new_block)
        new_block.nonce = nonce
        new_block.set_hash(digest)
        self.blocks.append(new_block)
        return new_block

在添加新區塊到區塊鏈時,先挖礦在將新區塊加入區塊鏈。

四、代碼運行

測試代碼:

from BlockChain import *
# 創建一個區塊鏈
bc = BlockChain()
# 添加區塊
bc.add_block(data='second block')
bc.add_block(data='third block')
bc.add_block(data='fourth block')
for bl in bc.blocks:
    print("Index:{}".format(bl.index))
    print("Nonce:{}".format(bl.nonce))
    print("Hash:{}".format(bl.hash))
    print("Pre_Hash:{}".format(bl.previous_hash))
    print("Time:{}".format(bl.time_stamp))
    print("Data:{}".format(bl.data))
    print('\n')

運行結果:

這里添加了4個區塊(包括創世區塊),處了創世區塊,每個區塊的pre_hash都與前一個區塊的hash值相等,這代表區塊沒有被篡改,數據有效。

到此這篇關于python實現簡單區塊鏈結構的文章就介紹到這了,更多相關python區塊鏈結構內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python區塊及區塊鏈的開發詳解
  • python簡單區塊鏈模擬詳解
  • Python實現基于POS算法的區塊鏈
  • Python實現類似比特幣的加密貨幣區塊鏈的創建與交易實例
  • 使用Python從零開始擼一個區塊鏈
  • Python從零開始創建區塊鏈
  • 用不到50行的Python代碼構建最小的區塊鏈
  • Python學習入門之區塊鏈詳解
  • 如何用用Python制作NFT區塊鏈作品

標簽:克拉瑪依 金華 臨汾 貴州 陽泉 雙鴨山 赤峰 日照

巨人網絡通訊聲明:本文標題《詳解python實現簡單區塊鏈結構》,本文關鍵詞  詳解,python,實現,簡單,區塊,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解python實現簡單區塊鏈結構》相關的同類信息!
  • 本頁收集關于詳解python實現簡單區塊鏈結構的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 色婷婷美国农夫欧美亚洲| 艳魔大战2春荡女婬免费| 96精产国品一二三产区区别| 福利片午夜| 欧美电影一区二区| 精品亚洲国产欧美野战| 校花?开腿让我爽一晚| 99久久亚洲综合精品网站| 男男少年乖H调教跪趴SM主人| 国产高潮又爽又无遮挡又免费孕妇| 国产乱人乱偷精品视频网站| 久久七| 日韩毛片高清在线看| 男男做爰猛烈啪啪高| 坐公交忘穿内裤被挺进老 | 无翼乌邪恶全彩鸣人acg| 男人同性**毛片| 日韩精品 一区二区三区| 日本男男gayxxxxx免费| 肉多车速快的糙汉文h| 女人屁股大做起来爽| 91精品人妻一区二区三区蜜桃臀| 91久久精品国产亚洲Av麻 | 国产成人精品一区二区在线| 午夜伦yy44880影院 导演| jazzjazzjazz国产| 处女破处视频在线观看| 亚洲 欧美 中文 日韩a?v| 国产色情三级国产三级在线观看 | 西西人体模特国模精品广告| 饥渴难耐的岳让我使劲弄| 国产下药迷倒白嫩美女96| 国产精品30p| 我在开会他在下添的好爽| 久久午夜国产精品www| 91电影在线看| 巨色乳| 91人妻精品国产综合久| 久久精品一区二区三区樱花岛| 夜蝶v1.0.87| 多肉到处做的古文|