diff options
Diffstat (limited to 'web')
| -rw-r--r-- | web/source/nollamas/index.js | 11 | ||||
| -rw-r--r-- | web/source/nollamasworker/index.js | 16 | ||||
| -rw-r--r-- | web/template/nollamas.tmpl | 3 |
3 files changed, 20 insertions, 10 deletions
diff --git a/web/source/nollamas/index.js b/web/source/nollamas/index.js index b32cae423..94bac4fc7 100644 --- a/web/source/nollamas/index.js +++ b/web/source/nollamas/index.js @@ -44,17 +44,20 @@ document.addEventListener('DOMContentLoaded', function() { // Read the challenge and difficulty from // data attributes on the nollamas section. const challenge = nollamas.dataset.nollamasChallenge; - const difficulty = nollamas.dataset.nollamasDifficulty; + const difficulty1 = nollamas.dataset.nollamasDifficulty1; + const difficulty2 = nollamas.dataset.nollamasDifficulty2; - console.log('challenge:', challenge); // eslint-disable-line no-console - console.log('difficulty:', difficulty); // eslint-disable-line no-console + console.log('challenge:', challenge); // eslint-disable-line no-console + console.log('difficulty1:', difficulty1); // eslint-disable-line no-console + console.log('difficulty2:', difficulty2); // eslint-disable-line no-console // Prepare the worker with task function. const worker = new Worker("/assets/dist/nollamasworker.js"); const startTime = performance.now(); worker.postMessage({ challenge: challenge, - difficulty: difficulty, + difficulty1: difficulty1, + difficulty2: difficulty2, }); // Set the main worker function. diff --git a/web/source/nollamasworker/index.js b/web/source/nollamasworker/index.js index b95ec0917..37a54349a 100644 --- a/web/source/nollamasworker/index.js +++ b/web/source/nollamasworker/index.js @@ -25,9 +25,10 @@ onmessage = async function(e) { // Get difficulty and generate the expected // zero ASCII prefix to check for in hashes. - const difficultyStr = e.data.difficulty; - const difficulty = parseInt(difficultyStr, 10); - const zeroPrefix = '0'.repeat(difficulty); + const difficulty1Str = e.data.difficulty1; + const difficulty2Str = e.data.difficulty2; + const difficulty1 = parseInt(difficulty1Str, 10); + const zeroPrefix = '0'.repeat(difficulty1); let nonce = 0; while (true) { // eslint-disable-line no-constant-condition @@ -43,8 +44,13 @@ onmessage = async function(e) { // Check if the hex encoded hash has // difficulty defined zeroes prefix. if (hashHex.startsWith(zeroPrefix)) { - postMessage({ nonce: nonce, done: true }); - break; + + // Check if the next char after zero prefix + // is specifically less than difficulty2 char. + if (hashHex.charAt(difficulty1) < difficulty2Str) { + postMessage({ nonce: nonce, done: true }); + break; + } } // Iter. diff --git a/web/template/nollamas.tmpl b/web/template/nollamas.tmpl index a02fd92f7..cc0f0f617 100644 --- a/web/template/nollamas.tmpl +++ b/web/template/nollamas.tmpl @@ -21,7 +21,8 @@ <main> <section class="nollamas" data-nollamas-challenge="{{ .challenge }}" - data-nollamas-difficulty="{{ .difficulty }}" + data-nollamas-difficulty1="{{ .difficulty1 }}" + data-nollamas-difficulty2="{{ .difficulty2 }}" > <h1>Checking you're not a creepy crawler...</h1> <noscript> |
