From 9192be36d316986984b91edd507ebf09ab73923e Mon Sep 17 00:00:00 2001 From: artemuhi Date: Thu, 7 Mar 2024 21:50:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BB=D1=8E=D1=81=20=D1=84=D1=83=D0=BD?= =?UTF-8?q?=D0=BA=D1=86=D0=B8=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- artemsbc.php | 63 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 8 deletions(-) diff --git a/artemsbc.php b/artemsbc.php index a303e69..2ace13b 100644 --- a/artemsbc.php +++ b/artemsbc.php @@ -1,20 +1,67 @@ 0, "time"=>time(), "data"=>$data, - "transaction"=>[] + "transaction"=>[], + "prevhash"=>"ZeroBlock" ]]; - $temp["hash"]=hash("sha256", json_encode($temp)); + $temp[0]["data"]["namebc"]=$namebc; + $temp[0]["hash"]=hash("sha256", json_encode($temp)); return artembc_save($filename, $temp); } -function artembc_addtransaction() {} -function artembc_initblock() {} +function artembc_addtransaction($filename, &$transaction, $data) { + $bc=artembc_load($filename); + $temp=count($transaction); + $transaction[]=[ + "id"=>count($transaction), + "idblock"=>count($bc)+1; + "time"=>time(), + "data"=>$data + ]; + $transaction[$temp]["hash"]=hash("sha256", json_encode($transaction[$temp])); + return true; +} +function artembc_initblock($filename, &$transaction, $data=[]) { + $bc=artembc_load($filename); + $temp=count($bc); + for($i = 0, $size = count($transaction), $correct=true; $i < $size; ++$i) { + $block=$transaction[$i]; + $hash=hash("sha256", json_encode([ + "id"=>$block["id"], + "idblock"=>$block["idblock"], + "time"=>$block["time"], + "data"=>$block["data"] + ])); + if ($block["idblock"] != $temp and $hash != $block["hash"]) { + $correct=false; + }; + }; + if ($correct) { + $bc[]=[ + "id"=>$temp, + "time"=>time(), + "data"=>$data, + "transaction"=>$transaction, + "prevhash"=>hash("sha256", json_encode($bc[$temp-1])) + ]; + }; + artembc_save($filename, $bc); + return $correct; +} function artembc_checkbc() {} -function artembc_getblock() {} -function artembc_getbc() {} -function artembc_getnamebc() {} +function artembc_getblock($filename, $id) { + $temp=artembc_load($filename); + return $temp[$id]; +} +function artembc_getbc($filename) { + return artembc_load($filename); +} +function artembc_getnamebc($filename) { + $bc=artembc_load($filename); + return $bc[0]["data"]["namebc"]; +} function artembc_save($filename, $data) { return file_put_contents($filename, json_encode($data)); }