Reshare ids when node list updated
- Reconstruct shares for all active ids when node list is updated via blockchain
This commit is contained in:
parent
7a99a44265
commit
9686f29f8e
@ -245,9 +245,21 @@ function updateMaster(floID) {
|
|||||||
connectToMaster();
|
connectToMaster();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function reconstructAllActiveShares() {
|
||||||
|
if (_mode !== MASTER_MODE)
|
||||||
|
return console.debug("Not serving as master");
|
||||||
|
console.debug("Reconstructing shares for all active IDs")
|
||||||
|
let group_list = keys.sink_groups.list;
|
||||||
|
group_list.forEach(g => {
|
||||||
|
//active ids also ignore ids that are in queue for reconstructing shares
|
||||||
|
let active_ids = keys.sink_chest.active_list(g);
|
||||||
|
active_ids.forEach(id => reconstructShares(g, id));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function reconstructShares(group, sinkID) {
|
function reconstructShares(group, sinkID) {
|
||||||
if (_mode !== MASTER_MODE)
|
if (_mode !== MASTER_MODE)
|
||||||
return console.warn("Not serving as master");
|
return console.warn(`Not serving as master, but reconstruct-shares is called for ${sinkID}(${group})`);
|
||||||
keys.sink_chest.set_id(group, sinkID, null);
|
keys.sink_chest.set_id(group, sinkID, null);
|
||||||
collectAndCall(group, sinkID, sinkKey => sendSharesToNodes(sinkID, group, generateShares(sinkKey)));
|
collectAndCall(group, sinkID, sinkKey => sendSharesToNodes(sinkID, group, generateShares(sinkKey)));
|
||||||
}
|
}
|
||||||
@ -460,6 +472,7 @@ function initProcess(app) {
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
init: initProcess,
|
init: initProcess,
|
||||||
collectAndCall,
|
collectAndCall,
|
||||||
|
reconstructAllActiveShares,
|
||||||
sink: {
|
sink: {
|
||||||
generate: generateSink,
|
generate: generateSink,
|
||||||
reshare: reshareSink,
|
reshare: reshareSink,
|
||||||
|
|||||||
@ -345,6 +345,9 @@ const sink_groups = {
|
|||||||
get CONVERT() { return "convert" },
|
get CONVERT() { return "convert" },
|
||||||
get BLOCKCHAIN_BONDS() { return "blockchain_bonds" },
|
get BLOCKCHAIN_BONDS() { return "blockchain_bonds" },
|
||||||
get BOBS_FUND() { return "bobs_fund" },
|
get BOBS_FUND() { return "bobs_fund" },
|
||||||
|
get list() { //total list
|
||||||
|
return [this.EXCHANGE, this.CONVERT, this.BLOCKCHAIN_BONDS, this.BOBS_FUND]
|
||||||
|
},
|
||||||
get initial_list() { //list to generate when starting exchange
|
get initial_list() { //list to generate when starting exchange
|
||||||
return [this.EXCHANGE, this.CONVERT]
|
return [this.EXCHANGE, this.CONVERT]
|
||||||
},
|
},
|
||||||
|
|||||||
@ -27,8 +27,10 @@ var app;
|
|||||||
|
|
||||||
function refreshData(startup = false) {
|
function refreshData(startup = false) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
refreshDataFromBlockchain().then(result => {
|
refreshDataFromBlockchain().then(changes => {
|
||||||
loadDataFromDB(result, startup).then(_ => {
|
loadDataFromDB(changes, startup).then(_ => {
|
||||||
|
if (!startup && changes.nodes)
|
||||||
|
backup.reconstructAllActiveShares();
|
||||||
app.refreshData(backup.nodeList);
|
app.refreshData(backup.nodeList);
|
||||||
resolve("Data refresh successful")
|
resolve("Data refresh successful")
|
||||||
}).catch(error => reject(error))
|
}).catch(error => reject(error))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user