diff --git a/supernode/index.html b/supernode/index.html
index 114c9da..44b2e62 100644
--- a/supernode/index.html
+++ b/supernode/index.html
@@ -10072,24 +10072,39 @@
`masterFLOPubKey=029EF7838D4D103E62262394B5417E8ABFD75539D19E61CA5FD0C2051B69B29910
#!#tradableAsset1=BTC,FLO,BTC_TEST,FLO_TEST#!#tradableAsset2=INR,USD,BTC,FLO,BTC_TEST,FLO_TEST,
#!#validTradingAmount=10000,50000,100000,#!#btcTradeMargin=5000
- #!#MaxBackups=3
+ #!#MaxBackups=2
#!#supernodesPubKeys=0315C3A20FE7096CC2E0F81A80D5F1A687B8F9EFA65242A0B0881E1BA3EE7D7D53,
03F7493F11B8E44B9798CD434D20FBE7FA34B9779D144984889D11A17C56A18742,039B4AA00DBFC0A6631DE6DA83526611A0E6B857D3579DF840BBDEAE8B6898E3B6,
- 03C8E3836C9A77E2AF03D4265D034BA85732738919708EAF6A16382195AE796EDF,0349B08AA1ABDCFFB6D78CD7C949665AD2FF065EA02B3C6C47A5E9592C9A1C6BCB,
- 026FCC6CFF6EB3A39E54BEB6E13FC2F02C3A93F4767AA80E49E7E876443F95AE5F,029CDB29270DC5087EF4903E8C2364552C62E935FBAA1A96AB53CC5791C7EF2067,
- 022EC1D090960D9EFFFC60FDC34AB97A8395A5F6D1326DD1B1380BD9F6E31981CA,037C623A8D31DB751F666A1D2C65EC8996C5978348CEEE8566F480708D4A6335AB,
- 032871A74D2DDA9D0DE7135F58B5BD2D7F679D2CCA20EA7909466D1A6912DF4022
+ 03C8E3836C9A77E2AF03D4265D034BA85732738919708EAF6A16382195AE796EDF
#!#externalFiles={"d3js":"58f54395efa8346e8e94d12609770f66b916897e7f4e05f6c98780cffa5c70a3"},
#!#ShamirsMaxShares=8#!#supernodeSeeds={"ranchimall1":{"ip":"127.0.0.1","port":"9001","kbucketId":"oZxHcbSf1JC8t5GjutopWYXs7C6Fe9p7ps"},
"ranchimall2":{"ip":"127.0.0.1","port":"9002","kbucketId":"oTWjPupy3Z7uMdPcu5uXd521HBkcsLuSuM"},
"ranchimall3":{"ip":"127.0.0.1","port":"9003","kbucketId":"odYA6KagmbokSh9GY7yAfeTUZRtZLwecY1"},
- "ranchimall4":{"ip":"127.0.0.1","port":"9004","kbucketId":"oJosrve9dBv2Hj2bfncxv2oEpTysg3Wejv"},
- "ranchimall5":{"ip":"127.0.0.1","port":"9005","kbucketId":"oMhv5sAzqg77sYHxmUGZWKRrVo4P4JQduS"},
- "ranchimall6":{"ip":"127.0.0.1","port":"9006","kbucketId":"oV1wCeWca3VawbBTfUGKA7Vd368PATnKAx"},
- "ranchimall7":{"ip":"127.0.0.1","port":"9007","kbucketId":"oSqFZePXibNJqeiboTYmmaqqVkd6esDUfZ"},
- "ranchimall8":{"ip":"127.0.0.1","port":"9008","kbucketId":"odUQekfMPsZV3ocneFW8SNSZADFtx9xUtm"},
- "ranchimall9":{"ip":"127.0.0.1","port":"9009","kbucketId":"oLYeoBfXWxKkUmRxhn1pcmJWtTu5kZoUJq"},
- "ranchimall10":{"ip":"127.0.0.1","port":"9010","kbucketId":"oJJe8wkADkCT28BMLkyf79fqBZeoF21cXL"}}`;
+ "ranchimall4":{"ip":"127.0.0.1","port":"9004","kbucketId":"oJosrve9dBv2Hj2bfncxv2oEpTysg3Wejv"}}`;
+
+ // RMAssets =
+ // `masterFLOPubKey=029EF7838D4D103E62262394B5417E8ABFD75539D19E61CA5FD0C2051B69B29910
+ // #!#tradableAsset1=BTC,FLO,BTC_TEST,FLO_TEST#!#tradableAsset2=INR,USD,BTC,FLO,BTC_TEST,FLO_TEST,
+ // #!#validTradingAmount=10000,50000,100000,#!#btcTradeMargin=5000
+ // #!#MaxBackups=2
+ // #!#supernodesPubKeys=0315C3A20FE7096CC2E0F81A80D5F1A687B8F9EFA65242A0B0881E1BA3EE7D7D53,
+ // 03F7493F11B8E44B9798CD434D20FBE7FA34B9779D144984889D11A17C56A18742,039B4AA00DBFC0A6631DE6DA83526611A0E6B857D3579DF840BBDEAE8B6898E3B6,
+ // 03C8E3836C9A77E2AF03D4265D034BA85732738919708EAF6A16382195AE796EDF,0349B08AA1ABDCFFB6D78CD7C949665AD2FF065EA02B3C6C47A5E9592C9A1C6BCB,
+ // 026FCC6CFF6EB3A39E54BEB6E13FC2F02C3A93F4767AA80E49E7E876443F95AE5F,029CDB29270DC5087EF4903E8C2364552C62E935FBAA1A96AB53CC5791C7EF2067,
+ // 022EC1D090960D9EFFFC60FDC34AB97A8395A5F6D1326DD1B1380BD9F6E31981CA,037C623A8D31DB751F666A1D2C65EC8996C5978348CEEE8566F480708D4A6335AB,
+ // 032871A74D2DDA9D0DE7135F58B5BD2D7F679D2CCA20EA7909466D1A6912DF4022
+ // #!#externalFiles={"d3js":"58f54395efa8346e8e94d12609770f66b916897e7f4e05f6c98780cffa5c70a3"},
+ // #!#ShamirsMaxShares=8#!#supernodeSeeds={"ranchimall1":{"ip":"127.0.0.1","port":"9001","kbucketId":"oZxHcbSf1JC8t5GjutopWYXs7C6Fe9p7ps"},
+ // "ranchimall2":{"ip":"127.0.0.1","port":"9002","kbucketId":"oTWjPupy3Z7uMdPcu5uXd521HBkcsLuSuM"},
+ // "ranchimall3":{"ip":"127.0.0.1","port":"9003","kbucketId":"odYA6KagmbokSh9GY7yAfeTUZRtZLwecY1"},
+ // "ranchimall4":{"ip":"127.0.0.1","port":"9004","kbucketId":"oJosrve9dBv2Hj2bfncxv2oEpTysg3Wejv"},
+ // "ranchimall5":{"ip":"127.0.0.1","port":"9005","kbucketId":"oMhv5sAzqg77sYHxmUGZWKRrVo4P4JQduS"},
+ // "ranchimall6":{"ip":"127.0.0.1","port":"9006","kbucketId":"oV1wCeWca3VawbBTfUGKA7Vd368PATnKAx"},
+ // "ranchimall7":{"ip":"127.0.0.1","port":"9007","kbucketId":"oSqFZePXibNJqeiboTYmmaqqVkd6esDUfZ"},
+ // "ranchimall8":{"ip":"127.0.0.1","port":"9008","kbucketId":"odUQekfMPsZV3ocneFW8SNSZADFtx9xUtm"},
+ // "ranchimall9":{"ip":"127.0.0.1","port":"9009","kbucketId":"oLYeoBfXWxKkUmRxhn1pcmJWtTu5kZoUJq"},
+ // "ranchimall10":{"ip":"127.0.0.1","port":"9010","kbucketId":"oJJe8wkADkCT28BMLkyf79fqBZeoF21cXL"}}`;
+
// RMAssets =
// `tradableAsset1=BTC,FLO,BTC_TEST,FLO_TEST#!#tradableAsset2=INR,USD,BTC,FLO,BTC_TEST,FLO_TEST,
// #!#supernodes=127.0.0.1,212.88.88.2#!#MASTER_NODE=023B9F60692A17FAC805D012C5C8ADA3DD19A980A3C5F0D8A5B3500CC54D6E8B75
@@ -10305,7 +10320,8 @@
const primarySuFloId = s_id[0].data.id;
let getSupernodeClosestSuObj = await localbitcoinplusplus.kademlia
- .determineClosestSupernode("", 3, supernodeKBucket, primarySuFloId);
+ .determineClosestSupernode("", localbitcoinplusplus.master_configurations.MaxBackups,
+ supernodeKBucket, primarySuFloId);
let promises = [];
let leaving_supernode_flo_id = "";
@@ -15205,7 +15221,7 @@
if (localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(idbData.myLocalFLOPublicKey)) {
const getClosestSuList = await readAllDB('myClosestSupernodes');
- if (wsUri[0].trader_flo_address !== idbData.myLocalFLOAddress || getClosestSuList.length < 3) {
+ if (wsUri[0].trader_flo_address !== idbData.myLocalFLOAddress || getClosestSuList.length < localbitcoinplusplus.master_configurations.MaxBackups) {
showMessage(`INFO: Invalid connection. Refreshing the closest supernode list in DB.`);
wsUri = await localbitcoinplusplus.kademlia.updateClosestSupernodeSeeds(idbData.myLocalFLOAddress);
}
@@ -15340,6 +15356,10 @@
var res_obj = JSON.parse(res);
+ // Only supernodes are allowed to go below
+ if (!localbitcoinplusplus.master_configurations.supernodesPubKeys
+ .includes(res_obj.nodePubKey)) return;
+
if (typeof res_obj.method !== "undefined") {
let response_from_sever;
@@ -17380,6 +17400,25 @@
return;
}
+ if (res_obj.method !== "sync_primary_supernode_from_backup_supernode"
+ || res_obj.method !== "sync_backup_supernode_from_backup_supernode") {
+ if (localbitcoinplusplus.master_configurations.supernodesPubKeys
+ .includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
+
+ let ifAllPrevSuAreDead = await localbitcoinplusplus.actions
+ .checkIfAllPreviousSupernodesAreDeadForAUserNode(res_obj.params[0].trader_flo_address);
+
+ console.log("ifAllPrevSuAreDead: ", ifAllPrevSuAreDead);
+
+ if (ifAllPrevSuAreDead !== true) {
+ console.log(res_obj);
+ showMessage(`INFO: "checkIfAllPreviousSupernodesAreDeadForAUserNode" check failed.`);
+ localbitcoinplusplus.backupWS.prototype.handle_backup_server_messages(response);
+ return;
+ }
+ }
+ }
+
const isIncomingMessageValid = await validateIncomingMessage(res);
console.log("isIncomingMessageValid: ", isIncomingMessageValid);
@@ -17398,24 +17437,6 @@
console.log(res_obj);
return;
}
-
- if (res_obj.method !== "sync_primary_supernode_from_backup_supernode"
- || res_obj.method !== "sync_backup_supernode_from_backup_supernode") {
- if (localbitcoinplusplus.master_configurations.supernodesPubKeys
- .includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
- let ifAllPrevSuAreDead = await localbitcoinplusplus.actions
- .checkIfAllPreviousSupernodesAreDeadForAUserNode(res_obj.params[0].trader_flo_address);
-
- console.log("ifAllPrevSuAreDead: ", ifAllPrevSuAreDead);
-
- if (ifAllPrevSuAreDead !== true) {
- console.log(res_obj);
- showMessage(`INFO: "checkIfAllPreviousSupernodesAreDeadForAUserNode" check failed.`);
- localbitcoinplusplus.backupWS.prototype.handle_backup_server_messages(response);
- return;
- }
- }
- }
if (typeof res_obj.method !== "undefined") {
let response_from_sever;
@@ -18696,15 +18717,18 @@
try {
websocket.send(finalMessage);
- localbitcoinplusplus.backupWS.map(ws_conn=>{
- if(ws_conn.readyState !== 1) {
- let msg = "WARNING: Websocket not ready to broadcast messages.";
- showMessage(msg);
- console.warn(msg);
- return;
+ for (const key in localbitcoinplusplus.backupWS) {
+ if (localbitcoinplusplus.backupWS.hasOwnProperty(key)) {
+ const ws_conn = localbitcoinplusplus.backupWS[key].ws_connection;
+ if(ws_conn.readyState !== 1) {
+ let msg = "WARNING: Websocket not ready to broadcast messages.";
+ showMessage(msg);
+ console.warn(msg);
+ break;
+ }
+ ws_conn.send(finalMessage);
}
- ws_conn.send(finalMessage);
- });
+ }
} catch(error) {
showMessage(`ERROR: Failed to determine WS connection with ${user_flo_id}.`);