update supernode modules

This commit is contained in:
sairajzero 2021-07-18 16:43:30 +05:30
parent 968e911b57
commit 433c395f8b
3 changed files with 25 additions and 34 deletions

View File

@ -1,4 +1,4 @@
var DB; //container for database
var DB, _list; //container for database and _list (stored n serving)
function processIncomingData(data) {
return new Promise((resolve, reject) => {
@ -38,7 +38,7 @@ function processDataFromUser(data) {
if (!floCrypto.validateAddr(data.receiverID))
return reject("Invalid receiverID")
let closeNode = kBucket.closestNode(data.receiverID)
if (!floGlobals.serveList.includes(closeNode))
if (!_list.serving.includes(closeNode))
return reject("Incorrect Supernode")
if (!floCrypto.validateAddr(data.receiverID))
return reject("Invalid senderID")
@ -70,7 +70,7 @@ function processRequestFromUser(request) {
if (!floCrypto.validateAddr(request.receiverID))
return reject("Invalid receiverID");
let closeNode = kBucket.closestNode(request.receiverID)
if (!floGlobals.serveList.includes(closeNode))
if (!_list.serving.includes(closeNode))
return reject("Incorrect Supernode");
DB.searchData(closeNode, request)
.then(result => resolve([result]))
@ -90,7 +90,7 @@ function processTagFromUser(data) {
if (data.requestorID !== floCrypto.getFloID(data.pubKey))
return reject("Invalid pubKey")
let closeNode = kBucket.closestNode(data.receiverID)
if (!floGlobals.serveList.includes(closeNode))
if (!_list.serving.includes(closeNode))
return reject("Incorrect Supernode")
let hashcontent = ["time", "application", "tag"]
.map(d => data[d]).join("|");
@ -133,5 +133,8 @@ module.exports = {
processIncomingData,
set DB(db){
DB = db
},
set _list(list){
_list = list
}
}

View File

@ -5,16 +5,11 @@ const WebSocket = require('ws');
const SUPERNODE_INDICATOR = '$',
//Message type
ORDER_BACKUP = "orderBackup",
START_BACKUP_SERVE = "startBackupServe",
STOP_BACKUP_SERVE = "stopBackupServe",
START_BACKUP_STORE = "startBackupStore",
STOP_BACKUP_STORE = "stopBackupStore",
STORE_BACKUP_DATA = "backupData",
STORE_MIGRATED_DATA = "migratedData",
DELETE_BACKUP_DATA = "backupDelete",
//STORE_MIGRATED_DATA = "migratedData",
//DELETE_BACKUP_DATA = "backupDelete",
TAG_BACKUP_DATA = "backupTag",
EDIT_BACKUP_DATA = "backupEdit",
NODE_ONLINE = "supernodeUp",
//EDIT_BACKUP_DATA = "backupEdit",
INITIATE_REFRESH = "initiateRefresh",
DATA_REQUEST = "dataRequest",
DATA_SYNC = "dataSync",
@ -267,9 +262,11 @@ function processTaskFromSupernode(packet, ws) {
case BACKUP_HANDSHAKE_INIT:
handshakeMid(from, ws)
break;
/*
case STORE_MIGRATED_DATA: //TODO
storeMigratedData(task.data)
break;
*/
}
});
}
@ -466,6 +463,7 @@ module.exports = {
setBlockchainParameters,
forwardToNextNode,
SUPERNODE_INDICATOR,
_list,
set DB(db){
DB = db
}

View File

@ -1,8 +1,9 @@
const http = require('http')
const WebSocket = require('ws')
const Server = module.exports = function(port, client, intra){
const server = http.createServer((req, res) => {
module.exports = function Server(port, client, intra) {
const server = http.createServer((req, res) => {
if (req.method === "GET") {
//GET request (requesting data)
req.on('end', () => {
@ -11,7 +12,7 @@ const Server = module.exports = function(port, client, intra){
var request = JSON.parse(req.url.substring(i));
client.processRequestFromUser(request)
.then(result => res.end(JSON.parse(result[0])))
.catch(error => res.end(error))
.catch(error => res.end(error.toString()))
}
})
}
@ -28,14 +29,15 @@ const Server = module.exports = function(port, client, intra){
sendToLiveRequests(result[0])
intra.forwardToNextNode(result[1], result[0])
}
}).catch(error => res.end(error))
}).catch(error => res.end(error.toString()))
})
}
});
server.listen(port, (err) => {
if(!err)
console.log(`Server running at port ${port}`);
if (!err)
console.log(`Server running at port ${port}`);
})
const wsServer = new WebSocket.Server({
server
});
@ -50,22 +52,10 @@ const Server = module.exports = function(port, client, intra){
.then(result => {
ws.send(JSON.parse(result[0]))
ws._liveReq = request;
}).catch(error => ws.send(error))
}
}
});
wsServer.on('connection', function connection(ws) {
ws.onmessage = function(evt) {
let message = evt.data;
if (message.startsWith(intra.SUPERNODE_INDICATOR))
intra.processTaskFromSupernode(message, ws);
else {
var request = JSON.parse(message);
client.processRequestFromUser(JSON.parse(message))
.then(result => {
ws.send(JSON.parse(result[0]))
ws._liveReq = request;
}).catch(error => ws.send(error))
}).catch(error => {
if (floGlobals.sn_config.errorFeedback)
ws.send(error.toString())
})
}
}
});