update supernode modules
This commit is contained in:
parent
968e911b57
commit
433c395f8b
@ -1,4 +1,4 @@
|
|||||||
var DB; //container for database
|
var DB, _list; //container for database and _list (stored n serving)
|
||||||
|
|
||||||
function processIncomingData(data) {
|
function processIncomingData(data) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
@ -38,7 +38,7 @@ function processDataFromUser(data) {
|
|||||||
if (!floCrypto.validateAddr(data.receiverID))
|
if (!floCrypto.validateAddr(data.receiverID))
|
||||||
return reject("Invalid receiverID")
|
return reject("Invalid receiverID")
|
||||||
let closeNode = kBucket.closestNode(data.receiverID)
|
let closeNode = kBucket.closestNode(data.receiverID)
|
||||||
if (!floGlobals.serveList.includes(closeNode))
|
if (!_list.serving.includes(closeNode))
|
||||||
return reject("Incorrect Supernode")
|
return reject("Incorrect Supernode")
|
||||||
if (!floCrypto.validateAddr(data.receiverID))
|
if (!floCrypto.validateAddr(data.receiverID))
|
||||||
return reject("Invalid senderID")
|
return reject("Invalid senderID")
|
||||||
@ -70,7 +70,7 @@ function processRequestFromUser(request) {
|
|||||||
if (!floCrypto.validateAddr(request.receiverID))
|
if (!floCrypto.validateAddr(request.receiverID))
|
||||||
return reject("Invalid receiverID");
|
return reject("Invalid receiverID");
|
||||||
let closeNode = kBucket.closestNode(request.receiverID)
|
let closeNode = kBucket.closestNode(request.receiverID)
|
||||||
if (!floGlobals.serveList.includes(closeNode))
|
if (!_list.serving.includes(closeNode))
|
||||||
return reject("Incorrect Supernode");
|
return reject("Incorrect Supernode");
|
||||||
DB.searchData(closeNode, request)
|
DB.searchData(closeNode, request)
|
||||||
.then(result => resolve([result]))
|
.then(result => resolve([result]))
|
||||||
@ -90,7 +90,7 @@ function processTagFromUser(data) {
|
|||||||
if (data.requestorID !== floCrypto.getFloID(data.pubKey))
|
if (data.requestorID !== floCrypto.getFloID(data.pubKey))
|
||||||
return reject("Invalid pubKey")
|
return reject("Invalid pubKey")
|
||||||
let closeNode = kBucket.closestNode(data.receiverID)
|
let closeNode = kBucket.closestNode(data.receiverID)
|
||||||
if (!floGlobals.serveList.includes(closeNode))
|
if (!_list.serving.includes(closeNode))
|
||||||
return reject("Incorrect Supernode")
|
return reject("Incorrect Supernode")
|
||||||
let hashcontent = ["time", "application", "tag"]
|
let hashcontent = ["time", "application", "tag"]
|
||||||
.map(d => data[d]).join("|");
|
.map(d => data[d]).join("|");
|
||||||
@ -133,5 +133,8 @@ module.exports = {
|
|||||||
processIncomingData,
|
processIncomingData,
|
||||||
set DB(db){
|
set DB(db){
|
||||||
DB = db
|
DB = db
|
||||||
|
},
|
||||||
|
set _list(list){
|
||||||
|
_list = list
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
14
src/intra.js
14
src/intra.js
@ -5,16 +5,11 @@ const WebSocket = require('ws');
|
|||||||
const SUPERNODE_INDICATOR = '$',
|
const SUPERNODE_INDICATOR = '$',
|
||||||
//Message type
|
//Message type
|
||||||
ORDER_BACKUP = "orderBackup",
|
ORDER_BACKUP = "orderBackup",
|
||||||
START_BACKUP_SERVE = "startBackupServe",
|
|
||||||
STOP_BACKUP_SERVE = "stopBackupServe",
|
|
||||||
START_BACKUP_STORE = "startBackupStore",
|
|
||||||
STOP_BACKUP_STORE = "stopBackupStore",
|
|
||||||
STORE_BACKUP_DATA = "backupData",
|
STORE_BACKUP_DATA = "backupData",
|
||||||
STORE_MIGRATED_DATA = "migratedData",
|
//STORE_MIGRATED_DATA = "migratedData",
|
||||||
DELETE_BACKUP_DATA = "backupDelete",
|
//DELETE_BACKUP_DATA = "backupDelete",
|
||||||
TAG_BACKUP_DATA = "backupTag",
|
TAG_BACKUP_DATA = "backupTag",
|
||||||
EDIT_BACKUP_DATA = "backupEdit",
|
//EDIT_BACKUP_DATA = "backupEdit",
|
||||||
NODE_ONLINE = "supernodeUp",
|
|
||||||
INITIATE_REFRESH = "initiateRefresh",
|
INITIATE_REFRESH = "initiateRefresh",
|
||||||
DATA_REQUEST = "dataRequest",
|
DATA_REQUEST = "dataRequest",
|
||||||
DATA_SYNC = "dataSync",
|
DATA_SYNC = "dataSync",
|
||||||
@ -267,9 +262,11 @@ function processTaskFromSupernode(packet, ws) {
|
|||||||
case BACKUP_HANDSHAKE_INIT:
|
case BACKUP_HANDSHAKE_INIT:
|
||||||
handshakeMid(from, ws)
|
handshakeMid(from, ws)
|
||||||
break;
|
break;
|
||||||
|
/*
|
||||||
case STORE_MIGRATED_DATA: //TODO
|
case STORE_MIGRATED_DATA: //TODO
|
||||||
storeMigratedData(task.data)
|
storeMigratedData(task.data)
|
||||||
break;
|
break;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -466,6 +463,7 @@ module.exports = {
|
|||||||
setBlockchainParameters,
|
setBlockchainParameters,
|
||||||
forwardToNextNode,
|
forwardToNextNode,
|
||||||
SUPERNODE_INDICATOR,
|
SUPERNODE_INDICATOR,
|
||||||
|
_list,
|
||||||
set DB(db){
|
set DB(db){
|
||||||
DB = db
|
DB = db
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,9 @@
|
|||||||
const http = require('http')
|
const http = require('http')
|
||||||
const WebSocket = require('ws')
|
const WebSocket = require('ws')
|
||||||
|
|
||||||
const Server = module.exports = function(port, client, intra){
|
module.exports = function Server(port, client, intra) {
|
||||||
const server = http.createServer((req, res) => {
|
|
||||||
|
const server = http.createServer((req, res) => {
|
||||||
if (req.method === "GET") {
|
if (req.method === "GET") {
|
||||||
//GET request (requesting data)
|
//GET request (requesting data)
|
||||||
req.on('end', () => {
|
req.on('end', () => {
|
||||||
@ -11,7 +12,7 @@ const Server = module.exports = function(port, client, intra){
|
|||||||
var request = JSON.parse(req.url.substring(i));
|
var request = JSON.parse(req.url.substring(i));
|
||||||
client.processRequestFromUser(request)
|
client.processRequestFromUser(request)
|
||||||
.then(result => res.end(JSON.parse(result[0])))
|
.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])
|
sendToLiveRequests(result[0])
|
||||||
intra.forwardToNextNode(result[1], result[0])
|
intra.forwardToNextNode(result[1], result[0])
|
||||||
}
|
}
|
||||||
}).catch(error => res.end(error))
|
}).catch(error => res.end(error.toString()))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
server.listen(port, (err) => {
|
server.listen(port, (err) => {
|
||||||
if(!err)
|
if (!err)
|
||||||
console.log(`Server running at port ${port}`);
|
console.log(`Server running at port ${port}`);
|
||||||
})
|
})
|
||||||
|
|
||||||
const wsServer = new WebSocket.Server({
|
const wsServer = new WebSocket.Server({
|
||||||
server
|
server
|
||||||
});
|
});
|
||||||
@ -50,22 +52,10 @@ const Server = module.exports = function(port, client, intra){
|
|||||||
.then(result => {
|
.then(result => {
|
||||||
ws.send(JSON.parse(result[0]))
|
ws.send(JSON.parse(result[0]))
|
||||||
ws._liveReq = request;
|
ws._liveReq = request;
|
||||||
}).catch(error => ws.send(error))
|
}).catch(error => {
|
||||||
}
|
if (floGlobals.sn_config.errorFeedback)
|
||||||
}
|
ws.send(error.toString())
|
||||||
});
|
})
|
||||||
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))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user