国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【區(qū)塊鏈時代】如何用Python實現(xiàn)區(qū)塊鏈中的區(qū)塊結構(快速入手01)

這篇具有很好參考價值的文章主要介紹了【區(qū)塊鏈時代】如何用Python實現(xiàn)區(qū)塊鏈中的區(qū)塊結構(快速入手01)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

區(qū)塊結構的詳細介紹,容易入手:
【區(qū)塊鏈時代】如何理解區(qū)塊鏈中共識機制以及在區(qū)塊鏈中分叉是如何解決的

一、區(qū)塊鏈開發(fā)環(huán)境準備

HTTP協(xié)議
Postman / curl 測試工具
Python
Pycharm
Pip工具
Flask/ request

二、區(qū)塊的結構

{
    "index":0,    #索引
    "timestamp":"",  #時間戳
    "translations": [  #交易信息
        {
            "sender":"",  #交易發(fā)送者
            "recipient": "", #交易接收者
            "amount": 5, #交易金額
        }
    ],
    "proof": "", #工作量證明
    "previous_hash":"", #上一個區(qū)塊hash值
}

三、創(chuàng)建一個區(qū)塊

import hashlib
import json
from time import time,sleep

class Blockchain:

    def __init__(self):
        self.chain = []
        self.current_translations = []
        # 創(chuàng)建創(chuàng)世區(qū)塊
        self.new_block(proof = 100 , previous_hash = 1)

    def new_block(self,proof,previous_hash = None):
        block = {
            'index': len(self.chain) + 1,
            'timestamp': time(),
            'translations': self.current_translations,
            'proof': proof,
            'previous_hash': previous_hash or self.hash(self.last_block),
        }
        self.current_translations = []
        self.chain.append(block)
        return block

    # 實現(xiàn)交易
    def new_translation(self,sender,recipient,amount) -> int:
        self.current_translations.append(
            {
                "sender":sender,
                "recipient":recipient,
                "amount":amount
            }
        )
        return self.last_block['index'] + 1

    @staticmethod
    def hash(block):
        block_string = json.dumps(block,sort_keys=True).encode() # 將block(json對象)轉換為字符串
        return hashlib.sha256(block_string).hexdigest()

    @property
    def last_block(self):
        return self.chain(-1)

    def proof_of_work(self,last_block:int) -> int:
        proof = 0
        while self.valid_proof(last_block,proof) is False:
            proof += 1
        print("proof is ",proof)
        return proof

    def valid_proof(self, last_proof:int, proof:int) -> bool:
        guess = f'{last_proof}{proof}'.encode()
        guess_hash = hashlib.sha256(guess).hexdigest()
        sleep(1)
        print("guess_hash is ",guess_hash)

        # return guess_hash[0:4] == "0000"
        if guess_hash[0:4] == "0000":
            return True
        else:
            return False

# 測試
testPow = Blockchain()
testPow.proof_of_work(100)

結果如下:

guess_hash is  ccbde76c925125361a6ab2ec97dbb0bb3376bd5f165ca71b8cf9b1851fce1251
guess_hash is  6fe3a4d4ab5e4dbf25ad2e6c5a9e177b3e8e9728fcd60f1bbf75e30592cc7d61
guess_hash is  7b501a4208b6b1a3afe9249a145f73df675eb13a0888b44d6e746f285320fd08
guess_hash is  08936563aaa2e39c721bfb074529904ffae85d2869493405d51442e25b5f1551
guess_hash is  81c5cd1bcca9c78d8d51c76dfb1770bf6509f09c3760179060f12057cf2281ee
guess_hash is  caf42c350b933954e087b008bb5f8457f6cd247f4c06788ecd804a3a8c35cfe1
guess_hash is  c20da575724013406f330c1e2646d7b8cf2bda2abd60c150da1226c9bfda64cc
guess_hash is  7ee9410967a25bb5fa1e216346ae62567594f8c866bfbb1f4c750799cf178cda

四、實現(xiàn)節(jié)點通信功能

from flask import Flask
from blockchain import Blockchain

app = Flask(__name__)

@app.route('/index',methods=['GET'])
def index():
    return "Hello BlockChain"

# 添加新的交易
@app.route('/transactions/new',methods=['POST'])
def new_transaction():
    return "我們添加新的交易"

# 挖礦
@app.route('/mine',methods=['GET'])
def mine():
    return "挖礦進行中~~~~~~~~~~~~~~~~~~~"

# 返回完整區(qū)塊鏈信息
@app.route('/chain',methods=['GET'])
def full_chain():
    return "返回完整區(qū)塊鏈信息"

if __name__ == '__main__':
    app.run(host='0.0.0.0',port=5000)

在下一篇博客中將重點介紹節(jié)點之間通信過程中如何實現(xiàn)各個功能模塊。文章來源地址http://www.zghlxwxcb.cn/news/detail-557430.html

