精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PHP也能實現區塊鏈?基礎結構篇

開發 后端 區塊鏈
什么是區塊鏈?官方的解釋是:區塊鏈是一個分布式記賬系統,是藉用密碼學串接并保護其內容的串連交易記錄。每一個區塊包含了前一個區塊的加密散列、對應的時間戳記以及交易數據,這樣的設計使得區塊內容具有難以被竄改的特性。接下來我們將會使用PHP來實現一個簡易的區塊鏈來加深對區塊鏈的理解。

[[240304]]

引言

什么是區塊鏈?官方的解釋是:區塊鏈是一個分布式記賬系統,是藉用密碼學串接并保護其內容的串連交易記錄(又稱區塊)。每一個區塊包含了前一個區塊的加密散列、對應的時間戳記以及交易數據(通常用默克爾樹算法計算的散列值表示),這樣的設計使得區塊內容具有難以被竄改的特性。用區塊鏈所串接的分布式賬本能讓兩方有效率地紀錄交易,且此交易可永久被查驗。

但這個解釋對于初學者來說太抽象了,所以接下來我們將會使用PHP來實現一個簡易的區塊鏈來加深對區塊鏈的理解。

區塊

大家應該玩過成語接龍,規則是這樣:我先說一個成語“人上人海”,下一個玩家需要使用我說的成語的最后一個字作為下一個成語的開頭,就是說需要使用“海”這個字作為新成語的開頭,這時就可以接一個“海闊天空”。

而區塊鏈的形式有點像成語接龍,就是下一個區塊必須使用上一個區塊的Hash值作為憑據來生成下一個區塊。如下圖:

這樣做的好處是:從任意一個區塊開始都可以通過前一個區塊的Hash值可以不斷的追溯整條區塊鏈,直到創世區塊(也就是區塊鏈的第一個區塊)。如果有人惡意攻擊,也必須更改整條區塊鏈的數據。但是計算Hash值是一個耗時的操作,所以要更改整條區塊鏈的數據基本是不可能達到,這就保證了區塊鏈的安全性。

