Collect application list from blockchain

Supernode now collect list of applications with their adminID from blockchain data
This commit is contained in:
sairajzero 2019-11-26 16:16:05 +05:30
parent a7d45c32da
commit bfb86f6085

View File

@ -33,6 +33,8 @@
supernodes: {}, //each supnernode must be stored as floID : {uri:<uri>,pubKey:<publicKey>} supernodes: {}, //each supnernode must be stored as floID : {uri:<uri>,pubKey:<publicKey>}
diskList : ["General"], diskList : ["General"],
defaultDisk : "General", defaultDisk : "General",
applicationList:{},
appSubAdmins:{},
serveList : [], serveList : [],
storedList : [], storedList : [],
supernodeConfig : {}, supernodeConfig : {},
@ -6038,30 +6040,27 @@
initIndexedDBforSupernodeConfig().then(result => { initIndexedDBforSupernodeConfig().then(result => {
console.log(result) console.log(result)
readSupernodeListFromAPI().then(result => { refreshBlockchainData().then(result => {
console.log(result) console.log(result)
floSupernode.kBucket.launch().then(result => { if (myFloID in floGlobals.supernodes) {
console.log(result) initIndexedDBforSupernodeDataStorage(myFloID).then(result => {
if (myFloID in floGlobals.supernodes) { console.log(result)
initIndexedDBforSupernodeDataStorage(myFloID).then(result => { serverPwd = prompt("Enter Server Pass!")
setInterval(autoRefreshBlockchainData, 3600000);
floSupernode.initSupernode(serverPwd, myFloID).then(async result => {
console.log(result) console.log(result)
serverPwd = prompt("Enter Server Pass!") floGlobals.serveList.push(myFloID)
setInterval(refreshBlockchainData, 3600000); floGlobals.storedList.push(myFloID)
floSupernode.initSupernode(serverPwd, myFloID).then(async result => { await sleep(5000)
connectToAllBackupSupernode().then(async result => {
console.log(result) console.log(result)
floGlobals.serveList.push(myFloID) await sleep(2000)
floGlobals.storedList.push(myFloID) reactor.dispatchEvent("indicate_supernode_up",myFloID)
await sleep(5000) }).catch(error => console.log(error))
connectToAllBackupSupernode().then(async result => { }).catch(error => console.log(error))
console.log(result) }).catch(error => console.log(error))
await sleep(2000) }
reactor.dispatchEvent("indicate_supernode_up",myFloID) }).catch(error => console.log(error))
})
})
})
}
})
})
}).catch(error => console.log(error)) }).catch(error => console.log(error))
} }
@ -6073,6 +6072,10 @@
config:{}, config:{},
supernodes:{ supernodes:{
indexes:{ uri:null, pubKey:null } indexes:{ uri:null, pubKey:null }
},
applications:{},
appSubAdmins:{
indexes:{ app:null, subAdminID:null }
} }
} }
compactIDB.setDefaultDB("SupernodeConfig") compactIDB.setDefaultDB("SupernodeConfig")
@ -6100,16 +6103,25 @@
}) })
} }
function refreshBlockchainData(){ function autoRefreshBlockchainData(){
readSupernodeListFromAPI().then(result => { refreshBlockchainData()
console.log(result) .then(result => console.log(result))
floSupernode.kBucket.launch().then(result => { .catch(error => console.log(error))
console.log(result)
})
}).catch(error => console.log(error))
} }
function readSupernodeListFromAPI(){ function refreshBlockchainData(){
return new Promise((resolve,reject) => {
readSupernodeDataFromAPI().then(result => {
console.log(result)
floSupernode.kBucket.launch().then(result => {
console.log(result)
resolve("Refreshed Data from blockchain")
}).catch(error => reject(error))
}).catch(error => reject(error))
})
}
function readSupernodeDataFromAPI(){
return new Promise((resolve,reject) => { return new Promise((resolve,reject) => {
compactIDB.readData("lastTx",floGlobals.adminID).then(lastTx => { compactIDB.readData("lastTx",floGlobals.adminID).then(lastTx => {
floBlockchainAPI.readData(floGlobals.adminID,{ignoreOld:lastTx,sendOnly:true,pattern:"SuperNodeStorage"}).then(result => { floBlockchainAPI.readData(floGlobals.adminID,{ignoreOld:lastTx,sendOnly:true,pattern:"SuperNodeStorage"}).then(result => {
@ -6121,16 +6133,21 @@
compactIDB.writeData("supernodes",content.addNodes[sn],sn); compactIDB.writeData("supernodes",content.addNodes[sn],sn);
for(c in content.config) for(c in content.config)
compactIDB.writeData("config",content.config[c],c) compactIDB.writeData("config",content.config[c],c)
for(app in content.application)
compactIDB.writeData("applications",content.application[app],app)
} }
compactIDB.writeData("lastTx",result.totalTxs,floGlobals.adminID); compactIDB.writeData("lastTx",result.totalTxs,floGlobals.adminID);
compactIDB.readAllData("supernodes").then(result => { compactIDB.readAllData("supernodes").then(supernodes => {
floGlobals.supernodes = result floGlobals.supernodes = supernodes
compactIDB.readAllData("config").then(result => { compactIDB.readAllData("config").then(config => {
floGlobals.supernodeConfig = result floGlobals.supernodeConfig = config
resolve("Read supernode from blockchain"); compactIDB.readAllData("applications").then(applications => {
}) floGlobals.applicationList = applications
}) resolve("Read supernode from blockchain");
}) }).catch(error => reject(error))
}).catch(error => reject(error))
}).catch(error => reject(error))
}).catch(error => reject(error))
}).catch(error => reject(error)) }).catch(error => reject(error))
}) })
} }