到了這里,關于【區(qū)塊鏈時代】如何用Python實現(xiàn)區(qū)塊鏈中的區(qū)塊結構(快速入手01)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 科普|區(qū)塊鏈中的Merkle Tree

    什么是Merkle Tree? -?Merkle Tree也就是Merkle樹,中文譯名還有梅克爾樹或默克爾樹,因為這是一棵用哈希值搭建起來的樹,樹的所有節(jié)點都存儲了哈希值,所以也叫哈希樹,英文名為Hash Tree。默克爾樹通常情況下看著是一棵倒置的樹型結構,根節(jié)點在頂部,分叉向下,葉子節(jié)點

    2024年02月02日
    瀏覽(33)
  • 區(qū)塊鏈中的貨幣與現(xiàn)金系統(tǒng)

    區(qū)塊鏈中的貨幣與現(xiàn)金系統(tǒng)

    摘 ?要 : 區(qū)塊鏈技術是近年來備受關注的一項新興技術,它以去中心化、不可篡改和透明等特點,為各個領域的應用提供了全新的解決方案。區(qū)塊鏈技術的發(fā)展不僅對傳統(tǒng)金融、物流、能源等行業(yè)帶來了深刻的變革,同時也推動了數(shù)字經濟和數(shù)字社會的快速發(fā)展。在區(qū)塊鏈技

    2024年02月04日
    瀏覽(33)
  • 區(qū)塊鏈中的交易是什么意思

    id:BSN_2021 公眾號:BSN研習社 關于區(qū)塊鏈,交易是一個繞不開的話題。區(qū)塊鏈可以看做一個不斷實時同步的分布式賬本,在這個賬本上,每一個動作都可以算作一筆“交易”。正是一筆筆交易,才構成了賬本的全部。 關于交易,有很多基礎術語需要我們了解。 交易/Transaction

    2024年02月06日
    瀏覽(29)
  • 區(qū)塊鏈中的共識機制以及共識算法

    目錄 什么是共識 什么是共識機制 共識機制類型 1、基于工作證明(Proof of Work?PoW) PoW的特點

    2024年02月11日
    瀏覽(33)
  • (11-3-01 )檢測以太坊區(qū)塊鏈中的非法賬戶

    源碼和數(shù)據(jù)集下載在本篇最后 以太坊(Ethereum)是一種基于區(qū)塊鏈技術的開源平臺和加密貨幣。它于2015年由Vitalik Buterin和Gavin Wood等開發(fā)者創(chuàng)建,并成為比特幣之后最受歡迎的加密貨幣之一。以太坊不僅支持加密貨幣交易,還為開發(fā)者和企業(yè)提供了構建去中心化應用程序的強

    2024年02月02日
    瀏覽(24)
  • 淺析區(qū)塊鏈中的數(shù)據(jù)可用性采樣技術(DAS)

    淺析區(qū)塊鏈中的數(shù)據(jù)可用性采樣技術(DAS)

    任何一條區(qū)塊鏈中,數(shù)據(jù)可用性都是一個必不可少的關鍵性內容。在當今區(qū)塊鏈主流采用的欺詐證明的樂觀系統(tǒng)或有效性證明系統(tǒng)中,都需要“數(shù)據(jù)可用性”進行驗證,確保系統(tǒng)活躍性。 在早期的區(qū)塊鏈項目中,用戶需要下載整個數(shù)據(jù)塊來確保數(shù)據(jù)可用性。簡答來說,就是用

    2024年02月11日
    瀏覽(25)
  • 區(qū)塊鏈中的 Gas 費是什么?我一定要交么?

    區(qū)塊鏈中的 Gas 費是什么?我一定要交么?

    經常使用以太坊等區(qū)塊鏈的人,對于 Gas 這個詞一定不陌生。那么,Gas 是什么呢? Gas 在英文中是指“燃料、汽油”的意思,在區(qū)塊鏈當中,它也的確和“汽油”有著類似的功能。區(qū)塊鏈是一個由無數(shù)節(jié)點共同構成的去中心化網(wǎng)絡,在這個網(wǎng)絡中,每一個節(jié)點都可以看做是一

    2024年02月11日
    瀏覽(26)
  • (11-3-7 )檢測以太坊區(qū)塊鏈中的非法賬戶:模型評估

    (11-3-7 )檢測以太坊區(qū)塊鏈中的非法賬戶:模型評估

    11.3.7 ?模型評估 模型評估(Model Evaluation)是在機器學習和統(tǒng)計建模中的重要步驟,用于評估構建的模型的性能和有效性。它涉及使用不同的指標和技巧來量化模型在處理數(shù)據(jù)和進行預測時的表現(xiàn),并幫助確定模型是否足夠好以滿足特定任務的需求。 ( 1 ) 對模型進行全面評

    2024年02月02日
    瀏覽(29)
  • J9數(shù)字論:如何理解區(qū)塊鏈中的公鏈,私鏈,側鏈,聯(lián)盟鏈

    J9數(shù)字論:如何理解區(qū)塊鏈中的公鏈,私鏈,側鏈,聯(lián)盟鏈

    區(qū)塊鏈簡而言之,就是一個分散式的記賬本,有著點對點交易查詢,公正,透明,可追溯,不可篡改,去中心化的特點。 區(qū)塊鏈在大類上被分為公共區(qū)塊鏈(公鏈),聯(lián)盟區(qū)塊鏈和私有區(qū)塊鏈,TVL和用戶量最大的公鏈當屬以太坊。而除以太坊以外,其他公鏈在自身定位分類或

    2024年02月12日
    瀏覽(23)
  • (11-3-03)檢測以太坊區(qū)塊鏈中的非法賬戶: 數(shù)據(jù)分析(2)

    (11-3-03)檢測以太坊區(qū)塊鏈中的非法賬戶: 數(shù)據(jù)分析(2)

    ( 1 1)再次 獲取數(shù)據(jù)集的列名,具體實現(xiàn)代碼如下所示。 ( 1 2) 根據(jù)指定的相關性閾值(0.7),選擇相關性超過閾值的列,并將這些列的名稱存儲在 to_drop 列表中。最后,打印輸出需要刪除的列數(shù)。具體實現(xiàn)代碼如下所示。 執(zhí)行后會輸出: ( 1 3) 列表to_drop 包含了根據(jù)

    2024年02月02日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包