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();
|
||||
}
|
||||
|
||||
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) {
|
||||
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);
|
||||
collectAndCall(group, sinkID, sinkKey => sendSharesToNodes(sinkID, group, generateShares(sinkKey)));
|
||||
}
|
||||
@ -460,6 +472,7 @@ function initProcess(app) {
|
||||
module.exports = {
|
||||
init: initProcess,
|
||||
collectAndCall,
|
||||
reconstructAllActiveShares,
|
||||
sink: {
|
||||
generate: generateSink,
|
||||
reshare: reshareSink,
|
||||
|
||||
@ -345,6 +345,9 @@ const sink_groups = {
|
||||
get CONVERT() { return "convert" },
|
||||
get BLOCKCHAIN_BONDS() { return "blockchain_bonds" },
|
||||
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
|
||||
return [this.EXCHANGE, this.CONVERT]
|
||||
},
|
||||
|
||||
@ -27,8 +27,10 @@ var app;
|
||||
|
||||
function refreshData(startup = false) {
|
||||
return new Promise((resolve, reject) => {
|
||||
refreshDataFromBlockchain().then(result => {
|
||||
loadDataFromDB(result, startup).then(_ => {
|
||||
refreshDataFromBlockchain().then(changes => {
|
||||
loadDataFromDB(changes, startup).then(_ => {
|
||||
if (!startup && changes.nodes)
|
||||
backup.reconstructAllActiveShares();
|
||||
app.refreshData(backup.nodeList);
|
||||
resolve("Data refresh successful")
|
||||
}).catch(error => reject(error))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user