Keys: invoke shuffle at interval

This commit is contained in:
sairajzero 2022-11-17 03:38:46 +05:30
parent 70c943c997
commit b0ec2d6a85
2 changed files with 20 additions and 7 deletions

View File

@ -15,6 +15,7 @@ module.exports = {
SHARES_PER_NODE: 8, SHARES_PER_NODE: 8,
SHARE_THRESHOLD: 50 / 100, //50% SHARE_THRESHOLD: 50 / 100, //50%
DISCARD_COOLDOWN: 24 * 60 * 60 * 1000, //1 day DISCARD_COOLDOWN: 24 * 60 * 60 * 1000, //1 day
SHUFFLE_INTERVAL: 12 * 60 * 60 * 1000, //12 hrs
}, },
market: { market: {
LAUNCH_SELLER_TAG: "launch-seller", LAUNCH_SELLER_TAG: "launch-seller",

View File

@ -12,7 +12,11 @@ for (let arg of process.argv)
break; break;
} }
const { SHARES_PER_NODE, SHARE_THRESHOLD } = require("./_constants")["keys"]; const {
SHARES_PER_NODE,
SHARE_THRESHOLD,
SHUFFLE_INTERVAL
} = require("./_constants")["keys"];
const PRIV_EKEY_MIN = 32, const PRIV_EKEY_MIN = 32,
PRIV_EKEY_MAX = 48, PRIV_EKEY_MAX = 48,
@ -138,6 +142,7 @@ function initialize() {
} }
if (cur_filename) if (cur_filename)
fs.unlink(path.join(_.index_dir, cur_filename + INDEX_FILE_EXT), err => err ? console.debug(err) : null); fs.unlink(path.join(_.index_dir, cur_filename + INDEX_FILE_EXT), err => err ? console.debug(err) : null);
shuffle.interval = setInterval(shuffle, SHUFFLE_INTERVAL);
resolve("Key management initiated"); resolve("Key management initiated");
}) })
}) })
@ -153,7 +158,7 @@ function shuffle() {
let data_size = data.length; let data_size = data.length;
for (let file of files) { for (let file of files) {
let f_data, f_name = floCrypto.randString(INDEX_FILE_NAME_LENGTH); let f_data, f_name = floCrypto.randString(INDEX_FILE_NAME_LENGTH);
if (file === cur_filename) { if (file === cur_filename + INDEX_FILE_EXT) {
new_filename = f_name; new_filename = f_name;
f_data = data; f_data = data;
} else { } else {
@ -162,14 +167,22 @@ function shuffle() {
} }
f_data = Crypto.AES.encrypt(f_data, _.node_priv); f_data = Crypto.AES.encrypt(f_data, _.node_priv);
//rename and rewrite the file //rename and rewrite the file
fs.renameSync(path.join(_.args_dir, file + INDEX_FILE_EXT), path.join(_.index_dir, f_name + INDEX_FILE_EXT)); try {
fs.writeFileSync(path.join(_.index_dir, f_name + INDEX_FILE_EXT), f_data, INDEX_FILE_TYPE); fs.renameSync(path.join(_.index_dir, file), path.join(_.index_dir, f_name + INDEX_FILE_EXT));
fs.writeFileSync(path.join(_.index_dir, f_name + INDEX_FILE_EXT), f_data, INDEX_FILE_TYPE);
} catch (error) {
console.error(error)
}
} }
//update prime file //update prime file
if (!new_filename) if (!new_filename)
throw Error("Index file has not been renamed"); return console.error("Index file has not been renamed");
let en_filename = Crypto.AES.encrypt(new_filename, _.node_priv); let en_filename = Crypto.AES.encrypt(new_filename, _.node_priv);
fs.writeFileSync(_.prime_file, en_filename, PRIME_FILE_TYPE); try {
fs.writeFileSync(_.prime_file, en_filename, PRIME_FILE_TYPE);
} catch (error) {
console.error(error);
}
}) })
}).catch(error => console.error(error)) }).catch(error => console.error(error))
} }
@ -379,7 +392,6 @@ const sink_ids = {}, sink_chest = {
return ids[i]; return ids[i];
}, },
active_pick(group) { active_pick(group) {
console.debug(sink_ids)
let ids = this.active_list(group), let ids = this.active_list(group),
i = floCrypto.randInt(0, ids.length - 1); i = floCrypto.randInt(0, ids.length - 1);
return ids[i]; return ids[i];