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

一段程序看懂比特幣原理

開發(fā)
自從比特幣火起來以后,網(wǎng)上對比特幣的解釋可謂汗牛充棟,紛繁復雜。但對于程序員來說,最直接的方式莫過于直接看程序代碼了。嫌比特幣代碼龐雜沒關系,我找到一段簡明扼要的代碼,用來理解比特幣再好不過了。

自從比特幣火起來以后,網(wǎng)上對比特幣的解釋可謂汗牛充棟,紛繁復雜。但對于程序員來說,最直接的方式莫過于直接看程序代碼了。嫌比特幣代碼龐雜沒關系,我找到一段簡明扼要的代碼,用來理解比特幣再好不過了。

以下這段程序轉自知乎上Wu Hao的回答

  1. function mine()  
  2. {  
  3.     while(true)  
  4.     {  
  5.         longestChain = getLongestValidChain()  
  6.  
  7.         -- A number that changes every time, so that you don't waste   
  8.         -- time trying to calculate a valid blockHash with the same  
  9.         -- input.  
  10.         nonce = getNewNonce()  
  11.  
  12.         currentTXs = getUnconfirmedTransactionsFromNetwork()  
  13.  
  14.         newBlock = getNewBlock(longestChain, currentTXs, nonce)  
  15.  
  16.         -- http://en.wikipedia.org/wiki/SHA-2  
  17.         -- and this is what all the "mining machines" are doing.  
  18.         blockHash = sha256(newBlock)  
  19.  
  20.         if (meetReqirements(blockHash))  
  21.         {  
  22.             broadcast(newBlock)  
  23.             -- Now the height the block chain is incremented by 1 
  24.             -- (if the new block is accepted by other peers),  
  25.             -- and all the TXs in the new block are "confirmed" 
  26.         }  
  27.     }  
  28. }  
  29. ////////////////////////////////////////////////////////////////  
  30. function sendBTC(amount)  
  31. {  
  32.     sourceTXs = pickConfirmedTransactionsToBeSpent(amount)  
  33.     tx = generateTX(sourceTXs, targetAddrs, amount, fee)  
  34.     signedTx = sign(tx, privateKeysOfAllInputAddress)  
  35.     broadcast(signedTx)  
  36. }  
  37. //////////////////////////////////////////////////////////////// 

下面是我的解釋:

挖礦過程就是不斷從比特幣網(wǎng)絡中獲取所有未確認交易getUnconfirmedTransactionsFromNetwork(),把它們打包成一個區(qū)塊并掛載目前最長的區(qū)塊鏈上getNewBlock(longestChain, currentTXs, nonce),然后計算新的區(qū)塊的散列值sha256(newBlock),如果散列值正好滿足挖礦難度了meetReqirements(blockHash),那么就挖礦成功了。所謂挖礦難度,指的是要求的二進制散列值末尾0的個數(shù),而散列值是碰運氣生成的,除了窮舉沒有別的辦法,要求的0個數(shù)越多挖礦的難度就越大。

付款過程就是把一些有余額的已確認交易拿出來作為發(fā)送地址pickConfirmedTransactionsToBeSpent(amount),然后根據(jù)目標地址支付一定交易費生成新的交易generateTX(sourceTXs, targetAddrs, amount, fee),并用錢包私鑰對交易簽名sign(tx, privateKeysOfAllInputAddress),然后廣播出去。

原文鏈接:https://www.byvoid.com/zhs/blog/bitcoin-principle-program

責任編輯:林師授 來源: byvoid.com
相關推薦

2017-04-06 12:20:16

2013-12-09 16:35:25

2018-11-02 16:16:41

程序硬盤存儲

2021-10-28 19:35:02

代碼main方法

2020-04-03 10:14:57

內(nèi)存蠕蟲代碼web安全

2015-10-09 11:44:06

2012-03-01 14:13:36

Java

2014-07-08 09:21:10

死代碼創(chuàng)意歌曲

2022-06-21 12:27:12

JavaScript前端

2018-06-19 08:02:00

統(tǒng)計程序微信

2020-12-31 10:14:42

防注入代碼繞過

2021-01-18 08:09:20

Java程序JIT

2021-01-04 05:58:57

WindowsXP微軟操作系統(tǒng)

2014-09-09 14:47:20

2021-02-04 07:55:28

代碼離職互聯(lián)網(wǎng)

2021-04-26 10:13:13

區(qū)塊鏈Blockchain物聯(lián)網(wǎng)

2023-12-18 10:45:31

2021-06-02 05:43:36

比特幣虛擬貨幣區(qū)塊鏈

2022-02-08 09:00:00

智能自動化人工智能RPA

2019-10-18 09:39:44

爬蟲消息大數(shù)據(jù)
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人在线免费 | 色综合久久88色综合天天 | 狼人伊人影院 | 中文字幕一区二区三区在线观看 | 久久性色| 男女视频免费 | 久久久久国产精品一区二区 | 嫩草视频在线免费观看 | 久久久久国产一区二区三区 | 久操伊人| 密室大逃脱第六季大神版在线观看 | 激情av在线 | 午夜影院黄 | 国产精品视频一区二区三区不卡 | 欧美群妇大交群中文字幕 | 日本黄色免费视频 | 欧美日韩精选 | 黄片毛片 | 99视频在线 | 国产成人精品一区二三区在线观看 | 99精品亚洲国产精品久久不卡 | 日皮视频免费 | 亚洲成人av在线 | 精品久久久久久久久久久 | 国产精品成人免费 | 欧美日韩综合一区 | 久久精品小视频 | 国产精品亚洲精品日韩已方 | 欧美亚洲第一区 | 久久久免费| 午夜电影网站 | 国产亚洲一区二区在线观看 | 亚洲欧美中文字幕在线观看 | 国产精品一级在线观看 | 97人人超碰 | 午夜精品导航 | 美女一区 | 免费亚洲成人 | 成人在线观看欧美 | 国产精品久久久久久久久久三级 | 亚洲综合在线一区二区 |