CREATE DATABASE IF NOT EXISTS chain; USE chain; CREATE TABLE IF NOT EXISTS blocks( rowId INT PRIMARY KEY AUTO INCREMENT, blockId VARCHAR(32) UNIQUE NOT NULL, blockHash VARCHAR(64) UNIQUE NOT NULL, previousHash VARCHAR(64) UNIQUE NOT NULL, timestamp DATETIME NOT NULL, height INT UNIQUE NOT NULL, nonce INT NOT NULL ); CREATE TABLE IF NOT EXISTS cards( rowId INT PRIMARY KEY AUTO INCREMENT, cardId VARCHAR(32) UNIQUE NOT NULL, pageId INT NOT NULL, FOREIGN KEY (blockId) REFERENCES blocks(blockId) ); CREATE TABLE IF NOT EXISTS transactions( rowId INT PRIMARY KEY AUTO INCREMENT, transactionId VARCHAR(32) UNIQUE NOT NULL, timestamp DATETIME NOT NULL, receiver VARCHAR(128) NOT NULL, isPending BOOLEAN NOT NULL DEFAULT true, isAbandoned BOOLEAN NOT NULL DEFAULT false, FOREIGN KEY (blockId) REFERENCES blocks(blockId), FOREIGN KEY (cardId) REFERENCES cards(cardId) ); CREATE TABLE IF NOT EXISTS peers( peerId INT PRIMARY KEY AUTO INCREMENT, baseUrl VARCHAR(128) UNIQUE NOT NULL, isUp BOOLEAN NOT NULL, downCount INT DEFAULT 0, lastTry TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );