· 8 years ago · Jun 06, 2018, 06:38 AM
1<?php
2
3class Blockchain
4{
5 public $lastHash;
6
7 private $db;
8
9 public function __construct()
10 {
11 $this->db = new \PDO('sqlite:blockchain.db');
12 $this->db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
13
14 $this->db->exec(<<<QUERY
15CREATE TABLE IF NOT EXISTS blocks (
16 id INTEGER PRIMARY KEY,
17 hash VARCHAR(64),
18 block TEXT
19)
20QUERY
21 );
22
23 $this->lastHash = $this->db
24 ->query('SELECT hash FROM blocks ORDER BY id DESC LIMIT 1')
25 ->fetchColumn();
26
27 if (!$this->lastHash) {
28 echo "Blockchain'de blok bulunamadı. Genesis blok oluşturuluyor.";
29 $genesis = newBlock('Genesis Block', '');
30
31 $query = $this->db->prepare('INSERT INTO blocks (hash, block) VALUES (?, ?)');
32 $query->execute([$genesis->hash, json_encode($genesis)]);
33
34 $this->lastHash = $genesis->hash;
35 }
36 }
37}