下面我們使用PHP代碼來定義區塊: 

  1. <php  
  2. class Block {  
  3.     public $prevHash;  
  4.     public $hash;  
  5.     public $timeStamp 
  6.     public $data;  
字段 解釋
prevHash
前一個區塊的Hash值
hash 當前區塊的Hash值
timeStamp 區塊生成的時間戳
data 區塊保存的數據

prevHash、hash和timeStamp這幾個字段在區塊鏈中被稱為區塊頭,區塊的Hash值使用SHA-256算法計算。計算方法如下: 

  1. <php  
  2. class Block {  
  3.     ...  
  4.     public function setBlockHash() {  
  5.         $data = serialize($this);  
  6.         $this->hash = hash('sha256', $data);  
  7.     }  
  8.  

首先我們使用serialize()函數把整個區塊序列化,然后使用hash()函數計算區塊的Hash值,并賦值給hash字段。

區塊對象的構造函數如下: 

  1. <php  
  2. class Block {  
  3.     ...  
  4.     public function __construct($prevHash, $data) {  
  5.         $this->prevHash = $prevHash;  
  6.         $this->timeStamp = time();  
  7.         $this->data = $data;  
  8.         $this->setBlockHash();  
  9.     }  
  10.  

另外我們提供一個獲取區塊Hash值的方法: 

  1. <?php  
  2. class Block  
  3.  
  4.     ...  
  5.     public function getBlockHash()  
  6.     {  
  7.         return $this->hash;  
  8.     }  

區塊鏈

前面說了,區塊鏈就是按照一定的規則連接起來的區塊,連接的規則就是下一個區塊的區塊頭中必須包含前一個區塊的Hash值。我們編寫一個區塊鏈對象來保存整條區塊鏈,代碼如下: 

  1. <?php  
  2. include('block.php');  
  3. class Blockchain  
  4.  
  5.     public $blocks = [];  
  6.  

區塊鏈對象內部使用了一個數組來保存所有的區塊,現階段我們還沒有使用到數據庫來保存區塊鏈,所以現在只需要把區塊鏈保存在內存即可。

向區塊鏈添加一個新的區塊代碼如下: 

  1. <?php  
  2. include('block.php'); 
  3. class Blockchain 
  4.  
  5.     ...  
  6.     public function addBlock($data)  
  7.     {  
  8.         $prevBlock = $this->blocks[count($this->blocks)-1];  
  9.         $this->blocks[] = new Block($prevBlock->getBlockHash(), $data);  
  10.     } 
  11.  

因為生成新區塊必須包含前一個區塊的Hash值,所以在添加新區塊時需要獲取區塊鏈中最后一個區塊作為新區塊的前一個區塊,然后把前一個區塊的Hash包含到新區塊的區塊頭中。

可能聰明的讀者會發現,在區塊鏈剛創建時并沒有任何區塊,那么添加新區塊時拿哪個區塊作為前一個區塊呢?答案就是創世區塊。創世區塊不用包含前一個區塊的Hash值,而且隨著區塊鏈的創建被創建,代碼如下: 

  1. <?php  
  2. include('block.php');  
  3. class Blockchain  
  4.  
  5.     ...  
  6.     public function __construct()  
  7.     {  
  8.         $this->blocks[] = new Block('''Genesis Block');  
  9.     }  
  10.  

創世區塊并不需要包含前一個區塊的Hash值,所以在創建創世區塊時把前一個區塊的Hash值設置為空。

OK!我們的簡易區塊鏈已經完成了,現在來測試一下我們的代碼吧: 

  1. <?php  
  2. include('blockchain.php');  
  3. $bc = new Blockchain();  
  4.  
  5. $bc->addBlock('This is block1');  
  6. $bc->addBlock('This is block2');  
  7.  
  8. foreach ($bc->blocks as $block) {  
  9.     printf("PrevHash: %s\n", $block->prevHash);  
  10.     printf("Hash: %s\n", $block->hash);  
  11.     printf("Data: %s\n", $block->data);  
  12.     printf("\n");  
  13.  

我們來運行一下測試代碼,運行結果如下:

很好,結果符合我們的預期。

總結

本文只是實現了一個最簡易的區塊鏈,離完整的區塊鏈還有非常遠的距離。在我們現在的實現中存在很多不足,如:添加一個區塊的成本很低,沒有實現分布式,不能保存到本地磁盤(重啟機器數據就會丟失)等,接下來的教程將會不斷完善這些問題。 

責任編輯:龐桂玉 來源: PHP技術大全
相關推薦

2022-10-26 08:42:28

2021-03-31 22:39:04

區塊鏈司法數字化

2021-05-10 15:09:47

區塊鏈互聯網金融

2018-08-16 21:52:40

區塊鏈比特幣薪資

2019-09-16 18:38:06

2018-10-23 10:55:07

2018-03-05 17:27:34

2020-09-16 18:05:21

區塊鏈加密貨幣去中心化

2018-09-06 14:33:15

區塊鏈互聯網京東

2021-06-25 22:14:51

區塊鏈智慧城市數據

2021-09-29 16:53:53

區塊鏈數據技術

2021-11-05 16:17:08

區塊鏈供應鏈技術

2021-04-18 06:58:35

區塊鏈賬本結構

2018-06-27 18:50:02

區塊鏈數字貨幣比特幣

2022-08-08 11:53:02

區塊鏈CIO

2021-02-03 16:54:39

區塊鏈比特幣技術

2018-03-09 14:20:09

區塊鏈數字貨幣金融服務

2023-05-05 14:11:12

區塊鏈航空領域

2019-10-17 09:02:33

金融

2018-12-21 12:25:08

點贊
收藏

51CTO技術棧公眾號

亚洲综合久久久| 欧美日本一区| 亚洲精品国产无天堂网2021 | 国产一区二区三区的电影| 日韩黄色av网站| 黄色片在线免费| 欧美日本韩国一区二区| 亚洲在线黄色| 国产午夜精品一区二区三区| 中文字幕第17页| 色三级在线观看| 国产成人av一区二区| 久久久午夜视频| 欧美黄色高清视频| 欧美成人久久久| 伊人久久一区二区三区| 幼a在线观看| 国产成人免费视频| 日韩美女毛茸茸| 欧美激情精品久久| 全球av集中精品导航福利| 99久久99久久精品免费观看| 精品国产一区二区三区不卡| 99久久国产宗和精品1上映| 91短视频版在线观看www免费| 国产成人免费视频一区| 国产精品福利片| av资源吧首页| 国产91在线播放精品| 1024精品合集| 日韩久久在线| 国内毛片毛片毛片毛片| 欧美午夜精品一区二区三区电影| 欧美日韩大陆一区二区| 亚洲综合视频1区| 国产精品熟女视频| 都市激情亚洲欧美| 欧美精品乱码久久久久久按摩| 日韩欧美一区二| av免费网站在线观看| av一区二区三区四区| 亚洲精品女av网站| 欧美一级做a爰片免费视频| 亚洲精品网址| 亚洲少妇激情视频| 日本精品一二三区| 欧美.com| 7777精品伊人久久久大香线蕉最新版 | 日韩国产欧美精品在线| 日本55丰满熟妇厨房伦| 婷婷久久综合九色综合99蜜桃| 色噜噜狠狠成人中文综合| 国产系列第一页| 激情小说 在线视频| 成人av午夜影院| 久久精品久久久久久| 熟女人妻在线视频| 欧美天堂社区| 精品视频在线播放| 国产乱了高清露脸对白| 欧美黄色网视频| 亚洲国产精品女人久久久| 中文字幕永久免费| 欧美aaaaaaa| 亚洲欧美日本在线| 日本不卡一区二区三区四区| 精品自拍一区| 亚洲天天做日日做天天谢日日欢 | 亚洲日本国产精品| 成人精品小蝌蚪| 国产精品久久久久久久天堂第1集| www.av网站| 成人黄色在线网站| 国外成人免费视频| 国产黄色小视频网站| 999久久久91| 欧美精品做受xxx性少妇| 网爆门在线观看| 亚洲国产精品免费视频| 色综合久久综合中文综合网| 麻豆久久久9性大片| 韩国中文字幕hd久久精品| 国产盗摄视频一区二区三区| 国产精品一区二区三区免费观看| 手机看片1024国产| 久久日韩精品一区二区五区| 亚洲精品国产精品国自产观看 | 精品国产亚洲一区二区在线观看| 日韩一区二区三区精品视频 | 97人妻精品视频一区| 久久国产精品99精品国产 | 久久在线免费观看视频| 少妇影院在线观看| 亚洲精品社区| 国产精品美女网站| 精品毛片一区二区三区| 成人免费毛片片v| 欧美日韩在线精品一区二区三区| 在线免费观看黄色| 亚洲一区二区三区在线看| 69精品丰满人妻无码视频a片| 人成在线免费网站| 在线不卡a资源高清| 在线成人精品视频| 日韩成人动漫在线观看| 亚洲视屏在线播放| 九九九久久久久| 国产欧美丝祙| 91欧美精品午夜性色福利在线| 欧美 日韩 中文字幕| 久久一夜天堂av一区二区三区| 一区二区视频在线免费| 美女视频在线免费| 欧美一区二区三区精品| 中文字幕一区二区人妻电影丶| www.久久东京| 日韩在线观看网址| 日韩一区二区视频在线| 国产一区二区网址| 欧美日韩精品不卡| 都市激情久久综合| 欧美在线播放高清精品| 亚洲av成人片色在线观看高潮| 日韩精品水蜜桃| 精品爽片免费看久久| 国产人与禽zoz0性伦| 精品国产乱码久久久久久果冻传媒 | 一区二区三区日韩欧美| 在线观看的毛片| 欧美大片网址| 美女撒尿一区二区三区| 日本黄色一级视频| 99久久免费精品高清特色大片| 亚洲图片都市激情| 粉嫩一区二区三区| 日韩精品一区二区三区视频| 最新日韩免费视频| 天堂蜜桃一区二区三区| 久久久一本精品99久久精品66 | 高清不卡一区| 国产一区二区三区网站| 综合网在线观看| 不卡的av在线| 国产精品久久久久7777| 欧美.com| 大胆欧美人体视频| 国产精品无码免费播放| 国产精品婷婷午夜在线观看| 日本三级免费观看| 九热爱视频精品视频| 91产国在线观看动作片喷水| 午夜精品久久久久久久99热黄桃| 中文字幕中文在线不卡住| 天天爱天天操天天干| 国内精品久久久久久久影视简单| 日本不卡免费高清视频| 亚洲成人精品女人久久久| 一区二区三区精密机械公司| 九九热视频免费| 99精品视频在线观看播放| 国产欧美日韩中文字幕| 高清av在线| 欧美日韩在线播放三区四区| 99久久激情视频| 亚洲香蕉视频| 国产精品成人av性教育| 第一页在线观看| 欧美色欧美亚洲另类二区| 自拍偷拍视频亚洲| 日本亚洲天堂网| 欧美精品一区二区三区四区五区| jizz内谢中国亚洲jizz| 亚洲午夜久久久影院| 在线观看中文字幕av| 精一区二区三区| 自拍偷拍视频在线| 99视频这里有精品| 精品精品国产高清a毛片牛牛| 精品少妇久久久久久888优播| 国产成人精品综合在线观看 | 欧美一区二区三区久久精品茉莉花| 456国产精品| 日韩一二三四| 亚洲一区二区欧美日韩| 99久久免费看精品国产一区| 一区二区三区福利| 午夜精品一区二区在线观看的| jizz亚洲女人高潮大叫| 欧美美女18p| 一区二区视频网| 亚洲人成人一区二区在线观看| 美女又黄又免费的视频| 99国产精品久久久久久久| 日本一区二区久久精品| 久久精品 人人爱| 欧美激情欧美激情| 美女欧美视频在线观看免费 | 一级aaaa毛片| 亚洲精品欧美二区三区中文字幕| www.欧美日本| 国产一区二区三区四区三区四| 久久综合狠狠综合久久综青草| 欧洲亚洲精品| 性色av一区二区三区| 午夜视频在线| 日韩成人xxxx| 国产喷水福利在线视频| 色天使久久综合网天天| 久热这里有精品| 久久久精品天堂| 亚洲v在线观看| 国产欧美亚洲一区| 国产又粗又硬又长| 免费看日本一区二区| 亚洲自拍在线观看| 亚洲天堂导航| 欧美精品激情视频| 免费成人黄色| 亚洲美女性视频| 99热这里只有精品1| 在线视频一区二区三区| 久久亚洲AV无码| 中文字幕亚洲成人| 一级性生活大片| 成人在线综合网站| 99久久99精品| 美女国产一区二区三区| 人妻少妇被粗大爽9797pw| 午夜精品久久99蜜桃的功能介绍| 欧美一区二区在线| 久久国产精品色av免费看| 91日本视频在线| 久久精品xxxxx| 国产91精品在线播放| 交100部在线观看| 欧美精品一二区| 久久77777| 日韩视频在线免费观看| 亚洲免费视频网| 日韩欧美视频在线| 99久久免费国产精精品| 欧美日韩国产综合一区二区三区| 四虎精品永久在线| 91亚洲国产成人精品一区二三 | 国产露脸无套对白在线播放| 精品久久久久久中文字幕一区奶水| 免费无遮挡无码永久在线观看视频 | 婷婷综合社区| 亚洲欧美日韩综合一区| 日韩综合网站| 亚洲一区二区三区免费观看| 精品国产午夜| 日韩av电影免费在线观看| 菁菁伊人国产精品| 9a蜜桃久久久久久免费| а天堂中文最新一区二区三区| 国产日韩欧美在线| 日韩黄色三级| 亚洲a成v人在线观看| 欧美视频三区| 岛国视频一区| 国产欧美视频在线| 国产精品久久7| 欧美日韩一区二区三区在线电影 | 欧美少妇性xxxx| 久久久福利视频| 久久久91麻豆精品国产一区| 国产精品久久综合av爱欲tv| 日本乱码一区二区三区不卡| 欧美综合国产精品久久丁香| 亚洲欧美se| 国产精品av在线| 蜜臀久久精品| 91国语精品自产拍在线观看性色 | 亚洲色欲色欲www| 欧美毛片在线观看| 天天影视涩香欲综合网| 久久精品久久久久久久| 欧美日韩美女一区二区| 国产一区二区三区三州| 欧美大片一区二区| 色视频免费在线观看| 在线视频欧美性高潮| 日本黄色片在线观看| 色综合视频一区中文字幕| 日韩伦理在线一区| 欧美一级黄色网| 狂野欧美性猛交xxxx| 成人疯狂猛交xxx| 国产精品久久久久久av公交车| 91香蕉电影院| 四虎5151久久欧美毛片| 天天成人综合网| 亚洲毛片av| 中文字幕视频三区| 成人黄色a**站在线观看| a毛片毛片av永久免费| 久久免费视频色| 影音先锋男人资源在线观看| 亚洲午夜av在线| 依依成人综合网| 91精品午夜视频| 欧美一区二区视频| 欧美成人四级hd版| 欧洲一区二区三区精品| 97人摸人人澡人人人超一碰| 国产成人精品免费视| 小泽玛利亚av在线| 日本伊人久久| 日韩精品福利视频| 欧美日韩国产在线一区| 国产爆乳无码一区二区麻豆| 日韩精品国产精品| 国产视频久久久久久| 最近中文字幕一区二区三区| 日韩a级片在线观看| 91久久精品国产91性色tv| 国产男女猛烈无遮挡| 欧美成人伊人久久综合网| 成人免费高清在线播放| 97精品国产aⅴ7777| 国内不卡的一区二区三区中文字幕| 久久久久久亚洲精品不卡4k岛国 | 亚洲欧洲日产国产网站| 丰乳肥臀在线| 91沈先生播放一区二区| 免费视频一区三区| 欧美精品自拍视频| 国产成人免费视频网站| 午夜国产福利一区二区| 欧美日韩国产bt| 成人综合影院| 国产精品91视频| 日韩在线影视| 伊人再见免费在线观看高清版| 欧美一区二区三区另类| 在线a免费观看| 亚洲欧美偷拍三级| 中文字幕人妻精品一区| 亚洲欧美国产精品久久久久久久 | 伊人国产在线视频| 久久久99免费| 青青视频在线免费观看| 亚洲级视频在线观看免费1级| 蜜桃视频网站在线观看| 国产不卡精品视男人的天堂| 免费看成人哺乳视频网站| 国产日韩成人内射视频| 久久久影视传媒| 区一区二在线观看| 夜夜躁日日躁狠狠久久88av| 日本欧美日韩| 品久久久久久久久久96高清| 99热精品在线观看| 欧美午夜aaaaaa免费视频| 欧美激情在线一区二区| 精品无码m3u8在线观看| 精品国产电影一区二区| 国产精品扒开做爽爽爽的视频 | 国产精品中文字幕亚洲欧美| 欧美在线播放视频| 国产suv精品一区| av3级在线| 亚洲少妇中文在线| 成人在线免费看片| 91精品美女在线| 色天天综合网| av日韩一区二区三区| 成人av手机在线观看| 久久国产一级片| 欧美午夜电影在线| 亚州男人的天堂| 97福利一区二区| 粉嫩一区二区三区四区公司1| 伊人久久大香线蕉午夜av| 亚洲一区二区免费看| 精品人妻少妇嫩草av无码| 欧美激情一区二区三区| 中文字幕人成人乱码亚洲电影| 欧美男插女视频| 综合久久av| 国产一区二区三区免费不卡| 亚洲激情婷婷| 久久一区二区电影| 欧美视频中文字幕| 日本网站在线免费观看视频| 91久久在线观看| 一区久久精品| v8888av| 色悠悠亚洲一区二区| 偷拍自拍在线| 欧美激情亚洲国产| 欧美18免费视频| 人妻av中文系列| 国产精品色噜噜| 国产精品久久久久久免费播放| 97在线看福利| 成人中文视频| 国产三级生活片| 亚洲成人资源在线|