Minor Fixes
- Adding tables to SQL schema - Moved Kbucket usage from main.js to backup/head.js - node Kbucket, ordered NodeList are calculated in backup/head.js
This commit is contained in:
parent
c32833e625
commit
abb82b0b34
@ -112,6 +112,17 @@ PRIMARY KEY(id),
|
|||||||
FOREIGN KEY (floID) REFERENCES Users(floID)
|
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE nodeList(
|
||||||
|
floID CHAR(34) NOT NULL,
|
||||||
|
uri TINYTEXT,
|
||||||
|
PRIMARY KEY(floID)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE trustedList(
|
||||||
|
floID CHAR(34) NOT NULL,
|
||||||
|
FOREIGN KEY (floID) REFERENCES Users(floID),
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TABLE TagList (
|
CREATE TABLE TagList (
|
||||||
id INT NOT NULL AUTO_INCREMENT,
|
id INT NOT NULL AUTO_INCREMENT,
|
||||||
tag VARCHAR(50) NOT NULL,
|
tag VARCHAR(50) NOT NULL,
|
||||||
@ -133,27 +144,34 @@ FOREIGN KEY (tag) REFERENCES TagList(tag)
|
|||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE priceHistory (
|
CREATE TABLE priceHistory (
|
||||||
rate FLOAT NOT NULL,
|
rate FLOAT NOT NULL,
|
||||||
rec_time DATETIME DEFAULT CURRENT_TIMESTAMP
|
rec_time DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE auditTransaction(
|
CREATE TABLE auditTransaction(
|
||||||
rec_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
rec_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||||
unit_price FLOAT NOT NULL,
|
unit_price FLOAT NOT NULL,
|
||||||
quantity FLOAT NOT NULL,
|
quantity FLOAT NOT NULL,
|
||||||
total_cost FLOAT NOT NULL,
|
total_cost FLOAT NOT NULL,
|
||||||
sellerID CHAR(34) NOT NULL,
|
sellerID CHAR(34) NOT NULL,
|
||||||
FLO_seller_old FLOAT NOT NULL,
|
FLO_seller_old FLOAT NOT NULL,
|
||||||
FLO_seller_new FLOAT NOT NULL,
|
FLO_seller_new FLOAT NOT NULL,
|
||||||
Rupee_seller_old FLOAT NOT NULL,
|
Rupee_seller_old FLOAT NOT NULL,
|
||||||
Rupee_seller_new FLOAT NOT NULL,
|
Rupee_seller_new FLOAT NOT NULL,
|
||||||
buyerID CHAR(34) NOT NULL,
|
buyerID CHAR(34) NOT NULL,
|
||||||
FLO_buyer_old FLOAT NOT NULL,
|
FLO_buyer_old FLOAT NOT NULL,
|
||||||
FLO_buyer_new FLOAT NOT NULL,
|
FLO_buyer_new FLOAT NOT NULL,
|
||||||
Rupee_buyer_old FLOAT NOT NULL,
|
Rupee_buyer_old FLOAT NOT NULL,
|
||||||
Rupee_buyer_new FLOAT NOT NULL,
|
Rupee_buyer_new FLOAT NOT NULL,
|
||||||
FOREIGN KEY (sellerID) REFERENCES Users(floID),
|
FOREIGN KEY (sellerID) REFERENCES Users(floID),
|
||||||
FOREIGN KEY (buyerID) REFERENCES Users(floID)
|
FOREIGN KEY (buyerID) REFERENCES Users(floID)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE sinkShares(
|
||||||
|
floID CHAR(34) NOT NULL,
|
||||||
|
share TEXT,
|
||||||
|
time_ DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY(floID, share)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Backup feature (Table and Triggers) */
|
/* Backup feature (Table and Triggers) */
|
||||||
@ -222,13 +240,6 @@ FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('outputRupee', NEW.id) ON
|
|||||||
CREATE TRIGGER outputRupee_D AFTER DELETE ON outputRupee
|
CREATE TRIGGER outputRupee_D AFTER DELETE ON outputRupee
|
||||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('outputRupee', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, timestamp=DEFAULT;
|
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('outputRupee', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, timestamp=DEFAULT;
|
||||||
|
|
||||||
CREATE TRIGGER TagList_I AFTER INSERT ON TagList
|
|
||||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('TagList', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, timestamp=DEFAULT;
|
|
||||||
CREATE TRIGGER TagList_U AFTER UPDATE ON TagList
|
|
||||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('TagList', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, timestamp=DEFAULT;
|
|
||||||
CREATE TRIGGER TagList_D AFTER DELETE ON TagList
|
|
||||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('TagList', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, timestamp=DEFAULT;
|
|
||||||
|
|
||||||
CREATE TRIGGER Tags_I AFTER INSERT ON Tags
|
CREATE TRIGGER Tags_I AFTER INSERT ON Tags
|
||||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('Tags', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, timestamp=DEFAULT;
|
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('Tags', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, timestamp=DEFAULT;
|
||||||
CREATE TRIGGER Tags_U AFTER UPDATE ON Tags
|
CREATE TRIGGER Tags_U AFTER UPDATE ON Tags
|
||||||
|
|||||||
@ -1,9 +1,12 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
const K_Bucket = require('./KBucket');
|
||||||
const slave = require('./slave');
|
const slave = require('./slave');
|
||||||
const WebSocket = require('ws');
|
const WebSocket = require('ws');
|
||||||
const shareThreshold = 50 / 100;
|
const shareThreshold = 50 / 100;
|
||||||
|
|
||||||
var DB, app, wss; //Container for database and app
|
var DB, app, wss; //Container for database and app
|
||||||
|
var nodeList, nodeURL, nodeKBucket; //Container for (backup) node list
|
||||||
var nodeShares = null,
|
var nodeShares = null,
|
||||||
nodeSinkID = null,
|
nodeSinkID = null,
|
||||||
connectedSlaves = {},
|
connectedSlaves = {},
|
||||||
@ -284,7 +287,6 @@ function slaveConnect(floID, ws) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Transmistter
|
//Transmistter
|
||||||
var nodeList; //Container for (backup) node list
|
|
||||||
function startBackupTransmitter(server) {
|
function startBackupTransmitter(server) {
|
||||||
wss = new WebSocket.Server({
|
wss = new WebSocket.Server({
|
||||||
server
|
server
|
||||||
@ -346,8 +348,10 @@ function initProcess(a) {
|
|||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
init: initProcess,
|
init: initProcess,
|
||||||
set nodeList(ids) {
|
set nodeList(list) {
|
||||||
nodeList = ids;
|
nodeURL = list;
|
||||||
|
nodeKBucket = new K_Bucket(floGlobals.adminID, Object.keys(nodeURL));
|
||||||
|
nodeList = nodeKBucket.order;
|
||||||
},
|
},
|
||||||
set DB(db) {
|
set DB(db) {
|
||||||
DB = db;
|
DB = db;
|
||||||
|
|||||||
24
src/main.js
24
src/main.js
@ -11,13 +11,10 @@ const Database = require("./database");
|
|||||||
const App = require('./app');
|
const App = require('./app');
|
||||||
const PORT = config['port'];
|
const PORT = config['port'];
|
||||||
|
|
||||||
const K_Bucket = require('./backup/KBucket');
|
const backup = require('./backup/head');
|
||||||
const transmit = require('./backup/head');
|
|
||||||
|
|
||||||
var DB, app;
|
var DB, app;
|
||||||
|
|
||||||
var nodeList, nodeURL, nodeKBucket;
|
|
||||||
|
|
||||||
function refreshData(startup = false) {
|
function refreshData(startup = false) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
refreshDataFromBlockchain().then(result => {
|
refreshDataFromBlockchain().then(result => {
|
||||||
@ -47,10 +44,10 @@ function refreshDataFromBlockchain() {
|
|||||||
nodes_change = true;
|
nodes_change = true;
|
||||||
if (content.Nodes.remove)
|
if (content.Nodes.remove)
|
||||||
for (let n of content.Nodes.remove)
|
for (let n of content.Nodes.remove)
|
||||||
promises.push(DB.query("DELETE FROM nodeURL WHERE floID=?", [n]));
|
promises.push(DB.query("DELETE FROM nodeList WHERE floID=?", [n]));
|
||||||
if (content.Nodes.add)
|
if (content.Nodes.add)
|
||||||
for (let n in content.Nodes.add)
|
for (let n in content.Nodes.add)
|
||||||
promises.push(DB.query("INSERT INTO nodeURL (floID, url) VALUE (?,?) ON DUPLICATE KEY UPDATE url=NEW.url", [n, content.Nodes.add[n]]));
|
promises.push(DB.query("INSERT INTO nodeList (floID, uri) VALUE (?,?) ON DUPLICATE KEY UPDATE uri=NEW.uri", [n, content.Nodes.add[n]]));
|
||||||
}
|
}
|
||||||
//Trusted List
|
//Trusted List
|
||||||
if (content.Trusted) {
|
if (content.Trusted) {
|
||||||
@ -106,16 +103,13 @@ function loadDataFromDB(changes, startup) {
|
|||||||
|
|
||||||
loadDataFromDB.nodeList = function() {
|
loadDataFromDB.nodeList = function() {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
DB.query("SELECT * FROM nodeList").then(result => {
|
DB.query("SELECT (floID, uri) FROM nodeList").then(result => {
|
||||||
let nodes = {}
|
let nodes = {}
|
||||||
for (let i in result)
|
for (let i in result)
|
||||||
nodes[result[i].floID] = result[i];
|
nodes[result[i].floID] = result[i].uri;
|
||||||
nodeURL = nodes;
|
|
||||||
nodeKBucket = new K_Bucket(floGlobals.adminID, Object.keys(nodeURL));
|
|
||||||
nodeList = nodeKBucket.order;
|
|
||||||
//update dependents
|
//update dependents
|
||||||
transmit.nodeList = nodeList;
|
backup.nodeList = nodes;
|
||||||
resolve(nodeList);
|
resolve(nodes);
|
||||||
}).catch(error => reject(error))
|
}).catch(error => reject(error))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -135,7 +129,7 @@ loadDataFromDB.trustedIDs = function() {
|
|||||||
|
|
||||||
function setDB(db) {
|
function setDB(db) {
|
||||||
DB = db;
|
DB = db;
|
||||||
transmit.DB = DB;
|
backup.DB = DB;
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = function startServer(public_dir) {
|
module.exports = function startServer(public_dir) {
|
||||||
@ -170,7 +164,7 @@ module.exports = function startServer(public_dir) {
|
|||||||
refreshData(true).then(_ => {
|
refreshData(true).then(_ => {
|
||||||
app.start(PORT).then(result => {
|
app.start(PORT).then(result => {
|
||||||
console.log(result);
|
console.log(result);
|
||||||
transmit.init(app);
|
backup.init(app);
|
||||||
}).catch(error => console.error(error))
|
}).catch(error => console.error(error))
|
||||||
}).catch(error => console.error(error))
|
}).catch(error => console.error(error))
|
||||||
}).catch(error => console.error(error));
|
}).catch(error => console.error(error));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user