added refresh_all_supernodes_status method
This commit is contained in:
parent
93740fe4be
commit
45bdd9b7aa
106
index.html
106
index.html
@ -12694,6 +12694,43 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
refresh_live_status_of_supernodes: async function() {
|
||||||
|
try {
|
||||||
|
promises = [];
|
||||||
|
for (const mcs in localbitcoinplusplus.myClosestSupernodes) {
|
||||||
|
let wsUri = `ws://${localbitcoinplusplus.myClosestSupernodes[mcs].ip}`;
|
||||||
|
promises.push(new Promise((resolve, reject) => {
|
||||||
|
temp_ws = new WebSocket(wsUri);
|
||||||
|
temp_ws.onopen = async function(evt) {
|
||||||
|
resolve(`${wsUri}->1`);
|
||||||
|
await localbitcoinplusplus.actions.delay(5000);
|
||||||
|
temp_ws.close();
|
||||||
|
};
|
||||||
|
temp_ws.onclose = function(evt) {
|
||||||
|
if(!evt.wasClean) {
|
||||||
|
resolve(`${wsUri}->0`);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
let supernodesCurrentStatus = await Promise.all(promises)
|
||||||
|
|
||||||
|
const switchMyWS = new backupSupernodesWebSocketObject();
|
||||||
|
for(currentwsurl of supernodesCurrentStatus) {
|
||||||
|
let split_response = currentwsurl.split('->');
|
||||||
|
let wsurl = split_response[0];
|
||||||
|
let status = split_response[1]==1 ? true:false;
|
||||||
|
await switchMyWS.updateSupernodeAvailabilityStatus(
|
||||||
|
wsurl,
|
||||||
|
status
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch(e) {
|
||||||
|
throw new Error(e)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*Modified functions from https://github.com/tristanls/k-bucket */
|
/*Modified functions from https://github.com/tristanls/k-bucket */
|
||||||
@ -13624,25 +13661,42 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
reactor.addEventListener("get_node_status_request", function() {
|
// reactor.addEventListener("get_node_status_request", function() {
|
||||||
readAllDB("myClosestSupernodes").then(nearestSupernodeAddresslist => {
|
// readAllDB("myClosestSupernodes").then(nearestSupernodeAddresslist => {
|
||||||
const RM_RPC = new localbitcoinplusplus.rpc();
|
// const RM_RPC = new localbitcoinplusplus.rpc();
|
||||||
nearestSupernodeAddresslist.map(f => {
|
// nearestSupernodeAddresslist.map(f => {
|
||||||
if (
|
// if (
|
||||||
f.trader_flo_address !==
|
// f.trader_flo_address !==
|
||||||
localbitcoinplusplus.wallets.my_local_flo_address
|
// localbitcoinplusplus.wallets.my_local_flo_address
|
||||||
) {
|
// ) {
|
||||||
RM_RPC.send_rpc
|
// RM_RPC.send_rpc
|
||||||
.call(this, "is_node_alive_request", {
|
// .call(this, "is_node_alive_request", {
|
||||||
JOB: "ARE_YOU_ALIVE",
|
// JOB: "ARE_YOU_ALIVE",
|
||||||
trader_flo_address:
|
// trader_flo_address:
|
||||||
localbitcoinplusplus.wallets.my_local_flo_address,
|
// localbitcoinplusplus.wallets.my_local_flo_address,
|
||||||
receiver_flo_address: f.trader_flo_address
|
// receiver_flo_address: f.trader_flo_address
|
||||||
})
|
// })
|
||||||
.then(req => doSend(req));
|
// .then(req => doSend(req));
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
});
|
// });
|
||||||
|
// });
|
||||||
|
|
||||||
|
reactor.addEventListener("get_node_status_request", function() {
|
||||||
|
|
||||||
|
const msg_obj = {};
|
||||||
|
msg_obj.protocol = '__ALL_SUPERNODES_MSG__';
|
||||||
|
msg_obj.event = 'refresh_all_supernodes_status';
|
||||||
|
msg_obj.data = {request: "RESOLVE_BACKUP_WS_CONNS"};
|
||||||
|
msg_obj.initialSender = localbitcoinplusplus.wallets.my_local_flo_address;
|
||||||
|
msg_obj.su_pubKey = localbitcoinplusplus.wallets.my_local_flo_public_key;
|
||||||
|
msg_obj.hash = Crypto.SHA256(msg_obj);
|
||||||
|
msg_obj.sign = RM_WALLET.sign(
|
||||||
|
msg_obj.hash,
|
||||||
|
localbitcoinplusplus.wallets.MY_SUPERNODE_PRIVATE_KEY
|
||||||
|
);
|
||||||
|
|
||||||
|
reactor.dispatchEvent('informAllSuperNode', msg_obj);
|
||||||
});
|
});
|
||||||
|
|
||||||
reactor.addEventListener("sync_primary_and_backup_db", async function() {
|
reactor.addEventListener("sync_primary_and_backup_db", async function() {
|
||||||
@ -13837,7 +13891,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Only if a nearer Supernode than any connected Supernode can pass through
|
// Only if a nearer Supernode than any connected Supernode can pass through
|
||||||
if(reqFloIdIndex>=highestIndexOfConnectedSupernode) return;
|
if(reqFloIdIndex>=highestIndexOfConnectedSupernode
|
||||||
|
&& currenctBackupWsList.length>=localbitcoinplusplus.master_configurations.MaxBackups) return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@ -13888,6 +13943,10 @@
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
// Refresh Supernodes live status
|
||||||
|
await localbitcoinplusplus.actions.refresh_live_status_of_supernodes();
|
||||||
|
|
||||||
// Get list of neighbour supernodes
|
// Get list of neighbour supernodes
|
||||||
const myClosestSups = await readAllDB("myClosestSupernodes");
|
const myClosestSups = await readAllDB("myClosestSupernodes");
|
||||||
const myClosestSupsFloList = myClosestSups.map(
|
const myClosestSupsFloList = myClosestSups.map(
|
||||||
@ -14987,7 +15046,8 @@
|
|||||||
const all_receivers_methods = [
|
const all_receivers_methods = [
|
||||||
"do_you_have_latest_data_for_this_supernode",
|
"do_you_have_latest_data_for_this_supernode",
|
||||||
"sync_backup_supernode_from_backup_supernode",
|
"sync_backup_supernode_from_backup_supernode",
|
||||||
"sync_backup_supernode_from_backup_supernode_response"
|
"sync_backup_supernode_from_backup_supernode_response",
|
||||||
|
"get_node_status_request"
|
||||||
];
|
];
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@ -21170,6 +21230,7 @@
|
|||||||
|
|
||||||
if(isValidMsg!==true) return;
|
if(isValidMsg!==true) return;
|
||||||
|
|
||||||
|
debugger;
|
||||||
switch (res_obj.event) {
|
switch (res_obj.event) {
|
||||||
case "supernode_went_down":
|
case "supernode_went_down":
|
||||||
// This should be run by only 1 Supernode who is the reciever
|
// This should be run by only 1 Supernode who is the reciever
|
||||||
@ -21236,6 +21297,9 @@
|
|||||||
!== res_obj.receiverFloAddress) return;
|
!== res_obj.receiverFloAddress) return;
|
||||||
reactor.dispatchEvent('resolve_backup_ws_connections');
|
reactor.dispatchEvent('resolve_backup_ws_connections');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "refresh_all_supernodes_status":
|
||||||
|
reactor.dispatchEvent('resolve_backup_ws_connections');
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user