fixed primary and backup db syncing errors
This commit is contained in:
parent
98b4d34350
commit
d666b767ea
@ -10199,7 +10199,7 @@
|
||||
|
||||
},
|
||||
|
||||
sync_backup_supernode_from_backup_supernode: async function (requester="", receiver="", flo_addr_of_backup="") {
|
||||
sync_backup_supernode_from_backup_supernode: async function (requester="", receiversList="", flo_addr_of_backup="") {
|
||||
const RM_RPC = new localbitcoinplusplus.rpc;
|
||||
// RM_RPC.send_rpc.call(this,
|
||||
// "sync_backup_supernode_from_backup_supernode", {
|
||||
@ -15613,9 +15613,10 @@
|
||||
let res_obj = JSON.parse(res);
|
||||
if (res_obj.method==="add_user_public_data"
|
||||
|| res_obj.method==="retrieve_shamirs_secret_btc_pvtkey"
|
||||
|| res_obj.method==="do_you_have_latest_data_for_this_supernode"
|
||||
) {
|
||||
handle_backup_server_messages(response);
|
||||
return;
|
||||
handle_backup_server_messages(response);
|
||||
return;
|
||||
}
|
||||
if (res_obj.method==="sync_backup_supernode_from_backup_supernode"
|
||||
|| res_obj.method==="sync_primary_supernode_from_backup_supernode_response"
|
||||
@ -15861,19 +15862,6 @@
|
||||
console.log(res_obj);
|
||||
}
|
||||
|
||||
// Don't serve the request if data is not synced.
|
||||
if (localbitcoinplusplus.master_configurations.supernodesPubKeys
|
||||
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
|
||||
|
||||
if (typeof res_obj.globalParams.primarySupernode !== "string"
|
||||
|| typeof localbitcoinplusplus.services[`can_serve_${res_obj.globalParams.primarySupernode}`] !== "boolean"
|
||||
|| localbitcoinplusplus.services[`can_serve_${res_obj.globalParams.primarySupernode}`]==false
|
||||
) {
|
||||
showMessage(`INFO: You are not authorized to serve this request.`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(get_requester_supernode.length>0 && get_requester_supernode[0].data.id !==
|
||||
localbitcoinplusplus.MY_SUPERNODE_FLO_ADDRESS) {
|
||||
processBackupUserOnMesssageRequest(response);
|
||||
@ -15892,6 +15880,19 @@
|
||||
handle_backup_server_messages(response);
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't serve the request if data is not synced.
|
||||
if (localbitcoinplusplus.master_configurations.supernodesPubKeys
|
||||
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
|
||||
|
||||
if (typeof res_obj.globalParams.primarySupernode !== "string"
|
||||
|| typeof localbitcoinplusplus.services[`can_serve_${res_obj.globalParams.primarySupernode}`] !== "boolean"
|
||||
|| localbitcoinplusplus.services[`can_serve_${res_obj.globalParams.primarySupernode}`]==false
|
||||
) {
|
||||
showMessage(`INFO: You are not authorized to serve this request.`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof res_obj.method !== "undefined") {
|
||||
let response_from_sever;
|
||||
@ -17136,19 +17137,6 @@
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't serve the request if data is not synced.
|
||||
if (localbitcoinplusplus.master_configurations.supernodesPubKeys
|
||||
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
|
||||
|
||||
if (typeof res_obj.globalParams.primarySupernode !== "string"
|
||||
|| typeof localbitcoinplusplus.services[`can_serve_${res_obj.globalParams.primarySupernode}`] !== "boolean"
|
||||
|| localbitcoinplusplus.services[`can_serve_${res_obj.globalParams.primarySupernode}`]==false
|
||||
) {
|
||||
showMessage(`INFO: You are not authorized to serve this request.`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (res_obj.method !== "sync_primary_supernode_from_backup_supernode"
|
||||
&& res_obj.method !== "sync_backup_supernode_from_backup_supernode"
|
||||
&& res_obj.method !== "link_My_Local_IP_To_My_Flo_Id"
|
||||
@ -17175,6 +17163,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Don't serve the request if data is not synced.
|
||||
if (localbitcoinplusplus.master_configurations.supernodesPubKeys
|
||||
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
|
||||
|
||||
if (typeof res_obj.globalParams.primarySupernode !== "string"
|
||||
|| typeof localbitcoinplusplus.services[`can_serve_${res_obj.globalParams.primarySupernode}`] !== "boolean"
|
||||
|| localbitcoinplusplus.services[`can_serve_${res_obj.globalParams.primarySupernode}`]==false
|
||||
) {
|
||||
showMessage(`INFO: You are not authorized to serve this request.`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
const isIncomingMessageValid = await validateIncomingMessage(res);
|
||||
console.log("isIncomingMessageValid: ", isIncomingMessageValid);
|
||||
|
||||
@ -19448,6 +19449,7 @@
|
||||
let _readAllDB = readAllDB;
|
||||
if (typeof primarySupernodeOfThisUser=="string"
|
||||
&& primarySupernodeOfThisUser.length>0
|
||||
&& typeof primarySupernodeOfThisUser !== "undefined"
|
||||
&& primarySupernodeOfThisUser !== localbitcoinplusplus.wallets.my_local_flo_address
|
||||
) {
|
||||
if (typeof localbitcoinplusplus.newBackupDatabase.db[primarySupernodeOfThisUser] == "object") {
|
||||
@ -19465,7 +19467,12 @@
|
||||
const tableArray = ["deposit", "withdraw_cash", "withdraw_btc", "cash_balances",
|
||||
"crypto_balances", "buyOrders", "sellOrders", "system_btc_reserves_private_keys"];
|
||||
|
||||
const su_db_data_from_my_db = await localbitcoinplusplus.actions.get_sharable_db_data(tableArray, primarySupernodeOfThisUser);
|
||||
let backup_database = "";
|
||||
if (primarySupernodeOfThisUser!==localbitcoinplusplus.wallets.my_local_flo_address) {
|
||||
backup_database = primarySupernodeOfThisUser;
|
||||
}
|
||||
|
||||
const su_db_data_from_my_db = await localbitcoinplusplus.actions.get_sharable_db_data(tableArray, backup_database);
|
||||
|
||||
const dbHashData_from_my_db = await localbitcoinplusplus.actions.getDBTablesLatestHashAndTimestamp(primarySupernodeOfThisUser, su_db_data_from_my_db);
|
||||
|
||||
@ -19493,7 +19500,8 @@
|
||||
|
||||
let latest_data = {};
|
||||
|
||||
mismatched_fields.map(async mf=>{
|
||||
for (var i = 0; i < mismatched_fields.length; i++) {
|
||||
const mf = mismatched_fields[i];
|
||||
const res_data_obj = await _readAllDB(mf)
|
||||
let filtered_data = res_data_obj.filter(odho=>{
|
||||
if (typeof odho.timestamp=="number"
|
||||
@ -19503,7 +19511,7 @@
|
||||
});
|
||||
|
||||
latest_data[mf] = filtered_data;
|
||||
});
|
||||
}
|
||||
|
||||
console.log(latest_data);
|
||||
|
||||
@ -19587,6 +19595,34 @@
|
||||
}
|
||||
break;
|
||||
|
||||
case "is_node_alive_request":
|
||||
if(localbitcoinplusplus.master_configurations.supernodesPubKeys
|
||||
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
|
||||
reactor.dispatchEvent('nodeIsAlive', res_obj);
|
||||
// Send your live status to Sender
|
||||
const RM_RPC = new localbitcoinplusplus.rpc;
|
||||
RM_RPC
|
||||
.send_rpc
|
||||
.call(this, "yup_i_am_awake", {
|
||||
JOB: 'I_AM_ALIVE',
|
||||
trader_flo_address: localbitcoinplusplus.wallets.my_local_flo_address,
|
||||
receiver_flo_address: res_obj.globalParams.senderFloId
|
||||
}).then(req=>doSend(req));
|
||||
}
|
||||
break;
|
||||
|
||||
case "yup_i_am_awake":
|
||||
if (res_obj.method=="yup_i_am_awake"
|
||||
&& localbitcoinplusplus.master_configurations.supernodesPubKeys
|
||||
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)
|
||||
&& (res_obj.params[0].receiver_flo_address ==
|
||||
localbitcoinplusplus.wallets.my_local_flo_address)) {
|
||||
|
||||
reactor.dispatchEvent('nodeIsAlive', res_obj);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -21779,7 +21815,7 @@
|
||||
reactor.addEventListener('nodeIsAlive', function(res_obj) {
|
||||
try {
|
||||
if (res_obj.params[0].JOB !== "ARE_YOU_ALIVE"
|
||||
|| res_obj.params[0].JOB !== "I_AM_ALIVE") return;
|
||||
&& res_obj.params[0].JOB !== "I_AM_ALIVE") return;
|
||||
const params=res_obj.params[0];
|
||||
if (params.receiver_flo_address !== localbitcoinplusplus.wallets.my_local_flo_address) return;
|
||||
const switchMyWS = new backupSupernodesWebSocketObject();
|
||||
@ -21826,7 +21862,7 @@
|
||||
let backup_su_list = [];
|
||||
for (let index = closestSuNodes.length-1; index >= closestSuNodes.length-localbitcoinplusplus.master_configurations.MaxBackups; index--) {
|
||||
|
||||
backup_su_list[closestSuNodes[index].trader_flo_address] = [];
|
||||
backup_su_list[closestSuNodes[index].trader_flo_address] = [closestSuNodes[index].trader_flo_address];
|
||||
for (let j = index; j < index+localbitcoinplusplus.master_configurations.MaxBackups; j++) {
|
||||
let actual_num = j;
|
||||
if(actual_num>=closestSuNodes.length-1) {
|
||||
@ -21841,9 +21877,14 @@
|
||||
}
|
||||
console.log(backup_su_list);
|
||||
|
||||
backup_su_list.map(bsl=>localbitcoinplusplus.actions
|
||||
.sync_backup_supernode_from_backup_supernode(closestSuNodes[0].trader_flo_address,
|
||||
bsl, closestSuNodes[index].trader_flo_address));
|
||||
for (const k in backup_su_list) {
|
||||
if (backup_su_list.hasOwnProperty(k)) {
|
||||
const bsl = backup_su_list[k];
|
||||
localbitcoinplusplus.actions
|
||||
.sync_backup_supernode_from_backup_supernode(
|
||||
closestSuNodes[0].trader_flo_address, bsl, k);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user