##// END OF EJS Templates
Don't show an asterist in the page title after updating posts when number of...
Don't show an asterist in the page title after updating posts when number of new posts is >1

File last commit:

r1462:dde38eed default
r1467:02e3df39 default
Show More
proof_of_work.js
63 lines | 1.7 KiB | application/javascript | JavascriptLexer
neko259
Added PoW instead of 30-second captcha
r1428 var POW_COMPUTING_TIMEOUT = 2;
var POW_HASH_LENGTH = 16;
neko259
Make pow script be a shared worker
r1462 var hasher;
neko259
Added PoW instead of 30-second captcha
r1428
neko259
Make pow script be a shared worker
r1462
function computeHash(iteration, guess, target, payload, timestamp, hasher, port) {
neko259
Added PoW instead of 30-second captcha
r1428 iteration += 1;
var hash = hasher(payload + iteration).toString();
guess = hash.substring(0, POW_HASH_LENGTH);
if (guess <= target) {
neko259
Fixed bug in PoW in Chrome. Recompiled translations after merging 2 different features (BB-83)
r1431 //console.log("Iteration: ", iteration);
//console.log("Guess: ", guess);
//console.log("Target: ", target);
neko259
Added PoW instead of 30-second captcha
r1428
var data = {
iteration: iteration,
timestamp: timestamp,
guess: guess
};
neko259
Make pow script be a shared worker
r1462 port.postMessage(data);
neko259
Added PoW instead of 30-second captcha
r1428 } else {
//console.log("Iteration: ", iteration);
//console.log("Guess: ", guess);
//console.log("Target: ", target);
setTimeout(function() {
neko259
Make pow script be a shared worker
r1462 computeHash(iteration, guess, target, payload, timestamp, hasher, port);
neko259
Added PoW instead of 30-second captcha
r1428 }, POW_COMPUTING_TIMEOUT);
}
}
neko259
Make pow script be a shared worker
r1462 function doWork(message, hasher, difficulty, port) {
neko259
Added PoW instead of 30-second captcha
r1428 var timestamp = Date.now();
var iteration = 0;
var payload = timestamp + message;
var target = parseInt(Math.pow(2, POW_HASH_LENGTH * 3) / difficulty).toString();
while (target.length < POW_HASH_LENGTH) {
target = '0' + target;
}
var guess = target + '0';
setTimeout(function() {
neko259
Make pow script be a shared worker
r1462 computeHash(iteration, guess, target, payload, timestamp, hasher, port);
neko259
Added PoW instead of 30-second captcha
r1428 }, POW_COMPUTING_TIMEOUT);
}
neko259
Make pow script be a shared worker
r1462 onconnect = function(e) {
var port = e.ports[0];
port.start();
port.onmessage = function(e) {
var difficulty = e.data.difficulty;
importScripts(e.data.hasher);
var hasher = CryptoJS.SHA256;
self.doWork(e.data.msg, hasher, difficulty, port);
};
}