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;
|
const RM_RPC = new localbitcoinplusplus.rpc;
|
||||||
// RM_RPC.send_rpc.call(this,
|
// RM_RPC.send_rpc.call(this,
|
||||||
// "sync_backup_supernode_from_backup_supernode", {
|
// "sync_backup_supernode_from_backup_supernode", {
|
||||||
@ -15613,9 +15613,10 @@
|
|||||||
let res_obj = JSON.parse(res);
|
let res_obj = JSON.parse(res);
|
||||||
if (res_obj.method==="add_user_public_data"
|
if (res_obj.method==="add_user_public_data"
|
||||||
|| res_obj.method==="retrieve_shamirs_secret_btc_pvtkey"
|
|| res_obj.method==="retrieve_shamirs_secret_btc_pvtkey"
|
||||||
|
|| res_obj.method==="do_you_have_latest_data_for_this_supernode"
|
||||||
) {
|
) {
|
||||||
handle_backup_server_messages(response);
|
handle_backup_server_messages(response);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (res_obj.method==="sync_backup_supernode_from_backup_supernode"
|
if (res_obj.method==="sync_backup_supernode_from_backup_supernode"
|
||||||
|| res_obj.method==="sync_primary_supernode_from_backup_supernode_response"
|
|| res_obj.method==="sync_primary_supernode_from_backup_supernode_response"
|
||||||
@ -15861,19 +15862,6 @@
|
|||||||
console.log(res_obj);
|
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 !==
|
if(get_requester_supernode.length>0 && get_requester_supernode[0].data.id !==
|
||||||
localbitcoinplusplus.MY_SUPERNODE_FLO_ADDRESS) {
|
localbitcoinplusplus.MY_SUPERNODE_FLO_ADDRESS) {
|
||||||
processBackupUserOnMesssageRequest(response);
|
processBackupUserOnMesssageRequest(response);
|
||||||
@ -15892,6 +15880,19 @@
|
|||||||
handle_backup_server_messages(response);
|
handle_backup_server_messages(response);
|
||||||
return;
|
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") {
|
if (typeof res_obj.method !== "undefined") {
|
||||||
let response_from_sever;
|
let response_from_sever;
|
||||||
@ -17136,19 +17137,6 @@
|
|||||||
return;
|
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"
|
if (res_obj.method !== "sync_primary_supernode_from_backup_supernode"
|
||||||
&& res_obj.method !== "sync_backup_supernode_from_backup_supernode"
|
&& res_obj.method !== "sync_backup_supernode_from_backup_supernode"
|
||||||
&& res_obj.method !== "link_My_Local_IP_To_My_Flo_Id"
|
&& 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);
|
const isIncomingMessageValid = await validateIncomingMessage(res);
|
||||||
console.log("isIncomingMessageValid: ", isIncomingMessageValid);
|
console.log("isIncomingMessageValid: ", isIncomingMessageValid);
|
||||||
|
|
||||||
@ -19448,6 +19449,7 @@
|
|||||||
let _readAllDB = readAllDB;
|
let _readAllDB = readAllDB;
|
||||||
if (typeof primarySupernodeOfThisUser=="string"
|
if (typeof primarySupernodeOfThisUser=="string"
|
||||||
&& primarySupernodeOfThisUser.length>0
|
&& primarySupernodeOfThisUser.length>0
|
||||||
|
&& typeof primarySupernodeOfThisUser !== "undefined"
|
||||||
&& primarySupernodeOfThisUser !== localbitcoinplusplus.wallets.my_local_flo_address
|
&& primarySupernodeOfThisUser !== localbitcoinplusplus.wallets.my_local_flo_address
|
||||||
) {
|
) {
|
||||||
if (typeof localbitcoinplusplus.newBackupDatabase.db[primarySupernodeOfThisUser] == "object") {
|
if (typeof localbitcoinplusplus.newBackupDatabase.db[primarySupernodeOfThisUser] == "object") {
|
||||||
@ -19465,7 +19467,12 @@
|
|||||||
const tableArray = ["deposit", "withdraw_cash", "withdraw_btc", "cash_balances",
|
const tableArray = ["deposit", "withdraw_cash", "withdraw_btc", "cash_balances",
|
||||||
"crypto_balances", "buyOrders", "sellOrders", "system_btc_reserves_private_keys"];
|
"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);
|
const dbHashData_from_my_db = await localbitcoinplusplus.actions.getDBTablesLatestHashAndTimestamp(primarySupernodeOfThisUser, su_db_data_from_my_db);
|
||||||
|
|
||||||
@ -19493,7 +19500,8 @@
|
|||||||
|
|
||||||
let latest_data = {};
|
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)
|
const res_data_obj = await _readAllDB(mf)
|
||||||
let filtered_data = res_data_obj.filter(odho=>{
|
let filtered_data = res_data_obj.filter(odho=>{
|
||||||
if (typeof odho.timestamp=="number"
|
if (typeof odho.timestamp=="number"
|
||||||
@ -19503,7 +19511,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
latest_data[mf] = filtered_data;
|
latest_data[mf] = filtered_data;
|
||||||
});
|
}
|
||||||
|
|
||||||
console.log(latest_data);
|
console.log(latest_data);
|
||||||
|
|
||||||
@ -19587,6 +19595,34 @@
|
|||||||
}
|
}
|
||||||
break;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -21779,7 +21815,7 @@
|
|||||||
reactor.addEventListener('nodeIsAlive', function(res_obj) {
|
reactor.addEventListener('nodeIsAlive', function(res_obj) {
|
||||||
try {
|
try {
|
||||||
if (res_obj.params[0].JOB !== "ARE_YOU_ALIVE"
|
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];
|
const params=res_obj.params[0];
|
||||||
if (params.receiver_flo_address !== localbitcoinplusplus.wallets.my_local_flo_address) return;
|
if (params.receiver_flo_address !== localbitcoinplusplus.wallets.my_local_flo_address) return;
|
||||||
const switchMyWS = new backupSupernodesWebSocketObject();
|
const switchMyWS = new backupSupernodesWebSocketObject();
|
||||||
@ -21826,7 +21862,7 @@
|
|||||||
let backup_su_list = [];
|
let backup_su_list = [];
|
||||||
for (let index = closestSuNodes.length-1; index >= closestSuNodes.length-localbitcoinplusplus.master_configurations.MaxBackups; index--) {
|
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++) {
|
for (let j = index; j < index+localbitcoinplusplus.master_configurations.MaxBackups; j++) {
|
||||||
let actual_num = j;
|
let actual_num = j;
|
||||||
if(actual_num>=closestSuNodes.length-1) {
|
if(actual_num>=closestSuNodes.length-1) {
|
||||||
@ -21841,9 +21877,14 @@
|
|||||||
}
|
}
|
||||||
console.log(backup_su_list);
|
console.log(backup_su_list);
|
||||||
|
|
||||||
backup_su_list.map(bsl=>localbitcoinplusplus.actions
|
for (const k in backup_su_list) {
|
||||||
.sync_backup_supernode_from_backup_supernode(closestSuNodes[0].trader_flo_address,
|
if (backup_su_list.hasOwnProperty(k)) {
|
||||||
bsl, closestSuNodes[index].trader_flo_address));
|
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