diff options
Diffstat (limited to 'powWorker.js')
| -rw-r--r-- | powWorker.js | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/powWorker.js b/powWorker.js new file mode 100644 index 0000000..aba22ff --- /dev/null +++ b/powWorker.js @@ -0,0 +1,16 @@ +// /var/www/mail2usenet/powWorker.js +self.onmessage = async ({ data }) => { + const { prefix, targetZeros, startNonce, step } = data; + let nonce = startNonce, checked = 0, zeroStr = '0'.repeat(targetZeros); + while (true) { + const buf = await crypto.subtle.digest('SHA-1', new TextEncoder().encode(prefix + nonce)); + const hex = Array.from(new Uint8Array(buf)).map(b=>b.toString(16).padStart(2,'0')).join(''); + if (hex.startsWith(zeroStr)) { + return self.postMessage({ type:'found', nonce }); + } + nonce += step; + if (++checked % 1000 === 0) { + self.postMessage({ type:'progress', checked }); + } + } +}; |
