久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

php構建一個區塊鏈(含源碼)

php構建一個區塊鏈(含源碼)

php構建一個區塊鏈(含源碼)

我們要用PHP編程語言構建區塊鏈,區塊鏈本身就是一個非常簡單的概念,它是一個非常簡單的數據結構,數字貨幣是很復雜,但區塊鏈不是,它們復雜的原因是共識算法,挖礦機制和運行在他們之上的一切,但區塊鏈本身是很容易理解的,在你真正了解區塊鏈是如何工作的之前,你需要知道什么,你需要知道什么是哈希hash?它們是如何工作的?

哈希基本上是某種數據的數字簽名,例如可以拍一部電影,可以hash它并得到一個數字簽名;可以拿一封電子郵件,可以把它hash并得到一個數字簽名;還可以拿一個字,也可以hash它,你可以拿任何數據,然后hash它,你都可以得到一個hash值。它只是對該數據進行數字簽名。

這個hash哈希實際上是如何工作的?讓我們深入了解下。

我們將在PHP中構建區塊鏈,這將非常簡單,如果你懂一點兒編程,你也可以用另一種語言來做,如果你不懂編程,我想你仍然能夠大致理解它是如何工作的,所以讓我們來談談哈希hash。

<?php     $list1 = ["a","b","c"];     $list2 = ["a","b","c"];     echo "list 1: ".md5(serialize($list1));     echo "<br/>list 2: ".md5(serialize($list2)); ?>

正如你所看到的,我們有兩個列表,我們有兩個包含a、b、c的列表,這是數據,這是我們試圖hash的字符串,讓我們看看我們從列表1和2中得到什么樣的數字簽名。

輸出結果:

list 1: ec10e0c7a344da191700ab4ace1a5e26 list 2: ec10e0c7a344da191700ab4ace1a5e26

你可以看到,當我們得到這兩個哈希字符串或數字簽名,這兩個是相同的。

如果我現在改變list1中的內容,例如:

<?php     $list1 = ["aaa","b","c"]; //Changed     $list2 = ["a","b","c"];     echo "list 1: ".md5(serialize($list1));     echo "<br/>list 2: ".md5(serialize($list2)); ?>

現在我在運行它:

list 1: 97f4361000fdba1732a50f1771c9d830 list 2: ec10e0c7a344da191700ab4ace1a5e26

你可以看到我們得到了完全不同的數字簽名,所以如果我只是做一個小的修改,我只是干預數據,我試圖改變這個列表中的任何東西,我將得到完全不同的數字簽名,這是區塊鏈技術的基礎,因為區塊鏈是一個塊的列表,基本上是一個由區塊組成的鏈表和每個塊保持前一個塊的數字簽名,并且下一個塊的數字簽名是基于當前塊的數字簽名,所以它們總是關聯在一起,下一個簽名將基于當前簽名而當前簽名是基于以前的簽名,所以如果你改變過去的任何東西,你會打破所有的簽名,他們將看起來完全不同。

如何編碼

讓我們實際進入我們的區塊鏈編碼,我們需要做的第一件事是談論我們的Block類,在這種情況下,我們的塊將非常簡單,它只包含三個東西,它將包含在該塊中發生的交易列表,它將包含先前的哈希或數字簽名的前一個塊,它也將包含哈希的本身,這個哈希將基于交易和以前的哈希,所以如果任何人改變任何東西在前一塊,數字簽名的當前塊將改變,并改變下一個塊的數字簽名。

使用你喜歡的IDE重新生成空的PHP項目,我在本地主機環境中使用XAMPP。

現在創建一個新的文件block.php,并在其中放入下面的代碼片段。

<?php     class Block{               private $previousHash;               private $transactions=[];               private $blockHash;               function __construct($previousHash,$transactions){                              $this->previousHash = $previousHash;                              $this->transactions = $transactions;                              $contents = [md5(serialize($transactions)),$previousHash];                              $this->blockHash = md5(serialize($contents));               }               function getPreviousHash(){                              return $this->previousHash;               }               function getTransactions(){                              return $this->transactions;               }               function getBlockHash(){                              return $this->blockHash;               }     } ?>

現在創建另一個名為index.php的文件,并使用block.php類來創建一些塊。

index.php

