PHP区块链

<?php
 
class Block {
    public $prevHash;
    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);
        $this->hash = hash('sha256', $data);
    }


    public function getBlockHash()
    {
        return $this->hash;
    }

}


class Blockchain
{
    public $blocks = [];

    public function __construct()
    {
        $this->blocks[] = new Block('', 'Genesis Block');
    }

    public function addBlock($data)
    {
        $prevBlock = $this->blocks[count($this->blocks)-1];
        $this->blocks[] = new Block($prevBlock->getBlockHash(), $data);
    }


}



$bc = new Blockchain();

$bc->addBlock('This is block1');
$bc->addBlock('This is block2');

foreach ($bc->blocks as $block) {
    printf("PrevHash: %s\n", $block->prevHash);
    printf("Hash: %s\n", $block->hash);
    printf("Data: %s\n", $block->data);
    printf("\n");
}

结果: 


PrevHash: 
Hash: 35fec6c8af446a0480c0b6eb2fdbee9eb9553ad6eef8e52ea55e01fe6a52645a
Data: Genesis Block

PrevHash: 35fec6c8af446a0480c0b6eb2fdbee9eb9553ad6eef8e52ea55e01fe6a52645a
Hash: de9c7cf4217f22bcee225076a57ccc5281c7a2a65e14a9f2b645e4924449a954
Data: This is block1

PrevHash: de9c7cf4217f22bcee225076a57ccc5281c7a2a65e14a9f2b645e4924449a954
Hash: aec6f71220d213b2842b0a222fbe459332fe7d9de0f8b83e92a55b40a14d1292
Data: This is block2

 https://blog.csdn.net/weixin_42633269/article/details/85129441

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值