做爰高潮a片〈毛片〉,尤物av天堂一区二区在线观看,一本久久A久久精品VR综合,添女人荫蒂全部过程av

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

通過Python函數(shù)來詳細解析區(qū)塊鏈

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 14:20:44
文檔

通過Python函數(shù)來詳細解析區(qū)塊鏈

通過Python函數(shù)來詳細解析區(qū)塊鏈:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于通過Python函數(shù)來詳細解析區(qū)塊鏈,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。我想對于那里的很多人來說,區(qū)塊鏈就是這種現(xiàn)象,很難不讓你頭腦發(fā)熱。我開始觀看視頻和閱讀文章,但對我個人而言,直到我編
推薦度:
導(dǎo)讀通過Python函數(shù)來詳細解析區(qū)塊鏈:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于通過Python函數(shù)來詳細解析區(qū)塊鏈,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。我想對于那里的很多人來說,區(qū)塊鏈就是這種現(xiàn)象,很難不讓你頭腦發(fā)熱。我開始觀看視頻和閱讀文章,但對我個人而言,直到我編

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于通過Python函數(shù)來詳細解析區(qū)塊鏈,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

我想對于那里的很多人來說,區(qū)塊鏈就是這種現(xiàn)象,很難不讓你頭腦發(fā)熱。我開始觀看視頻和閱讀文章,但對我個人而言,直到我編寫自己的簡單區(qū)塊鏈,我才真正理解它是什么以及它的潛在應(yīng)用價值。

我對區(qū)塊鏈的看法是它是一個公開的加密數(shù)據(jù)庫。如果你是亞馬遜并且你想使用該技術(shù)來跟蹤庫存水平,那么使用區(qū)塊鏈是否有意義?可能沒有,因為你的客戶不想花費資源來驗證你的區(qū)塊鏈,因為他們只顧看著網(wǎng)站說Only 1 left!

我會讓你考慮未來的應(yīng)用。所以不用多說,讓我們看看我們的7個函數(shù)!

def hash_function(k):
 """Hashes our transaction."""
 if type(k) is not str:
 k = json.dumps(k, sort_keys=True)

 return hashlib.sha256(k).hexdigest()

區(qū)塊鏈的核心是hash函數(shù)。如果沒有加密,區(qū)塊鏈將易于操作,并且交易將能夠以欺詐方式寫入。

def update_state(transaction, state):
 state = state.copy()

 for key in transaction:
 if key in state.keys():
 state[key] += transaction[key]
 else:
 state[key] = transaction[key]

 return state

state是來記錄誰擁有代幣交易情況。例如,我有10個代幣,我給1到Medium,然后狀態(tài)state將是下面字典的值。

{‘transaction’: {‘Tom’: 9, ‘Medium’: 1}}

值得注意的是,透支不可能存在。如果現(xiàn)有只有10個代幣,那么我就不能給某人11個代幣。以下函數(shù)驗證我們嘗試進行的交易確實有效。此外,交易總體上必須平衡。我不能給5個代幣并讓收件人收到4個代幣幣,因為這樣可以銷毀和生成代幣。

def valid_transaction(transaction, state):
 """A valid transaction must sum to 0."""
 if sum(transaction.values()) is not 0:
 return False

 for key in transaction.keys():
 if key in state.keys():
 account_balance = state[key]
 else:
 account_balance = 0

 if account_balance + transaction[key] < 0:
 return False

 return True

現(xiàn)在,我們可以制作我們的區(qū)塊。讀取前一個區(qū)塊的信息,并將其用于將其鏈接到新區(qū)塊。這也是區(qū)塊鏈理念的核心。可以嘗試以欺騙性的方式將看似有效的交易插入到區(qū)塊鏈中,但是解密所有先前的塊在計算上(幾乎)是不可能的,這就保留了區(qū)塊鏈的完整性。

def make_block(transactions, chain):
 """Make a block to go into the chain."""
 parent_hash = chain[-1]['hash']
 block_number = chain[-1]['contents']['block_number'] + 1

 block_contents = {
 'block_number': block_number,
 'parent_hash': parent_hash,
 'transaction_count': block_number + 1,
 'transaction': transactions
 }

 return {'hash': hash_function(block_contents), 'contents': block_contents}

下面是一個小輔助函數(shù)來檢查前一個塊的哈希值:

def check_block_hash(block):
 expected_hash = hash_function(block['contents'])

 if block['hash'] is not expected_hash:
 raise

 return

一旦我們將所有東西組合在一起,就有時間來創(chuàng)建我們的區(qū)塊。我們現(xiàn)在將更新區(qū)塊鏈。

