replaced backup_supernode_up to reactor events definations
This commit is contained in:
parent
4b4e919905
commit
295f7a21d1
@ -12869,6 +12869,9 @@
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(typeof n!=="number") n=localbitcoinplusplus
|
||||||
|
.master_configurations.supernodesPubKeys.length||1;
|
||||||
|
|
||||||
if (su.length > 0) {
|
if (su.length > 0) {
|
||||||
try {
|
try {
|
||||||
let closestSupernodeMasterList = supernodeKBucket.closest(
|
let closestSupernodeMasterList = supernodeKBucket.closest(
|
||||||
@ -13229,7 +13232,12 @@
|
|||||||
|
|
||||||
reactor.addEventListener("new_supernode_connected", async function(evt) {
|
reactor.addEventListener("new_supernode_connected", async function(evt) {
|
||||||
const switchMyWS = new backupSupernodesWebSocketObject();
|
const switchMyWS = new backupSupernodesWebSocketObject();
|
||||||
switchMyWS.updateSupernodeAvailabilityStatus(evt.srcElement.url, true);
|
const connected_su_flo_id = await switchMyWS.getFloIdFromWSUrl(evt.srcElement.url);
|
||||||
|
if(!localbitcoinplusplus.master_configurations.supernodesPubKeys
|
||||||
|
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
|
||||||
|
localbitcoinplusplus.MY_SUPERNODE_FLO_ADDRESS=connected_su_flo_id;
|
||||||
|
}
|
||||||
|
switchMyWS.updateSupernodeAvailabilityStatus(connected_su_flo_id, true);
|
||||||
showMessage(
|
showMessage(
|
||||||
`INFO: Connected successfully to Supernode: ${evt.srcElement.url}`
|
`INFO: Connected successfully to Supernode: ${evt.srcElement.url}`
|
||||||
);
|
);
|
||||||
@ -13289,14 +13297,9 @@
|
|||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const switchMyWS = new backupSupernodesWebSocketObject();
|
|
||||||
await switchMyWS.updateSupernodeAvailabilityStatus(
|
|
||||||
`ws://${cs[0].ip}:${cs[0].port}`,
|
|
||||||
false
|
|
||||||
);
|
|
||||||
|
|
||||||
// Wait for 10 seconds if the 'dead' supernode only refreshed the page
|
// Wait for 20 seconds if the 'dead' supernode only refreshed the page
|
||||||
await localbitcoinplusplus.actions.delay(10000);
|
await localbitcoinplusplus.actions.delay(20000);
|
||||||
|
|
||||||
// Get the current status now
|
// Get the current status now
|
||||||
const getStatusOfDeadSuAgain = await readDBbyIndex(
|
const getStatusOfDeadSuAgain = await readDBbyIndex(
|
||||||
@ -13308,7 +13311,13 @@
|
|||||||
// If its still dead find out if you are the next eligible backup supernode
|
// If its still dead find out if you are the next eligible backup supernode
|
||||||
// If true, take charge of dead supernode's operations
|
// If true, take charge of dead supernode's operations
|
||||||
if (getStatusOfDeadSuAgain[0].is_live == false) {
|
if (getStatusOfDeadSuAgain[0].is_live == false) {
|
||||||
if (
|
const switchMyWS = new backupSupernodesWebSocketObject();
|
||||||
|
await switchMyWS.updateSupernodeAvailabilityStatus(
|
||||||
|
`ws://${cs[0].ip}:${cs[0].port}`,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
if (
|
||||||
localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(
|
localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(
|
||||||
op[0].flo_public_key
|
op[0].flo_public_key
|
||||||
)
|
)
|
||||||
@ -13848,10 +13857,10 @@
|
|||||||
);
|
);
|
||||||
|
|
||||||
/* Remove WS connections which are not active currently */
|
/* Remove WS connections which are not active currently */
|
||||||
|
|
||||||
reactor.addEventListener("remove_extra_backup_connections", function() {
|
reactor.addEventListener("remove_extra_backup_connections", function() {
|
||||||
// remove above lines with these
|
// remove above lines with these
|
||||||
readAllDB(`myClosestSupernodes`).then(sups => {
|
readAllDB(`myClosestSupernodes`).then(sups => {
|
||||||
|
let max_conns = 0;
|
||||||
sups
|
sups
|
||||||
.map(backup_id => {
|
.map(backup_id => {
|
||||||
if (!localbitcoinplusplus.backupWS.hasOwnProperty(backup_id)
|
if (!localbitcoinplusplus.backupWS.hasOwnProperty(backup_id)
|
||||||
@ -13859,8 +13868,8 @@
|
|||||||
) {
|
) {
|
||||||
const backup_conns =
|
const backup_conns =
|
||||||
localbitcoinplusplus.backupWS[backup_id.trader_flo_address];
|
localbitcoinplusplus.backupWS[backup_id.trader_flo_address];
|
||||||
if (typeof backup_conns.ws_connection == "object") {
|
if (typeof backup_conns == "object"
|
||||||
let max_conns = 0;
|
&& typeof backup_conns.ws_connection == "object") {
|
||||||
if (backup_conns.ws_connection.readyState < 2) {
|
if (backup_conns.ws_connection.readyState < 2) {
|
||||||
max_conns++;
|
max_conns++;
|
||||||
if (
|
if (
|
||||||
@ -13913,6 +13922,80 @@
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
reactor.addEventListener("backup_supernode_up", async function(url='') {
|
||||||
|
showMessage(
|
||||||
|
`Connected to backup Supernode sever: ${url}.`
|
||||||
|
);
|
||||||
|
const switchMyWS = new backupSupernodesWebSocketObject();
|
||||||
|
switchMyWS.updateSupernodeAvailabilityStatus(
|
||||||
|
url,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
let my_local_data = await readDB("localbitcoinUser", "00-01");
|
||||||
|
if (typeof my_local_data == "object") {
|
||||||
|
const conn_su_flo_id = await switchMyWS.getFloIdFromWSUrl(
|
||||||
|
url
|
||||||
|
);
|
||||||
|
|
||||||
|
if (
|
||||||
|
localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(
|
||||||
|
my_local_data.myLocalFLOPublicKey
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
// If conn_su_flo_id is not an immediate backup then give your data to it to sync
|
||||||
|
const myClosestSus = await readAllDB("myClosestSupernodes");
|
||||||
|
const myClosestSusList = myClosestSus.map(
|
||||||
|
m => m.trader_flo_address
|
||||||
|
);
|
||||||
|
if (
|
||||||
|
myClosestSusList.indexOf(conn_su_flo_id) >
|
||||||
|
localbitcoinplusplus.master_configurations.MaxBackups
|
||||||
|
) {
|
||||||
|
// Ask conn_su_flo_id to ask you your DB data
|
||||||
|
const RM_RPC = new localbitcoinplusplus.rpc();
|
||||||
|
RM_RPC.send_rpc.call(this, "request_me_db_data", {
|
||||||
|
trader_flo_address:
|
||||||
|
localbitcoinplusplus.wallets.my_local_flo_address,
|
||||||
|
receiver_flo_address: conn_su_flo_id,
|
||||||
|
db_inst: localbitcoinplusplus.wallets.my_local_flo_address
|
||||||
|
})
|
||||||
|
.then(req=>doSend(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the number of backup ws connections satisfy max baxkup master
|
||||||
|
// config condition. If false, request ws connection to next backup supernode.
|
||||||
|
const currenctBackupWsList = Object.keys(
|
||||||
|
localbitcoinplusplus.backupWS
|
||||||
|
).filter(
|
||||||
|
m =>
|
||||||
|
localbitcoinplusplus.backupWS[m].ws_connection
|
||||||
|
.readyState < 2
|
||||||
|
);
|
||||||
|
|
||||||
|
if (
|
||||||
|
currenctBackupWsList.length <
|
||||||
|
localbitcoinplusplus.master_configurations.MaxBackups
|
||||||
|
) {
|
||||||
|
// Request next backup to connect
|
||||||
|
reactor.dispatchEvent(
|
||||||
|
"switchToBackupWSForSuperNodesOperations",
|
||||||
|
url
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (typeof conn_su_flo_id == "string") {
|
||||||
|
my_local_data.lastConnectedTime = +new Date();
|
||||||
|
my_local_data.lastConnectedSupernode = conn_su_flo_id;
|
||||||
|
updateinDB("localbitcoinUser", my_local_data);
|
||||||
|
} else {
|
||||||
|
mss = `WARNING: Failed to update current supernode connected status in localbitcoinUser.`;
|
||||||
|
showMessage(mss);
|
||||||
|
throw new Error(mss);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- Misc functions -->
|
<!-- Misc functions -->
|
||||||
@ -20187,79 +20270,8 @@
|
|||||||
this.ws_connection = new WebSocket(this.ws_url);
|
this.ws_connection = new WebSocket(this.ws_url);
|
||||||
const switchMyWS = new backupSupernodesWebSocketObject();
|
const switchMyWS = new backupSupernodesWebSocketObject();
|
||||||
this.ws_connection.onopen = function(evt) {
|
this.ws_connection.onopen = function(evt) {
|
||||||
reactor.addEventListener("backup_supernode_up", async function() {
|
reactor.dispatchEvent("backup_supernode_up", evt.srcElement.url);
|
||||||
showMessage(
|
reactor.dispatchEvent("remove_extra_backup_connections");
|
||||||
`Connected to backup Supernode sever: ${evt.srcElement.url}.`
|
|
||||||
);
|
|
||||||
switchMyWS.updateSupernodeAvailabilityStatus(
|
|
||||||
evt.srcElement.url,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
let my_local_data = await readDB("localbitcoinUser", "00-01");
|
|
||||||
if (typeof my_local_data == "object") {
|
|
||||||
const conn_su_flo_id = await switchMyWS.getFloIdFromWSUrl(
|
|
||||||
evt.srcElement.url
|
|
||||||
);
|
|
||||||
|
|
||||||
if (
|
|
||||||
localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(
|
|
||||||
my_local_data.myLocalFLOPublicKey
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
// If conn_su_flo_id is not an immediate backup then give your data to it to sync
|
|
||||||
const myClosestSus = await readAllDB("myClosestSupernodes");
|
|
||||||
const myClosestSusList = myClosestSus.map(
|
|
||||||
m => m.trader_flo_address
|
|
||||||
);
|
|
||||||
if (
|
|
||||||
myClosestSusList.indexOf(conn_su_flo_id) >
|
|
||||||
localbitcoinplusplus.master_configurations.MaxBackups
|
|
||||||
) {
|
|
||||||
// Ask conn_su_flo_id to ask you your DB data
|
|
||||||
const RM_RPC = new localbitcoinplusplus.rpc();
|
|
||||||
RM_RPC.send_rpc.call(this, "request_me_db_data", {
|
|
||||||
trader_flo_address:
|
|
||||||
localbitcoinplusplus.wallets.my_local_flo_address,
|
|
||||||
receiver_flo_address: conn_su_flo_id,
|
|
||||||
db_inst: localbitcoinplusplus.wallets.my_local_flo_address
|
|
||||||
});
|
|
||||||
//.then(req=>doSend(req));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if the number of backup ws connections satisfy max baxkup master
|
|
||||||
// config condition. If false, request ws connection to next backup supernode.
|
|
||||||
const currenctBackupWsList = Object.keys(
|
|
||||||
localbitcoinplusplus.backupWS
|
|
||||||
).filter(
|
|
||||||
m =>
|
|
||||||
localbitcoinplusplus.backupWS[m].ws_connection
|
|
||||||
.readyState < 2
|
|
||||||
);
|
|
||||||
|
|
||||||
if (
|
|
||||||
currenctBackupWsList.length <
|
|
||||||
localbitcoinplusplus.master_configurations.MaxBackups
|
|
||||||
) {
|
|
||||||
// Request next backup to connect
|
|
||||||
reactor.dispatchEvent(
|
|
||||||
"switchToBackupWSForSuperNodesOperations",
|
|
||||||
evt.srcElement.url
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (typeof conn_su_flo_id == "string") {
|
|
||||||
my_local_data.lastConnectedTime = +new Date();
|
|
||||||
my_local_data.lastConnectedSupernode = conn_su_flo_id;
|
|
||||||
updateinDB("localbitcoinUser", my_local_data);
|
|
||||||
} else {
|
|
||||||
mss = `WARNING: Failed to update current supernode connected status in localbitcoinUser.`;
|
|
||||||
showMessage(mss);
|
|
||||||
throw new Error(mss);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
reactor.dispatchEvent("backup_supernode_up");
|
|
||||||
}.bind(this);
|
}.bind(this);
|
||||||
this.ws_connection.onclose = function(evt) {
|
this.ws_connection.onclose = function(evt) {
|
||||||
reactor.dispatchEvent("backup_supernode_down", evt);
|
reactor.dispatchEvent("backup_supernode_down", evt);
|
||||||
@ -20270,6 +20282,7 @@
|
|||||||
let isItANodeLeavingMessage = response.search(`\\-- left`);
|
let isItANodeLeavingMessage = response.search(`\\-- left`);
|
||||||
if (isItANodeLeavingMessage >= 0) {
|
if (isItANodeLeavingMessage >= 0) {
|
||||||
reactor.dispatchEvent("fireNodeGoodByeEvent", response);
|
reactor.dispatchEvent("fireNodeGoodByeEvent", response);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let isRequestToLinkIp = response.search("linkMyLocalIPToMyFloId");
|
let isRequestToLinkIp = response.search("linkMyLocalIPToMyFloId");
|
||||||
@ -20865,6 +20878,7 @@
|
|||||||
// skip loop if the property is from prototype
|
// skip loop if the property is from prototype
|
||||||
if (
|
if (
|
||||||
tableStoreName == "trader_flo_address" ||
|
tableStoreName == "trader_flo_address" ||
|
||||||
|
tableStoreName == "receiver_flo_address" ||
|
||||||
!su_db_data.hasOwnProperty(tableStoreName)
|
!su_db_data.hasOwnProperty(tableStoreName)
|
||||||
)
|
)
|
||||||
continue;
|
continue;
|
||||||
@ -21756,6 +21770,7 @@
|
|||||||
)
|
)
|
||||||
return;
|
return;
|
||||||
updateinDB("ipTable", {
|
updateinDB("ipTable", {
|
||||||
|
id: helper_functions.unique_id(),
|
||||||
flo_public_key: req_params.requesters_pub_key,
|
flo_public_key: req_params.requesters_pub_key,
|
||||||
temporary_ip: incoming_msg_local_ip
|
temporary_ip: incoming_msg_local_ip
|
||||||
})
|
})
|
||||||
@ -21788,6 +21803,7 @@
|
|||||||
)
|
)
|
||||||
return;
|
return;
|
||||||
updateinDB("ipTable", {
|
updateinDB("ipTable", {
|
||||||
|
id: helper_functions.unique_id(),
|
||||||
flo_public_key: req_params.requesters_pub_key,
|
flo_public_key: req_params.requesters_pub_key,
|
||||||
temporary_ip: incoming_msg_local_ip
|
temporary_ip: incoming_msg_local_ip
|
||||||
}).then(ipRes => {
|
}).then(ipRes => {
|
||||||
@ -22374,6 +22390,28 @@
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "request_me_db_data":
|
||||||
|
if (
|
||||||
|
localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(
|
||||||
|
res_obj.nodePubKey
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
const resp = res_obj.params[0];
|
||||||
|
|
||||||
|
if (
|
||||||
|
localbitcoinplusplus.wallets.my_local_flo_address !==
|
||||||
|
resp.receiver_flo_address
|
||||||
|
)
|
||||||
|
return;
|
||||||
|
|
||||||
|
localbitcoinplusplus.actions.sync_backup_supernode_from_backup_supernode(
|
||||||
|
localbitcoinplusplus.wallets.my_local_flo_address,
|
||||||
|
resp.trader_flo_address,
|
||||||
|
resp.db_inst
|
||||||
|
);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -22393,6 +22431,7 @@
|
|||||||
|
|
||||||
if (isItANodeLeavingMessage >= 0) {
|
if (isItANodeLeavingMessage >= 0) {
|
||||||
reactor.dispatchEvent("fireNodeGoodByeEvent", response);
|
reactor.dispatchEvent("fireNodeGoodByeEvent", response);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var res_pos = response.indexOf("{");
|
var res_pos = response.indexOf("{");
|
||||||
@ -22731,6 +22770,7 @@
|
|||||||
// skip loop if the property is from prototype
|
// skip loop if the property is from prototype
|
||||||
if (
|
if (
|
||||||
tableStoreName == "trader_flo_address" ||
|
tableStoreName == "trader_flo_address" ||
|
||||||
|
tableStoreName == "receiver_flo_address" ||
|
||||||
!su_db_data.hasOwnProperty(tableStoreName)
|
!su_db_data.hasOwnProperty(tableStoreName)
|
||||||
)
|
)
|
||||||
continue;
|
continue;
|
||||||
@ -23806,6 +23846,7 @@
|
|||||||
)
|
)
|
||||||
return;
|
return;
|
||||||
updateinDB("ipTable", {
|
updateinDB("ipTable", {
|
||||||
|
id: helper_functions.unique_id(),
|
||||||
flo_public_key: req_params.requesters_pub_key,
|
flo_public_key: req_params.requesters_pub_key,
|
||||||
temporary_ip: incoming_msg_local_ip
|
temporary_ip: incoming_msg_local_ip
|
||||||
})
|
})
|
||||||
@ -23838,6 +23879,7 @@
|
|||||||
)
|
)
|
||||||
return;
|
return;
|
||||||
updateinDB("ipTable", {
|
updateinDB("ipTable", {
|
||||||
|
id: helper_functions.unique_id(),
|
||||||
flo_public_key: req_params.requesters_pub_key,
|
flo_public_key: req_params.requesters_pub_key,
|
||||||
temporary_ip: incoming_msg_local_ip
|
temporary_ip: incoming_msg_local_ip
|
||||||
}).then(ipRes => {
|
}).then(ipRes => {
|
||||||
@ -24264,7 +24306,7 @@
|
|||||||
if (
|
if (
|
||||||
typeof res_obj.params == "object" &&
|
typeof res_obj.params == "object" &&
|
||||||
typeof res_obj.params[0] == "object" &&
|
typeof res_obj.params[0] == "object" &&
|
||||||
localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(
|
!localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(
|
||||||
localbitcoinplusplus.wallets.my_local_flo_public_key
|
localbitcoinplusplus.wallets.my_local_flo_public_key
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
@ -24460,6 +24502,7 @@
|
|||||||
|
|
||||||
if (isItANodeLeavingMessage >= 0) {
|
if (isItANodeLeavingMessage >= 0) {
|
||||||
reactor.dispatchEvent("fireNodeGoodByeEvent", response);
|
reactor.dispatchEvent("fireNodeGoodByeEvent", response);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var res_pos = response.indexOf("{");
|
var res_pos = response.indexOf("{");
|
||||||
@ -24589,6 +24632,7 @@
|
|||||||
// skip loop if the property is from prototype
|
// skip loop if the property is from prototype
|
||||||
if (
|
if (
|
||||||
tableStoreName == "trader_flo_address" ||
|
tableStoreName == "trader_flo_address" ||
|
||||||
|
tableStoreName == "receiver_flo_address" ||
|
||||||
!su_backup_db_data.hasOwnProperty(tableStoreName)
|
!su_backup_db_data.hasOwnProperty(tableStoreName)
|
||||||
)
|
)
|
||||||
continue;
|
continue;
|
||||||
@ -25260,6 +25304,7 @@
|
|||||||
)
|
)
|
||||||
return;
|
return;
|
||||||
updateinDB("ipTable", {
|
updateinDB("ipTable", {
|
||||||
|
id: helper_functions.unique_id(),
|
||||||
flo_public_key: req_params.requesters_pub_key,
|
flo_public_key: req_params.requesters_pub_key,
|
||||||
temporary_ip: incoming_msg_local_ip
|
temporary_ip: incoming_msg_local_ip
|
||||||
})
|
})
|
||||||
@ -25291,6 +25336,7 @@
|
|||||||
)
|
)
|
||||||
return;
|
return;
|
||||||
updateinDB("ipTable", {
|
updateinDB("ipTable", {
|
||||||
|
id: helper_functions.unique_id(),
|
||||||
flo_public_key: req_params.requesters_pub_key,
|
flo_public_key: req_params.requesters_pub_key,
|
||||||
temporary_ip: incoming_msg_local_ip
|
temporary_ip: incoming_msg_local_ip
|
||||||
}).then(ipRes => {
|
}).then(ipRes => {
|
||||||
@ -26603,7 +26649,8 @@
|
|||||||
const request_array = [
|
const request_array = [
|
||||||
"send_back_shamirs_secret_supernode_pvtkey",
|
"send_back_shamirs_secret_supernode_pvtkey",
|
||||||
"retrieve_shamirs_secret_supernode_pvtkey",
|
"retrieve_shamirs_secret_supernode_pvtkey",
|
||||||
"store_shamirs_secret_pvtkey_shares"
|
"store_shamirs_secret_pvtkey_shares",
|
||||||
|
"request_me_db_data"
|
||||||
];
|
];
|
||||||
|
|
||||||
let finalMessage = message;
|
let finalMessage = message;
|
||||||
@ -26697,7 +26744,8 @@
|
|||||||
const request_array = [
|
const request_array = [
|
||||||
"send_back_shamirs_secret_supernode_pvtkey",
|
"send_back_shamirs_secret_supernode_pvtkey",
|
||||||
"retrieve_shamirs_secret_supernode_pvtkey",
|
"retrieve_shamirs_secret_supernode_pvtkey",
|
||||||
"store_shamirs_secret_pvtkey_shares"
|
"store_shamirs_secret_pvtkey_shares",
|
||||||
|
"request_me_db_data"
|
||||||
];
|
];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -27074,7 +27122,10 @@
|
|||||||
}
|
}
|
||||||
if (!db.objectStoreNames.contains("ipTable")) {
|
if (!db.objectStoreNames.contains("ipTable")) {
|
||||||
var objectStore = db.createObjectStore("ipTable", {
|
var objectStore = db.createObjectStore("ipTable", {
|
||||||
keyPath: "flo_public_key"
|
keyPath: "id"
|
||||||
|
});
|
||||||
|
objectStore.createIndex("flo_public_key", "flo_public_key", {
|
||||||
|
unique: false
|
||||||
});
|
});
|
||||||
objectStore.createIndex("temporary_ip", "temporary_ip", {
|
objectStore.createIndex("temporary_ip", "temporary_ip", {
|
||||||
unique: false
|
unique: false
|
||||||
@ -27622,10 +27673,23 @@
|
|||||||
var objectStore = this.db.createObjectStore("kBucketStore", {
|
var objectStore = this.db.createObjectStore("kBucketStore", {
|
||||||
keyPath: "id"
|
keyPath: "id"
|
||||||
});
|
});
|
||||||
|
objectStore.createIndex(
|
||||||
|
"primary_supernode_flo_public_key",
|
||||||
|
"primary_supernode_flo_public_key",
|
||||||
|
{
|
||||||
|
unique: false
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if (!this.db.objectStoreNames.contains("ipTable")) {
|
if (!this.db.objectStoreNames.contains("ipTable")) {
|
||||||
var objectStore = this.db.createObjectStore("ipTable", {
|
var objectStore = this.db.createObjectStore("ipTable", {
|
||||||
keyPath: "flo_public_key"
|
keyPath: "id"
|
||||||
|
});
|
||||||
|
objectStore.createIndex("flo_public_key", "flo_public_key", {
|
||||||
|
unique: false
|
||||||
|
});
|
||||||
|
objectStore.createIndex("temporary_ip", "temporary_ip", {
|
||||||
|
unique: false
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (!this.db.objectStoreNames.contains("myClosestSupernodes")) {
|
if (!this.db.objectStoreNames.contains("myClosestSupernodes")) {
|
||||||
@ -27647,7 +27711,7 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (!this.db.objectStoreNames.contains("crypto_fiat_rates")) {
|
if (!this.db.objectStoreNames.contains("crypto_fiat_rates")) {
|
||||||
var objectStore = db.createObjectStore("crypto_fiat_rates", {
|
var objectStore = this.db.createObjectStore("crypto_fiat_rates", {
|
||||||
keyPath: "id"
|
keyPath: "id"
|
||||||
});
|
});
|
||||||
objectStore.createIndex("currency_code", "currency_code", {
|
objectStore.createIndex("currency_code", "currency_code", {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user