<?php     include("block.php");     $genesisTransaction = ["a sends 11 bitcoins to b","b sends 44 bitcoins to c"];     $genenisBlock = new Block(0, $genesisTransaction);     $block1Transaction = ["a sends 11 bitcoins to b","b sends 44 bitcoins to c"];     $block1 = new Block($genenisBlock->getBlockHash(), $block1Transaction);     $block2Transaction = ["a sends 11 bitcoins to b","b sends 44 bitcoins to c"];     $block2 = new Block($block1->getBlockHash(), $block2Transaction);     echo "Genesis Block: ".$genenisBlock->getBlockHash();     echo "<br/>Block 1: ".$block1->getBlockHash();     echo "<br/>Block 2: ".$block2->getBlockHash(); ?>

輸出結果:

Genesis Block: d9c559b57e148b19802d8e70555f0303 Block 1: 29e9e5a309aae81243fdf73112253c74 Block 2: fbff8f664f6b4069bf7288cb1b86cb3a

請看當前哈希將基于以前的哈希,如果你改變了任何先前的交易,你的所有數字簽名將生效,例如,在genesisTransaction中,我改變了11到12,它將輸出完全不同的,如:

<?php     include("block.php");      $genesisTransaction = ["a sends 12 bitcoins to b","b sends 44 bitcoins to c"]; //changed 11 to 12     $genenisBlock = new Block(0, $genesisTransaction);     $block1Transaction = ["a sends 11 bitcoins to b","b sends 44 bitcoins to c"];     $block1 = new Block($genenisBlock->getBlockHash(), $block1Transaction);     $block2Transaction = ["a sends 11 bitcoins to b","b sends 44 bitcoins to c"];     $block2 = new Block($block1->getBlockHash(), $block2Transaction);     echo "Genesis Block: ".$genenisBlock->getBlockHash();     echo "<br/>Block 1: ".$block1->getBlockHash();     echo "<br/>Block 2: ".$block2->getBlockHash(); ?>

輸出結果:

Genesis Block: d9c559b57e148b19802d8e70555f0303 Block 1: 29e9e5a309aae81243fdf73112253c74 Block 2: fbff8f664f6b4069bf7288cb1b86cb3a

你可以看到任何一個交易的變化,在一個塊中的任何一個數據將傳播和改變未來的區塊鏈中所有的數字簽名,這就是區塊鏈的工作原理,因為如果我改變了什么,每個人都會看到我的數字簽名完全不同于其他人,所以這意味著我在欺騙別人。就如同我告訴每個人,嘿,一個人給了我很多比特幣,這里是區塊鏈,請每個人確認下。每個人將查看它并說清楚,我們知道這個區塊鏈無法確認這一點,因為我們有自己版本的區塊鏈,數字簽名會是完全不同,所以這不行。

我希望你能理解通過它們的數字簽名將區塊的哈希鏈接在一起的這一基本概念。在你的PHP中實現這個例子吧。

本文轉自:https://blog.csdn.net/mongo_node/article/details/81700425

