100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > PHP实现简易版区块链

PHP实现简易版区块链

时间:2024-01-04 16:34:39

相关推荐

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。