PHP实现简易版区块链
生活随笔
收集整理的這篇文章主要介紹了
PHP实现简易版区块链
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<?php
//區塊
class Block{//前一個區塊HASH值public $prevHash;//當前區塊HASH值public $hash;//區塊生成的時間戳public $timestamp;//區塊保存的數據public $data;public function __construct($prevHash,$data){$this->prevHash = $prevHash;$this->timestamp = time();$this->data = $data;$this->setBlockHash();}public function setBlockHash(){$data = serialize($this);//var_dump($data);die();$this->hash = hash('sha256',$data);}public function getBlockHash(){return $this->hash;}}class BlockChain{public $blocks = [];public function __construct(){$this->blocks[] = new Block('',"zk");}public function addBlocks($data){$prevBlock = $this->blocks[count($this->blocks) - 1];$this->blocks [] = new Block($prevBlock->getBlockHash(),$data);}
}(new Block('','zk'))->setBlockHash();$blockChain = new BlockChain();
$blockChain->addBlocks('block 1');
$blockChain->addBlocks('blocks 2');$blockChainList = $blockChain->blocks;foreach ($blockChainList as $block){printf("PrevHash:%s\n",$block->prevHash);printf("Data:%s\n",$block->data);printf("Hash:%s\n",$block->hash);printf("\n");
}
結果:
> $ php btc.php PrevHash: Data:zk > Hash:8689f7e02b4bf853892e6c13bea62c7b1e10f00652494f0d069a63711ead772f > > PrevHash:8689f7e02b4bf853892e6c13bea62c7b1e10f00652494f0d069a63711ead772f > Data:block 1 > Hash:83456b3f7d9d202cb756872fa1c8f774980d708872b8d96e592b424973a33854 > > PrevHash:83456b3f7d9d202cb756872fa1c8f774980d708872b8d96e592b424973a33854 > Data:blocks 2 > Hash:31effc4968efdab5082917acde81efd1a91e25d8e427c91155330cb73d2c67ea總結
以上是生活随笔為你收集整理的PHP实现简易版区块链的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php读取pdf文件
- 下一篇: php根据手机号码获取省份