def check_block_validity(block, parent, state):
 parent_number = parent['contents']['block_number']
 parent_hash = parent['hash']
 block_number = block['contents']['block_number']

 for transaction in block['contents']['transaction']:
 if valid_transaction(transaction, state):
 state = update_state(transaction, state)
 else:
 raise

 check_block_hash(block) # Check hash integrity

 if block_number is not parent_number + 1:
 raise

 if block['contents']['parent_hash'] is not parent_hash:
 raise

 return state

在我們完成之前,必須驗證區(qū)塊鏈:

def check_chain(chain):
 """Check the chain is valid."""
 if type(chain) is str:
 try:
 chain = json.loads(chain)
 assert (type(chain) == list)
 except ValueError:
 # String passed in was not valid JSON
 return False
 elif type(chain) is not list:
 return False

 state = {}

 for transaction in chain[0]['contents']['transaction']:
 state = update_state(transaction, state)

 check_block_hash(chain[0])
 parent = chain[0]

 for block in chain[1:]:
 state = check_block_validity(block, parent, state)
 parent = block

 return state

最后,需要一個交易功能,它將以上所有內(nèi)容掛起:

def add_transaction_to_chain(transaction, state, chain):
 if valid_transaction(transaction, state):
 state = update_state(transaction, state)
 else:
 raise Exception('Invalid transaction.')

 my_block = make_block(state, chain)
 chain.append(my_block)

 for transaction in chain:
 check_chain(transaction)

 return state, chain

所以,現(xiàn)在我們有了7個函數(shù)。我們?nèi)绾闻c它互動?好吧,首先我們需要用Genesis Block啟動我們的區(qū)塊鏈。這是我們的新代幣(或庫存等)的開始。出于本文解釋說明的目的,我會說我是Tom,將從擁有10個代幣開始。

genesis_block = {
 'hash': hash_function({
 'block_number': 0,
 'parent_hash': None,
 'transaction_count': 1,
 'transaction': [{'Tom': 10}]
 }),
 'contents': {
 'block_number': 0,
 'parent_hash': None,
 'transaction_count': 1,
 'transaction': [{'Tom': 10}]
 },
}

block_chain = [genesis_block]
chain_state = {'Tom': 10}

現(xiàn)在,看看當我將一些代幣交給Medium時會發(fā)生什么:

chain_state, block_chain = add_transaction_to_chain(transaction={'Tom': -1, 'Medium': 1}, state=chain_state, chain=block_chain)

state更新顯示誰擁有多少代幣:

{'Medium': 1, 'Tom': 9}

區(qū)塊鏈看起來像這樣:

[{'contents': {'block_number': 0,
 'parent_hash': None,
 'transaction': [{'Tom': 10}],
 'transaction_count': 1},
 'hash': '064d0b480b3b92761f31831d30ae9f01954efaa62371b4b44f11465ec22abe93'},
 {'contents': {'block_number': 1,
 'parent_hash': '064d0b480b3b92761f31831d30ae9f01954efaa62371b4b44f11465ec22abe93',
 'transaction': {'Medium': 1, 'Tom': 9},
 'transaction_count': 2},
 'hash': 'b4ae25f0cc0ee0b0caa66b9a3473e9a108652d53b1dc22a40962fef5c8c0f08c'}]

我們創(chuàng)建了第一個新交易并將其插入到堆棧頂部。現(xiàn)在,我希望我已經(jīng)激起了你的好奇心,并且有興趣將代碼復(fù)制下來并使用它。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

通過Python函數(shù)來詳細解析區(qū)塊鏈

通過Python函數(shù)來詳細解析區(qū)塊鏈:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于通過Python函數(shù)來詳細解析區(qū)塊鏈,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。我想對于那里的很多人來說,區(qū)塊鏈就是這種現(xiàn)象,很難不讓你頭腦發(fā)熱。我開始觀看視頻和閱讀文章,但對我個人而言,直到我編
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 易门县| 江门市| 乳源| 化州市| 砚山县| 巫山县| 白水县| 额敏县| 梁河县| 吴旗县| 古丈县| 民权县| 白水县| 高要市| 巴林左旗| 高雄市| 桐庐县| 巴塘县| 衡东县| 万载县| 三河市| 拜城县| 安龙县| 分宜县| 朝阳县| 古丈县| 将乐县| 米易县| 常熟市| 临西县| 元谋县| 海阳市| 西藏| 赣州市| 宜良县| 额济纳旗| 军事| 即墨市| 宕昌县| 治县。| 漾濞|