您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python區塊鏈塊怎么添加的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python區塊鏈塊怎么添加文章都會有所收獲,下面我們一起來看看吧。
每個礦工將從先前創建的交易池中獲取交易.要跟蹤已挖掘的消息數量,我們必須創建一個全局變量 :
last_transaction_index = 0
我們現在讓我們的第一個礦工在區塊鏈中添加一個區塊.
到添加一個新塊,我們首先創建一個 Block 類的實例
block = Block()
我們從隊列中選取前3個交易并減去;
for i in range(3): temp_transaction = transactions[last_transaction_index] # validate transaction
在將事務添加到塊之前礦工將驗證交易的有效性.通過測試發送方提供的哈希與礦工使用發送方公鑰生成的哈希的相等性來驗證交易有效性.此外,礦工將驗證發件人是否有足夠的余額來支付當前交易.
為簡潔起見,我們未在教程中包含此功能.驗證交易后,我們將其添加到塊實例中的 verified_transactions 列表中.
block.verified_transactions.append(temp_transaction)
我們遞增最后一個事務索引,以便下一個礦工將獲取隊列中的后續事務
last_transaction_index + = 1
我們在塊中添加了三個交易.完成此操作后,我們將初始化 Block 類的其余實例變量.我們首先添加最后一個塊的哈希值.
block.previous_block_hash = last_block_hash
接下來,我們挖掘難度等級為2的區塊.
block.Nonce = mine(block,2)
請注意, mine 函數的第一個參數是二進制對象.我們現在對整個塊進行哈希并在其上創建摘要.
digest = hash(block)
最后,我們將創建的塊添加到區塊鏈中,并重新初始化全局變量 last_block_hash ,以便在下一個區塊中使用.
添加塊的整個代碼顯示在下面 :
block = Block() for i in range(3): temp_transaction = transactions[last_transaction_index] # validate transaction # if valid block.verified_transactions.append (temp_transaction) last_transaction_index += 1 block.previous_block_hash = last_block_hash block.Nonce = mine (block, 2) digest = hash (block) TPCoins.append (block) last_block_hash = digest
現在我們將向區塊鏈添加兩個塊.添加下兩個塊的代碼在下面和下面給出;
# Miner 2 adds a block block = Block() for i in range(3): temp_transaction = transactions[last_transaction_index] # validate transaction # if valid block.verified_transactions.append (temp_transaction) last_transaction_index += 1 block.previous_block_hash = last_block_hash block.Nonce = mine (block, 2)digest = hash (block) TPCoins.append (block)last_block_hash = digest # Miner 3 adds a block block = Block() for i in range(3): temp_transaction = transactions[last_transaction_index] #display_transaction (temp_transaction) # validate transaction # if valid block.verified_transactions.append (temp_transaction) last_transaction_index += 1 block.previous_block_hash = last_block_hash block.Nonce = mine (block, 2) digest = hash (block) TPCoins.append (block) last_block_hash = digest
當你添加這兩個塊時,您還將看到查找Nonce所需的迭代次數.此時,我們的區塊鏈共包含4個區塊,包括創世區塊.
您可以驗證整個區塊鏈的內容使用以下語句 :
dump_blockchain(TPCoins)
你會看到輸出類似于下面顯示的那個 :
Number of blocks in the chain: 4 block # 0 sender: Genesis ----- recipient: 30819f300d06092a864886f70d010101050003818d0030818902818100ed272b52ccb539e2cd779 c6cc10ed1dfadf5d97c6ab6de90ed0372b2655626fb79f62d0e01081c163b0864cc68d426bbe943 8e8566303bb77414d4bfcaa3468ab7febac099294de10273a816f7047d4087b4bafa11f141544d4 8e2f10b842cab91faf33153900c7bf6c08c9e47a7df8aa7e60dc9e0798fb2ba3484bbdad2e44302 03010001 ----- value: 500.0 ----- time: 2019-01-14 16:18:02.042739 ----- -------------- ===================================== block # 1 sender: 30819f300d06092a864886f70d010101050003818d0030818902818100bb064c99c492144a9f463 480273aba93ac1db1f0da3cb9f3c1f9d058cf499fd8e54d244da0a8dd6ddd329ec86794b04d773e b4841c9f935ea4d9ccc2821c7a1082d23b6c928d59863407f52fa05d8b47e5157f8fe56c2ce3279 c657f9c6a80500073b0be8093f748aef667c03e64f04f84d311c4d866c12d79d3fc3034563dfb02 03010001 ----- recipient: 30819f300d06092a864886f70d010101050003818d0030818902818100be93b516b28c6e674abe7 abdb11ce0fdf5bb728b75216b73f37a6432e4b402b3ad8139b8c0ba541a72c8add126b6e1a1308f b98b727beb63c6060356bb177bb7d54b54dbe87aee7353d0a6baa9397704de625d1836d3f42c7ee 5683f6703259592cc24b09699376807f28fe0e00ff882974484d805f874260dfc2d1627473b9102 03010001 ----- value: 15.0 ----- time: 2019-01-14 16:18:01.859915 ----- -------------- sender: 30819f300d06092a864886f70d010101050003818d0030818902818100bb064c99c492144a9f463 480273aba93ac1db1f0da3cb9f3c1f9d058cf499fd8e54d244da0a8dd6ddd329ec86794b04d773e b4841c9f935ea4d9ccc2821c7a1082d23b6c928d59863407f52fa05d8b47e5157f8fe56c2ce3279 c657f9c6a80500073b0be8093f748aef667c03e64f04f84d311c4d866c12d79d3fc3034563dfb02 03010001 ----- recipient: 30819f300d06092a864886f70d010101050003818d0030818902818100a070c82b34ae143cbe59b 3a2afde7186e9d5bc274955d8112d87a00256a35369acc4d0edfe65e8f9dc93fbd9ee74b9e7ea12 334da38c8c9900e6ced1c4ce93f86e06611e656521a1eab561892b7db0961b4f212d1fd5b5e49ae 09cf8c603a068f9b723aa8a651032ff6f24e5de00387e4d062375799742a359b8f22c5362e56502 03010001 ----- value: 6.0 ----- time: 2019-01-14 16:18:01.860966 ----- -------------- sender: 30819f300d06092a864886f70d010101050003818d0030818902818100be93b516b28c6e674abe7 abdb11ce0fdf5bb728b75216b73f37a6432e4b402b3ad8139b8c0ba541a72c8add126b6e1a1308f b98b727beb63c6060356bb177bb7d54b54dbe87aee7353d0a6baa9397704de625d1836d3f42c7ee 5683f6703259592cc24b09699376807f28fe0e00ff882974484d805f874260dfc2d1627473b9102 03010001 ----- recipient: 30819f300d06092a864886f70d010101050003818d0030818902818100cba097c0854876f41338c 62598c658f545182cfa4acebce147aedf328181f9c4930f14498fd03c0af6b0cce25be99452a81d f4fa30a53eddbb7bb7b203adf8764a0ccd9db6913a576d68d642d8fd47452590137869c25d9ff83 d68ebe6d616056a8425b85b52e69715b8b85ae807b84638d8f00e321b65e4c33acaf6469e18e302 03010001 ----- value: 2.0 ----- time: 2019-01-14 16:18:01.861958 ----- -------------- ===================================== block # 2 sender: 30819f300d06092a864886f70d010101050003818d0030818902818100a070c82b34ae143cbe59b 3a2afde7186e9d5bc274955d8112d87a00256a35369acc4d0edfe65e8f9dc93fbd9ee74b9e7ea12 334da38c8c9900e6ced1c4ce93f86e06611e656521a1eab561892b7db0961b4f212d1fd5b5e49ae 09cf8c603a068f9b723aa8a651032ff6f24e5de00387e4d062375799742a359b8f22c5362e56502 03010001 ----- recipient: 30819f300d06092a864886f70d010101050003818d0030818902818100be93b516b28c6e674abe7 abdb11ce0fdf5bb728b75216b73f37a6432e4b402b3ad8139b8c0ba541a72c8add126b6e1a1308f b98b727beb63c6060356bb177bb7d54b54dbe87aee7353d0a6baa9397704de625d1836d3f42c7ee 5683f6703259592cc24b09699376807f28fe0e00ff882974484d805f874260dfc2d1627473b9102 03010001 ----- value: 4.0 ----- time: 2019-01-14 16:18:01.862946 ----- -------------- sender: 30819f300d06092a864886f70d010101050003818d0030818902818100cba097c0854876f41338c 62598c658f545182cfa4acebce147aedf328181f9c4930f14498fd03c0af6b0cce25be99452a81d f4fa30a53eddbb7bb7b203adf8764a0ccd9db6913a576d68d642d8fd47452590137869c25d9ff83 d68ebe6d616056a8425b85b52e69715b8b85ae807b84638d8f00e321b65e4c33acaf6469e18e302 03010001 ----- recipient: 30819f300d06092a864886f70d010101050003818d0030818902818100a070c82b34ae143cbe59b 3a2afde7186e9d5bc274955d8112d87a00256a35369acc4d0edfe65e8f9dc93fbd9ee74b9e7ea12 334da38c8c9900e6ced1c4ce93f86e06611e656521a1eab561892b7db0961b4f212d1fd5b5e49ae 09cf8c603a068f9b723aa8a651032ff6f24e5de00387e4d062375799742a359b8f22c5362e56502 03010001 ----- value: 7.0 ----- time: 2019-01-14 16:18:01.863932 ----- -------------- sender: 30819f300d06092a864886f70d010101050003818d0030818902818100be93b516b28c6e674abe7 abdb11ce0fdf5bb728b75216b73f37a6432e4b402b3ad8139b8c0ba541a72c8add126b6e1a1308f b98b727beb63c6060356bb177bb7d54b54dbe87aee7353d0a6baa9397704de625d1836d3f42c7ee 5683f6703259592cc24b09699376807f28fe0e00ff882974484d805f874260dfc2d1627473b9102 03010001 ----- recipient: 30819f300d06092a864886f70d010101050003818d0030818902818100a070c82b34ae143cbe59b 3a2afde7186e9d5bc274955d8112d87a00256a35369acc4d0edfe65e8f9dc93fbd9ee74b9e7ea12 334da38c8c9900e6ced1c4ce93f86e06611e656521a1eab561892b7db0961b4f212d1fd5b5e49ae 09cf8c603a068f9b723aa8a651032ff6f24e5de00387e4d062375799742a359b8f22c5362e56502 03010001 ----- value: 3.0 ----- time: 2019-01-14 16:18:01.865099 ----- -------------- ===================================== block # 3 sender: 30819f300d06092a864886f70d010101050003818d0030818902818100a070c82b34ae143cbe59b 3a2afde7186e9d5bc274955d8112d87a00256a35369acc4d0edfe65e8f9dc93fbd9ee74b9e7ea12 334da38c8c9900e6ced1c4ce93f86e06611e656521a1eab561892b7db0961b4f212d1fd5b5e49ae 09cf8c603a068f9b723aa8a651032ff6f24e5de00387e4d062375799742a359b8f22c5362e56502 03010001 ----- recipient: 30819f300d06092a864886f70d010101050003818d0030818902818100bb064c99c492144a9f463 480273aba93ac1db1f0da3cb9f3c1f9d058cf499fd8e54d244da0a8dd6ddd329ec86794b04d773e b4841c9f935ea4d9ccc2821c7a1082d23b6c928d59863407f52fa05d8b47e5157f8fe56c2ce3279 c657f9c6a80500073b0be8093f748aef667c03e64f04f84d311c4d866c12d79d3fc3034563dfb02 03010001 ----- value: 8.0 ----- time: 2019-01-14 16:18:01.866219 ----- -------------- sender: 30819f300d06092a864886f70d010101050003818d0030818902818100a070c82b34ae143cbe59b 3a2afde7186e9d5bc274955d8112d87a00256a35369acc4d0edfe65e8f9dc93fbd9ee74b9e7ea12 334da38c8c9900e6ced1c4ce93f86e06611e656521a1eab561892b7db0961b4f212d1fd5b5e49ae 09cf8c603a068f9b723aa8a651032ff6f24e5de00387e4d062375799742a359b8f22c5362e56502 03010001 ----- recipient: 30819f300d06092a864886f70d010101050003818d0030818902818100be93b516b28c6e674abe7 abdb11ce0fdf5bb728b75216b73f37a6432e4b402b3ad8139b8c0ba541a72c8add126b6e1a1308f b98b727beb63c6060356bb177bb7d54b54dbe87aee7353d0a6baa9397704de625d1836d3f42c7ee 5683f6703259592cc24b09699376807f28fe0e00ff882974484d805f874260dfc2d1627473b9102 03010001 ----- value: 1.0 ----- time: 2019-01-14 16:18:01.867223 ----- -------------- sender: 30819f300d06092a864886f70d010101050003818d0030818902818100cba097c0854876f41338c 62598c658f545182cfa4acebce147aedf328181f9c4930f14498fd03c0af6b0cce25be99452a81d f4fa30a53eddbb7bb7b203adf8764a0ccd9db6913a576d68d642d8fd47452590137869c25d9ff83 d68ebe6d616056a8425b85b52e69715b8b85ae807b84638d8f00e321b65e4c33acaf6469e18e302 03010001 ----- recipient: 30819f300d06092a864886f70d010101050003818d0030818902818100bb064c99c492144a9f463 480273aba93ac1db1f0da3cb9f3c1f9d058cf499fd8e54d244da0a8dd6ddd329ec86794b04d773e b4841c9f935ea4d9ccc2821c7a1082d23b6c928d59863407f52fa05d8b47e5157f8fe56c2ce3279 c657f9c6a80500073b0be8093f748aef667c03e64f04f84d311c4d866c12d79d3fc3034563dfb02 03010001 ----- value: 5.0 ----- time: 2019-01-14 16:18:01.868241 ----- -------------- =====================================
關于“Python區塊鏈塊怎么添加”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python區塊鏈塊怎么添加”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。