推薦教程:《php教程》

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
国产一区白浆| 国产精品午夜av| 91视频久久| 欧美久久天堂| 99久久精品国产亚洲精品| 精品中文一区| 黄色精品网站| 国产模特精品视频久久久久| 国产午夜精品一区二区三区欧美| 一区二区自拍| 亚洲精品伊人| 成人在线免费观看91| 久久视频国产| 日韩极品在线观看| 国产高潮在线| 日韩专区在线视频| 国产精品白丝久久av网站| 人在线成免费视频| 蜜桃久久av一区| 久久69成人| 午夜国产欧美理论在线播放 | 蜜桃久久久久久| 国产精品成人国产| 99久久夜色精品国产亚洲1000部| 亚洲精选成人| 免费福利视频一区二区三区| 老鸭窝毛片一区二区三区| 国产伦精品一区二区三区在线播放| 国产在线日韩精品| 亚洲欧美日韩国产一区二区| 久久国产日韩欧美精品| 日韩久久一区二区三区| 日欧美一区二区| 新版的欧美在线视频| 天堂久久一区| 色综合www| 综合欧美亚洲| 日韩av自拍| 日韩综合小视频| 涩涩av在线| 91麻豆精品| 婷婷色综合网| 欧美激情三区| 一区二区三区午夜视频| 不卡福利视频| 国产乱子精品一区二区在线观看| 国产精品99一区二区| 久久av日韩| 中文字幕av一区二区三区人| 精品亚洲美女网站| 狂野欧美性猛交xxxx| 首页欧美精品中文字幕| 国产精品久久久久蜜臀 | 中文字幕av亚洲精品一部二部 | 国产美女视频一区二区| 黄色欧美日韩| 国产一区国产二区国产三区| 四虎精品永久免费| 在线日韩中文| 天堂√8在线中文| 欧美激情日韩| 日本不卡视频一二三区| av亚洲在线观看| 久久只有精品| 欧美亚洲三级| 天堂va在线高清一区| 国产亚洲在线观看| 99热精品久久| 欧美日韩视频免费观看| 精品国产成人| 美女视频免费精品| 久久国产日韩欧美精品| 婷婷久久免费视频| 蜜桃视频第一区免费观看| 尤物精品在线| 欧美日韩国产高清| 91成人精品视频| 99热精品久久| 亚洲伦乱视频| 日韩免费小视频| 蜜桃成人精品| av亚洲一区二区三区| 天堂8中文在线最新版在线| 成人在线黄色| 国产成人久久| 风间由美中文字幕在线看视频国产欧美| 欧美久久亚洲| 国产精品欧美日韩一区| 国产欧美在线| 免费看久久久| 国内精品美女在线观看| 激情不卡一区二区三区视频在线| 精品欧美视频| 精品免费视频| 欧美激情国产在线| 日韩久久电影| 欧美久久精品一级c片| 婷婷成人基地| 免费精品视频| 日韩欧美中文字幕在线视频| 日本午夜精品久久久久| 91伊人久久| 久久精品国产网站| 亚洲伦乱视频| 国产亚洲毛片| 日韩黄色免费网站| 欧美国产另类| 亚洲成人国产| 国产精品美女久久久浪潮软件| 欧美特黄一区| 视频一区中文字幕精品| 国产欧美一区二区精品久久久 | 蜜臀国产一区| 五月天久久久| 亚洲精品美女| 老司机精品视频网| 久久久久免费av| 日韩中文字幕区一区有砖一区| 日韩一区二区三区高清在线观看| 日韩视频一二区| 精品国产日韩欧美精品国产欧美日韩一区二区三区| 精品五月天堂| 亚洲黄色在线| 欧美久久久网站| 日韩免费福利视频| 一区二区三区网站| 麻豆极品一区二区三区| 亚洲特色特黄| 日韩精品a在线观看91| 久久久久久久欧美精品| 91视频精品| 另类国产ts人妖高潮视频| 无码日韩精品一区二区免费| 国产精品亚洲一区二区在线观看| 91日韩欧美| 男女激情视频一区| 国产欧美91| 国产综合婷婷| 国产乱码精品一区二区亚洲| 婷婷激情一区| 中文在线日韩| 国产精品国产三级国产在线观看| 国产高清一区| 国产精品2区| 最新亚洲激情| 国产 日韩 欧美 综合 一区| 免费日韩av片| 国产一区二区三区日韩精品| 宅男噜噜噜66国产日韩在线观看| 国产精品免费99久久久| 国产一区日韩一区| 国产极品一区| 中文亚洲免费| 国产一区福利| 日韩激情视频网站| 欧美日韩在线观看视频小说| 国产精品一级| 亚洲伊人影院| 香蕉久久精品| 国内自拍视频一区二区三区| 男女男精品网站| 激情六月综合| 欧美黄页在线免费观看| 蜜桃视频第一区免费观看| 视频二区不卡| 久草精品视频| 欧美日韩午夜电影网| 影音先锋久久| 日韩欧美午夜| 久久av偷拍| 日韩高清不卡一区| 亚洲在线免费| 亚洲先锋成人| 亚洲国产福利| 国产精品美女久久久久久不卡| 免费在线成人网| 免费观看不卡av| 国产一区二区三区四区大秀| 国产精品一区三区在线观看| 中文一区一区三区免费在线观| 欧美日韩一二| 三级小说欧洲区亚洲区| 福利一区二区免费视频| 久久国际精品| 日本aⅴ免费视频一区二区三区| 在线综合视频| 在线 亚洲欧美在线综合一区| 久久蜜桃精品| 亚洲免费福利| 91中文字幕精品永久在线| 国产精品17p| 国产精品一区二区精品视频观看 | 日韩一区二区三区免费视频 | 精精国产xxxx视频在线播放| 久久精品国产在热久久| 日本成人手机在线| 日韩欧美三区| 日本不卡视频在线| 一区二区精品| 最新国产精品久久久|